jsp如何在“用<jsp:include>包含的页面中“实现跳转
2015-06-06 18:54
846 查看
因为系统中的页面几乎都需要当前有用户登录才能有效访问,所以想在
header中判断是否有用户登录,未登录实现跳转。能达到的效果是,未登录状态下访问所有包含
header.jsp的页面时,可以自动跳转到登录页面。
我在
header.jsp中加入如下代码没有作用。
<% if (session.getAttribute("loginedUser") == null) { response.sendRedirect("signin.html"); return; } %>
因为系统中的页面几乎都需要当前有用户登录才能有效访问
用个简单的Filter就能实现了,拦截所有请求。
package filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.RequestDispatcher; 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; import javax.servlet.http.HttpSession; public class OnlineFilter extends HttpServlet implements Filter { private static final long serialVersionUID = 1L; public void init(FilterConfig filterConfig) throws ServletException { } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { RequestDispatcher dispatcher = request.getRequestDispatcher("KK_BlacklistVehicle_UserLogin.jsp");//这里设置如果没有登陆将要转发到的页面 HttpServletRequest req = (HttpServletRequest) request; HttpServletResponse res = (HttpServletResponse) response; HttpSession session = req.getSession(true); // System.out.println(((HttpServletRequest) request).getRequestURI()); // 从session里取的用户名信息 String username = (String) session.getAttribute("sessionKK_BlacklistVehicle_UserLogin_ID");//这里获取session,为了检查session里有没有保存用户信息,没有的话回转发到登陆页面 // 判断如果没有取到用户信息,就跳转到登陆页面 if (username == null || "".equals(username)) { // 跳转到登陆页面 dispatcher.forward(request,response); // System.out.println("用户没有登陆,不允许操作"); res.setHeader("Cache-Control","no-store"); res.setDateHeader("Expires",0); res.setHeader("Pragma","no-cache"); } else { // 已经登陆,继续此次请求 chain.doFilter(request,response); // System.out.println("用户已经登陆,允许操作"); } } public void destroy() { } }
web.xml
<filter> <filter-name>onlineFilter</filter-name> <filter-class>filter.OnlineFilter</filter-class> </filter> <filter-mapping> <filter-name>onlineFilter</filter-name> <url-pattern>*.jsp</url-pattern> </filter-mapping>
相关文章推荐
- 安装配置Jstorm集群
- jsf与structs的区别
- ExtJs控件属性配置详细
- Meteor.js 是什么
- javascript中window的弹框用法
- ArcGIS API for JavaScript 需要在DoJo中加载的资源
- [LeetCode][JavaScript]Sudoku Solver
- javascript判空问题
- JavaScript的原型问题
- JS实现继承的几种方式
- Javascript String类的属性及方法
- JavaScript 运行机制详解:再谈Event Loop
- 解决 在Mac OS下开发html5+JS Chrome 浏览器 跨域 和 安全访问问题
- jsp页面中jstl标签详解
- JavaScript基础学习
- jsp and servlet
- Console命令详解,让调试js代码变得更简单
- JsRender实用入门教程
- OC基础学习——如何解析plist文件和数据的归档和解档与json数据的解析
- JavaScript中对象的创建方式