记忆登录跳转可以打打方便用户使用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("");//转向到首次请求的url,.geturl(url)是把转化过的地址转化回来变成真实url. }else{ out.println(""); } }else{//如果不是登录提交显示现面登录界面 %>
<% } %> --------------------------------------------------------------- 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; } } 这样登录浏览器就会自动转到用户刚刚请求的地址 |
|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )
GMT+8, 2024-9-30 11:40 , Processed in 0.120089 second(s), 12 queries , Gzip On, MemCache On.
Powered by Discuz! X3.5
© 2001-2023 Discuz! Team.