Servlet 返回登录前页面
来源:互联网 发布:js 上传与下载文件 编辑:程序博客网 时间:2024/05/16 09:02
用servlet实现网站时,点击进入需要登录验证的网站就会跳转到登陆页面,那么登录完成后如何跳转回登陆前界面呢?
有两种实现方法
一种是把登陆前地址添加在url后面
另一种是通过session.setAttrubute()把地址添加在session里
我使用的是第一种方法
首先需要一个过滤未登录用户的filter(过滤器)
在过滤器的doFilter( )中加入
/*** @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)*/public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {HttpServletRequest req = (HttpServletRequest) request;String requestUri = req.getRequestURI();if (req.getSession().getAttribute("login") != null) {//判断是否已登录// pass the request along the filter chainchain.doFilter(request, response);}else {HttpServletResponse res = (HttpServletResponse) response;if (!requestUri.endsWith("index.jsp")) {//登陆前页面不是主页才需要记录String requestPara = req.getQueryString();String requestUrl;if (requestPara != null)requestUrl = URLEncoder.encode(requestUri + "?" + requestPara, "GBK")<span style="white-space:pre"></span>elserequestUrl = URLEncoder.encode(requestUri, "GBK");res.sendRedirect("login.jsp?returnUrl=" + requestUrl);} else {res.sendRedirect("login.jsp");}}}
注意:
例如发送请求的页面为 http://localhost:8080/yourproject/page.jsp?para1=xx¶2=xx,request.getRequestURI()就会返回 /yourproject/page.jsp ,request.getQueryString()就会返回para=xx¶2=xx 。
将url参数添加进url中需要用URLEncoder和URLDecoder对参数进行编码和解码。
登陆页面login.jsp
<form method='post' action='login.do?<%= request.getQueryString()%>'>名称:<input type='text' name='username'>密码:<input type='password' name='password'><input type='submit' value='登入'></form>
因为在filter使用了sendRedirect(),所以需要在action=‘login.do'(处理登陆的servlet)后加上参数,否则servlet获取不了参数
最后只要在login servlet中
String returnUrl = request.getParameter("returnUrl");if (!returnUrl.equals("null")) {<span style="white-space:pre"></span>returnUrl = URLDecoder.decode(returnUrl, "GBK");}将跳转的页面设为returnUrl就可以完成跳转到登录前页面的功能了。
0 0
- Servlet 返回登录前页面
- 登录后返回登录前的页面
- JSP登录后自动返回到登录前页面
- servlet之登录页面
- JSP/Servlet基础——登录成功后返回之前的页面
- 登录后跳转到登录前页面
- android 页面返回刷新前一个页面
- JSP+Servlet登录页面制作
- Tomcat+Servlet登录页面实例
- servlet页面的简单登录
- magento登录之后返回登录之前页面
- php返回前一个页面的代码
- 用javascript返回前一个页面
- js返回前一页刷新页面
- 登陆成功后返回前一个页面
- 登陆成功后返回前一个页面
- servlet----登录页面----一个有冗余代码的登录页面
- servlet中处理用户非法登录页面
- 2.4.0版 hadoop伪分布式模式在mac上的配置和运行
- Linux查看系统信息的一些命令及查看已安装软件包的命令
- pkg-config详解
- 黑马程序员-Object C之copy和mutableCopy语法(二)
- 网页宽高自适应大小(转)
- Servlet 返回登录前页面
- 《人工智能的未来》读书笔记
- ubuntu安装配置ftp服务
- iOS宏编译的两种方法
- 电商实训二:电子支付工具
- Socket超时设置---select()的妙用
- [顶] 史上最经典的IT入门学习教程DVD光盘免费领!
- Android 使用Parcelable序列化对象
- 如何利用jenkins来做android自动化