我们在用struts2的时候,通常会使用默认的过滤器,定义拦截器,这样就可以控制请求过来的.action请求,但是如果我们直接使用.jsp来访问页面的话,就会有一些页面不能被拦截,会出现报错画面,影响网站的整体质量,这个时候我们就可以在web.xml中定义一个过滤器,让它来过滤.jsp的请求,做一些操作。代码如下:
<!-- 让Struts 2 的核心Filter拦截所有.action请求 --> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>*.action</url-pattern> </filter-mapping> <!-- 自定义一个过滤器 --> <filter> <filter-name>myFilter</filter-name> <filter-class>jy.filter.MyFilter</filter-class> </filter> <!-- 让自定义的Filter拦截所有.jsp请求 --> <filter-mapping> <filter-name>myFilter</filter-name> <url-pattern>*.jsp</url-pattern> </filter-mapping>
过滤器java代码如下:
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.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; public class MyFilter implements Filter { public void destroy() { } @Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { System.out.println("自定义过滤器开始!"); HttpServletRequest request = (HttpServletRequest) req; HttpServletResponse response = (HttpServletResponse) res; HttpSession session = request.getSession(); String uri = request.getRequestURI(); uri = uri.split("/")[uri.split("/").length - 1]; if (uri.equals("login.jsp") || uri.equals("regist.jsp")) { chain.doFilter(req, res); } else { if (session.getAttribute("user") != null) { chain.doFilter(req, res); } else { response.sendRedirect(request.getContextPath() + "/login.jsp"); return; } } } public void init(FilterConfig arg0) throws ServletException { } }
相关推荐
用于 web.xml 配置详解。例如: <web-app> <display-name></display-name>定义了...<filter-mapping></filter-mapping> 一旦命名了一个过滤器,就要利用filter-mapping元素把它与一个或多个servlet或JSP页面相关联。
本书语言生动、通俗易懂、讲解细致,大部分章节都提供了多个例子,而且很多例子都是目前web开发中经常使用的功能,具有相当的实用价值。本书不仅可以作为java web开发的学习用书,还可以作为从事java web开发的...
本书语言生动、通俗易懂、讲解细致,大部分章节都提供了多个例子,而且很多例子都是目前web开发中经常使用的功能,具有相当的实用价值。本书不仅可以作为java web开发的学习用书,还可以作为从事java web开发的...
1.6.1 监听器(Listener)顺序 ...............................................................................................................14 1.6.2 注解处理 .............................................
本书语言生动、通俗易懂、讲解细致,大部分章节都提供了多个例子,而且很多例子都是目前web开发中经常使用的功能,具有相当的实用价值。本书不仅可以作为java web开发的学习用书,还可以作为从事java web开发的...
1.6.1 监听器(Listener)顺序 ...............................................................................................................14 1.6.2 注解处理 ...............................................
jsp的web.xml配置说明 Web.xml常用元素<web-app><display-name></display-name>定义...<filter-mapping></filter-mapping> 一旦命名了一个过滤器,就要利用filter-mapping元素把它与一个或多个servlet或JSP页面相关联。
本书语言生动、通俗易懂、讲解细致,大部分章节都提供了多个例子,而且很多例子都是目前web开发中经常使用的功能,具有相当的实用价值。本书不仅可以作为java web开发的学习用书,还可以作为从事java web开发的...
14、Hibernate的过滤器设置,详见 shtest.HibernateFilter.java(这时候要注意在web.xml中的filter设置) 可以拿这个Demo和Struts2_Test比较一下,认真看的话,你会发现很多有用的信息, 至少能够搞清楚Hibernate到底...
定义这个简单的Web应用 5.3. 创建这个简单的Web应用 5.4. 配置Jetty插件 5.5. 添加一个简单的Servlet 5.6. 添加J2EE依赖 5.7. 小结 6. 一个多模块项目 6.1. 简介 6.1.1. 下载本章样例 6.2. simple-...
64 5.1.1 打印多个参数 .............................. 64 5.1.2 导入时重命名 .............................. 65 5.2 赋值魔法 ................................................. 66 5.2.1 序列解包 ............
3.12.3. 使用过滤器自定义扫描 3.12.4. 自动检测组件的命名 3.12.5. 为自动检测的组件提供一个作用域 3.12.6. 用注解提供限定符元数据 3.13. 注册一个LoadTimeWeaver 4. 资源 4.1. 简介 4.2. Resource接口 ...
4.0.3.jar是有时候项目中的真实链接不想让访问者直接读取到,所以这里就是用了url重写技术.urlrewritefilter4.0 是个开源的框架,其实就是把真实的链接替换掉,替换成你想显示的链接,然后web.xml里面有个过滤器,对...
4、如果一个servlet中有很多个方法,则必须采用传递参数的形式,分解到每一个方法中。 2重构servlet 针对servlet以上的特点,我们可以对servlet进行重构,使其开发起来更简单。更容易,更适合团队协作。 重构的目标...
1.1.1. 设置 ............................................................ 1 1.1.2. 第一个 class ................................................... 3 1.1.3. 映射文件 ......................................
3.12.3. 使用过滤器自定义扫描 3.12.4. 自动检测组件的命名 3.12.5. 为自动检测的组件提供一个作用域 3.12.6. 用注解提供限定符元数据 3.13. 注册一个LoadTimeWeaver 4. 资源 4.1. 简介 4.2. Resource接口 ...
3.10.2 如何在超链接中传递多个参数 3.10.3 重定向后出现404错误 3.11 精彩回顾 第4章 体验面向对象 1IavaBean技术 4.1 本章学习任务 4.1.1 本章知识体系 4.1.2 实例开发任务 4.2 JavaBean简介 4.2.1 JavaBean产生...
多个档案的YAML文件 24.7.4.YAML缺点 24.8.类型安全的配置属性 24.8.1.第三方配置 24.8.2.轻松绑定 24.8.3.合并复杂类型 24.8.4.属性转换 转换持续时间 转换数据大小 24.8.5.@...