<!--配置过滤器--> <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捐助),没钱捧个人场,谢谢各位。
谢谢您的赞助,我会做的更好!