filter 过滤器

简介: MergeFilter com.commons.filter.MergeFilter MergeFilter /selfhelp/* REQUEST FORWARD ERROR INCLUDE         import java.
<!--配置过滤器-->
	<filter>
		<filter-name>MergeFilter</filter-name>
		<filter-class>com.commons.filter.MergeFilter</filter-class>
	</filter>

	<!--映射过滤器-->
	<filter-mapping>
		<filter-name>MergeFilter</filter-name>
		<url-pattern>/selfhelp/*</url-pattern>
		<dispatcher>REQUEST</dispatcher>  
		<dispatcher>FORWARD</dispatcher>
		<dispatcher>ERROR</dispatcher>
		<dispatcher>INCLUDE</dispatcher>
	</filter-mapping>

 

 

 

 

 

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.HttpServletRequestWrapper;

public class MergeFilter implements Filter {

	@Override
	public void destroy() {

	}

	@Override
	public void doFilter(final ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {
		request.setCharacterEncoding("UTF-8");
		response.setCharacterEncoding("UTF-8");
		response.setContentType("text/html;charset=UTF-8");
        
        chain.doFilter(new HttpServletRequestWrapper((HttpServletRequest) request) {  
            @Override  
            public String getRequestURI() {  
            	String url = ((HttpServletRequest) request).getRequestURI();
                if (url.contains("/selfhelp") && !url.contains("/selfhelp/selfhelp")) {
        			url = url.replace("/selfhelp", "/selfhelp/selfhelp");
        		}
            	return url;
            }  
        }, response);
	}

	@Override
	public void init(FilterConfig arg0) throws ServletException {

	}

}

 

 

用<jsp:include page="success.jsp"></jsp:include> 就可以过滤了, 

jsp中include[1]有两种形式,分别是 
<%@ include file=” ”%> 
<jsp:include page=” ” flush=”true”/> 
前者是指令元素、后者是行为元素。通常当应用程序中所有的页面的某些部分(例如标题、页脚和导航栏)都相同的时候,就可以考虑用include。<%@ include file=” ”%>,jsp的include指令元素读入指定页面的内容。并把这些内容和原来的页面融合到一起。(这个过程是在翻译阶段:也就是jsp被转化成servlet的阶段进行的。) 
include与jsp:include主要有两个方面的不同; 
一:执行时间上: 
<%@ include file=”relativeURI”%> 是在翻译阶段执行 
<jsp:include page=”relativeURI” flush=”true” /> 在请求处理阶段执行. 
二:引入内容的不同: 
<%@ include file=”relativeURI”%> 
引入静态文本(html,jsp),在JSP页面被转化成servlet之前和它融和到一起. 
<jsp:include page=”relativeURI” flush=”true” />引入执行页面或servlet所生成的应答文本. 
另外在两种用法中file和page属性都被解释为一个相对的URI.如果它以斜杠开头,那么它就是一个环境相关的路径.将根据赋给应用程序的URI的前缀进行解释,如果它不是以斜杠开头,那么就是页面相关的路径,就根据引入这个文件的页面所在的路径进行解释

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

捐助开发者

在兴趣的驱动下,写一个免费的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(右上角的爱心标志,支持支付宝和PayPal捐助),没钱捧个人场,谢谢各位。



 
 
 谢谢您的赞助,我会做的更好!

 

 

目录
相关文章
|
4月前
|
Java API 容器
Filter 过滤器实现
JavaWeb 组件 Servlet 提供了 Filter 过滤功能,其功能是对目标资源的请求和响应进行拦截,对拦截到的请求和响应做出特殊的功能处理,比如我们请求中有一些敏感信息过滤就是利用过滤器过滤。
|
8月前
|
应用服务中间件
15-Filter 过滤器2
15-Filter 过滤器2
54 0
|
4月前
|
JavaScript 前端开发
filter() 方法使用
filter() 方法使用
17 0
|
7月前
|
Java 应用服务中间件 Spring
@RefreshScope和过滤器Filter不要这样用
在注册自定义的OncePerRequestFilter所在的类上加了@RefreshScope导致自定义的OncePerRequestFilter不会被注册到上下文。
|
8月前
|
Java
15-Filter 过滤器1
15-Filter 过滤器1
64 0
|
8月前
|
设计模式 监控 搜索推荐
过滤器模式(Filter Pattern)
过滤器模式(Filter Pattern)是一种结构型设计模式,它通过一系列条件来过滤集合中的对象,并返回符合条件的对象子集。
79 0
|
11月前
|
API 数据安全/隐私保护 容器
Filter(过滤器)
Filter(过滤器)
|
API 容器
Filter过滤器的简单介绍与使用
Filter过滤器的简单介绍与使用
125 0
Filter过滤器的简单介绍与使用
|
Java 应用服务中间件
Filter过滤器
Filter过滤器
Filter过滤器
JavaWeb过滤器(Filter)详解
Filter:过滤器 1.概念: web中的过滤器:当访问服务器的资源时,过滤器可以将请求拦截下来,完成一些特殊的功能 过滤器的作用:一般用于完成通用的操作,如登录验证、统一编码处理、敏感字符过滤等等。

热门文章

最新文章