package elkw.action; import javax.servlet.Filter; import javax.servlet.FilterConfig; import javax.servlet.servletexception; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.FilterChain; import java.io.IOException; import javax.servlet.http.httpServletRequest; import javax.servlet.http.httpSession; import javax.servlet.http.httpServletResponse; import elkw.po.system.User; public class RightFilter implements Filter { public voID init(FilterConfig filterConfig) throws servletexception { } public voID doFilter(ServletRequest request,ServletResponse response,FilterChain chain) throws IOException,servletexception { httpServletRequest req = (httpServletRequest) request; httpServletResponse res = (httpServletResponse) response; httpSession session = req.getSession(true); //从session里取的用户名信息 User username = (User) session.getAttribute("user"); String reuris = req.getRequestURI(); // 获取访问路径 String reuri = reuris.substring(0,17); //截取0-17的字符 String loginAction = "/backserver/login";//定义登陆的地址 //判断如果没有取到用户信息,就跳转到登陆页面 String ipad = "/backserver/Jsond"; if (username == null || "".equals(username)) { //ipad请求数据和登陆页面不过滤 if (reuri.equals(loginAction) || reuri.equals(ipad)) { chain.doFilter(request,response); return; } //跳转到登陆页面 res.sendRedirect("http://"+req.getheader("Host")+"/backserver"); } else { //已经登陆,继续此次请求 chain.doFilter(request,response); } } public voID destroy() { } }
下面配置这个过滤器
然后在web.xml里配置那些JsP文件需要登陆权限验证:
<!-- 判断用户是否登录,过滤action的请求(你也可以写 (*.Jsp),(*.HTML),(/*)全局的,)。。。。 --> <filter> <filter-name>right</filter-name> <filter-class>你的类名</filter-class> </filter> <filter-mapPing> <filter-name>right</filter-name> <url-pattern>*.action</url-pattern><!-- 拦截--> </filter-mapPing>
大家如果有什么疑问一起探讨探讨 总结
以上是内存溢出为你收集整理的判断用户是否登录,如果登录了放行,否则跳转到登陆页面全部内容,希望文章能够帮你解决判断用户是否登录,如果登录了放行,否则跳转到登陆页面所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)