手机
当前位置:查字典教程网 >编程开发 >Java >拦截JSP页面,校验是否已登录详解及实现代码
拦截JSP页面,校验是否已登录详解及实现代码
摘要:拦截JSP页面,校验是否已登录最近使用struts2做项目,需要拦截JSP以校验是否已经登,但struts2的过滤器链只能过滤action。...

拦截JSP页面,校验是否已登录

最近使用struts2做项目,需要拦截JSP以校验是否已经登,但struts2的过滤器链只能过滤action。后来发现在web.xml里可以直接增加javax.servlet.Filter实现类的过滤器,可以过滤JSP。请看代码

Filter实现类

<span>package com.common; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class LoginFilter extends HttpServlet implements Filter { private static final long serialVersionUID = 1L; @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest)request; HttpServletResponse res = (HttpServletResponse)response; String path = req.getContextPath(); String indexPath = req.getScheme()+"://"+req.getServerName()+":"+req.getServerPort()+path+ "/pages/login.jsp"; if(req.getRequestURI().endsWith("login.jsp")) { chain.doFilter(request, response); return; } Object loginuser = req.getSession().getAttribute("<strong><span>loginSession</span></strong>"); if(loginuser == null){ res.sendRedirect(indexPath); return; } chain.doFilter(request, response); } @Override public void init(FilterConfig arg0) throws ServletException { // TODO Auto-generated method stub } } </span>

登录方法:

<span> public String login() { Login login = new Login(); //.......校验登录信息 ActionContext ctx = ActionContext.getContext(); Map<String, Object> session = ctx.getSession(); session.put("<strong><span>loginSession</span></strong>", login); return "success"; }</span>

web.xml配置

<filter> <filter-name>setlog</filter-name> <filter-class>com.common.LoginFilter</filter-class> </filter> <filter-mapping> <filter-name>setlog</filter-name> <url-pattern>/pages/home.jsp</url-pattern> <url-pattern>/pages/channel/*</url-pattern> <url-pattern>/pages/content/*</url-pattern> <url-pattern>/pages/product/*</url-pattern> <url-pattern>/pages/vodtask/*</url-pattern> </filter-mapping>

注意,如果页面上使用了框架,则可能导致session超时后退出到登录页面,此时登录页面显示在框架的某个子页面,解决方法,在登录页面加入如下代码即可。

<span> <script language="javascript"> if (top != window) top.location.href = window.location.href; </script></span>

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

【拦截JSP页面,校验是否已登录详解及实现代码】相关文章:

用Set类判断Map里key是否存在的示例代码

Java批量修改文件名的实例代码

java中 spring 定时任务 实现代码

java双向循环链表的实现代码

使用Log4j为项目配置日志输出应用详解以及示例演示的实现分析

Java(基于Struts2) 分页实现代码

java DOM4J 读取XML实例代码

通过java备份恢复mysql数据库的实现代码

Java 快速排序(QuickSort)原理及实现代码

MYSQL批量插入数据的实现代码第1/3页

精品推荐
分类导航