Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 303|回复: 0

[jsp学习]网站登录记忆跳转jsp实现的一种方法

[复制链接]
  • TA的每日心情
    开心
    2021-3-12 23:18
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2014-10-2 03:39:19 | 显示全部楼层 |阅读模式
    记忆登录跳转可以大大方便用户。
    getHeader("Referer");方式简单不过不能处理post的参数
    本来都是用在struts,webwork里的,为了容易看明白改写成jsp方式的

    -------------------------------------------------------------------------------------------------------------
    member.jsp   //session限制访问页

    <%
    String url = ""
    if(session.getAttribute("username")==null)
    {
       url = myRedirect.dealurl(request);//记录当前地址和请求参数
       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);
        //转向到首次请求的url,.geturl(url)是把转化过的地址转化回来变成真实url.
       out.println("<script>alert("登录成功,谢谢光临");self.location.href=""+myRedirect.geturl(url)+"";</script>");
       }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" style="height:20"></td>
               </tr>
              <tr>
                <td>密 码:</td>
                <td><input name="password" type="password" class="textstyle" id="password" size="12"
                          style="height:20;width:94"></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="#" onclick="MM_openBrWindow("requestpwd.jsp","pwd","width=300,height=200");return false;">
                        找回密码</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;
      }
    }

    这样登录浏览器就会自动转到用户刚刚请求的地址


      
      
       
       

         
       

         
       
      
    复制代码
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2025-2-27 02:03 , Processed in 0.341373 second(s), 36 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表