加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 教程 > 正文

动态网页技术JSP实现网站登录记忆跳转的一种方法一览

发布时间:2023-05-26 13:36:37 所属栏目:教程 来源:
导读:记忆登录跳转可以打打方便用户使用getheader("referer");方式简单不过不能处理post的参数本来都是用在struts,webwork里的,为了容易看明白改写成jsp方式的

member.jsp //session限制访问页

<%

string
记忆登录跳转可以打打方便用户使用getheader("referer");方式简单不过不能处理post的参数本来都是用在struts,webwork里的,为了容易看明白改写成jsp方式的
 
member.jsp   //session限制访问页
 
<%
 
string url = ""
 
if(session.getattribute("username")==null)
 
{
 
         url = myredirect.dealurl(request);//记录当前地址和请求参数,dealurl将实际url处理了避免和要请求url有干扰,因为会有& 字符
 
         response.sendredirect("weblogin.jsp?url="+url) ;//重定向到登录页面
 
}
 
%>
 
weblogin.jsp
 
<%
 
string url = request.getparameter("url");
 
string userid =request.getparameter("userid");
 
string password =request.getparameter("password");
 
if(userid!=null) //如果是登录提交执行下面代码
 
{
 
 if(登录成功)
 
  {
 
   session.setattribute("userid",userid);
 
   out.println("<script>alert('登录成功,谢谢光临');self.location.href='"+myredirect.geturl(url)+"';</script>");//转向到首次请求的url,.geturl(url)是把转化过的地址转化回来变成真实url.
 
  }else{
 
   out.println("<script>alert('用户名或密码错误');history.back();</script>");
 
  }
 
}else{//如果不是登录提交显示现面登录界面
 
%>
 
<table width="311" height="162" border="0" align="center" cellpadding="0" cellspacing="0">
 
  <tr>     
 
    <td width="311" height="162" align="center"> 您还没有登录,请先登录<br>
 
        <table width="155" border="0" cellpadding="0" cellspacing="5" class="font12">
 
  <form  name="loginfrm" action="weblogin.jsp" method="post"  id="loginfrm" onsubmit="return checkfrm();">
 
          <tr>
 
            <td width="41" height="33" valign="bottom">帐 号:</td>
 
            <td width="99" valign="bottom"><input name="userid" type="text" class="textstyle" id="userid" size="12" ></td>
 
          </tr>
 
          <tr>
 
            <td>密 码:</td>
 
            <td><input name="password" type="password" class="textstyle" id="password" size="12" ></td>
 
          </tr>
 
          <tr align="center" valign="bottom">
 
            <td height="21" colspan="2"> <input type="submit" name="submit" value="登录">
 
                <a href="reg.jsp" target="_blank">没有注册</a>  </td>
 
          </tr>
 
          <tr align="center">
 
            <td colspan="2" class="font14"><strong><a href="#" >找回密码</a></strong></td>
 
          </tr>
 
    <input name="url" type="hidden" value="<%=url%>">这里要有个hidden来保存一下,不然提交就没了
 
    </form>
 
        </table>
 
    </td>
 
  </tr>
 
</table>
 
<%
 
}
 
%>
 
myredirect.java
 
package com.util;
 
import javax.servlet.http.httpservletrequest;
 
import java.util.enumeration;
 
public class myredirect    //对url的转换类
 
{
 
 public static string dealurl(httpservletrequest request)
 
 {
 
  string url = "";
 
  url = request.getrequesturl()+"?";
 
  url +=param(request);
 
  if(url.indexof("&")>-1)
 
   url=url.replaceall("&","@#@");//实际上就是把有&的字符转化成了@#@
 
  return url;
 
 }
 
 public static string geturl(string url)//这个是还原方法
 
 {
 
  if(url.indexof("@#@")>-1)
 
   url=url.replaceall("@#@","&");
 
  return url;    
 
 }
 
 public static string param(httpservletrequest request)
 
 {
 
  string url = "";
 
  enumeration param = request.getparameternames();//得到所有参数名
 
  while(param.hasmoreelements())
 
  {
 
   string pname = param.nextelement().tostring();
 
   url += pname+"="+request.getparameter(pname)+"&";
 
  }
 
  if(url.endswith("&"))
 
  {
 
   url = url.substring(0,url.lastindexof("&"));
 
  }
 
  return url;
 
 }
 
}
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!