网站登录记忆跳转实现的一种方法

2016-02-19 18:08 19 1 收藏

今天图老师小编要跟大家分享网站登录记忆跳转实现的一种方法,精心挑选的过程简单易学,喜欢的朋友一起来学习吧!

【 tulaoshi.com - Web开发 】

  记忆登录跳转可以打打方便用户使用
  getHeader("Referer");方式简单不过不能处理post的参数
  本来都是用在struts,webwork里的,为了容易看明白改写成jsp方式的

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

  -------------------------------------------------------------------------------------------------------------
  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

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

  %
  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("scriptalert('登录成功,谢谢光临');self.location.href='"+myRedirect.geturl(url)+"';/script");//转向到首次请求的url,.geturl(url)是把转化过的地址转化回来变成真实url.
    }else{
     out.println("scriptalert('用户名或密码错误');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
              tdinput 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"stronga 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;
   }
  }
  这样登录浏览器就会自动转到用户刚刚请求的地址

来源:http://www.tulaoshi.com/n/20160219/1616893.html

延伸阅读
用这种 servlet 和 jsp 框架治理复杂的大型网站 Malcolm Davis 顾问 2001 年 2 月 本文介绍 Struts,它是使用 servlet 和 JavaServer Pages 技术的一种 Model-View-Controller 实现。Struts 可帮助您控制 Web 项目中的变化并提高专业化水平。尽管您可能永远不会用 Struts 实现一个系统,但您可以将其中的一些思想用于您以后...
标签: Web开发
昨天练习的时候正好要用到跳转代码,在网上找了一下,觉得下面几个不错...整理了一下发上来... 第一种:   script language="javascript" type="text/javascript" window.location.href="login.jsp?backurl=\"+window.location.href; /script 第二种:     script language=...
标签: PS PS教程
我在论坛里发过一个请求帮助的帖子,我得目的是把一只狗的狗头抠出来,里面有不少人用了抽出,感觉效果不是很好,在这里我把我的方法说一下,如果大家有好的方法也请跟贴说明,互相学习。 原图:     最后效果: [next] 第一步打开原图 第二步选取画笔工具 调整画笔笔尖形状  渐变   后面得数值 ...
标签: flash教程
   在制作flash动画的时候,可能会有有很的mc     有时会把它放到几个场景中,那么在场景中的跳转如何实现呢?     请看教程吧。      1.     方法一:(使用telltarg...     方法一:(使用telltarget命令)     按钮上的as为...
标签: 育儿知识
五种方法提升宝宝的记忆力 家长们可以参考下面罗列出的五种有助记忆力的方法: 1、依次说出名称 把6样东西按先后次序排列在桌上,让孩子看上几十秒钟,然后遮起要求孩子凭记忆依次说出这6样东西的名称。 让孩子闭上眼睛,说出你穿戴的衣帽鞋袜是什么颜色的。如果你也闭上眼睛说出他穿戴的衣帽鞋袜的颜色,将会引起孩子对这...

经验教程

104

收藏

83
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部