过滤器的运用情况有很多、
比如:
(1)认证Filter
(2)日志和审核Filter
(3)图片转换Filter
(4)数据压缩Filter
(5)密码Filter
(6)令牌Filter
(7)触发资源访问事件的Filter
(8)XSLT Filter
(9)媒体类型链Filter
-----------这里取自http://blog.csdn.net/yudaoai/article/details/4231333 yudaoai的博客。
下面就简单地介绍对于密码filter的运用。
新建一个项目,配置web.xml
添加代码如下:
<filter-mapping>
<filter-name>TestFilter_14311</filter-name>
<url-pattern>*.jsp</url-pattern><!-- 对指定类型的文件进行过滤,* 号代表对所有文件或者路径进行过滤,这里我们需要对JSP文件进行路径。 -->
</filter-mapping>
<filter-name>TestFilter_14311</filter-name>
<url-pattern>*.jsp</url-pattern><!-- 对指定类型的文件进行过滤,* 号代表对所有文件或者路径进行过滤,这里我们需要对JSP文件进行路径。 -->
</filter-mapping>
新建一个Filter接口
步骤如下,
new>class>add..>输入Filter
选择Filter-javax.servlet。
构建如下方法:
public void destroy() {
System.out.println("销毁过滤器");
}
public void doFilter(ServletRequest request, ServletResponse response, //注意这里的三个参数。
FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("UTF-8");
request.setCharacterEncoding("UTF-8");
chain.doFilter(request, response); //注意这三句,不要写错了,要与doFilter里面的三个参数是一样的。
System.out.println("运行过滤器");
}
public void init(FilterConfig arg0) throws ServletException {
System.out.println("初始化过滤器");
}
System.out.println("销毁过滤器");
}
public void doFilter(ServletRequest request, ServletResponse response, //注意这里的三个参数。
FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("UTF-8");
request.setCharacterEncoding("UTF-8");
chain.doFilter(request, response); //注意这三句,不要写错了,要与doFilter里面的三个参数是一样的。
System.out.println("运行过滤器");
}
public void init(FilterConfig arg0) throws ServletException {
System.out.println("初始化过滤器");
}
接下来要新建servlet。
右击new> servlet。不多说,构建方法。
代码如下:
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("UTF-8"); //这里一般设置为UTF-8,但是有些人会比较喜欢设置为GBK。关于编码的设置大家可以自行去了解。
request.setCharacterEncoding("UTF-8");
chain.doFilter(request, response);
System.out.println("运行过滤器");
}
public void init(FilterConfig arg0) throws ServletException {
System.out.println("初始化过滤器");
}
FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("UTF-8"); //这里一般设置为UTF-8,但是有些人会比较喜欢设置为GBK。关于编码的设置大家可以自行去了解。
request.setCharacterEncoding("UTF-8");
chain.doFilter(request, response);
System.out.println("运行过滤器");
}
public void init(FilterConfig arg0) throws ServletException {
System.out.println("初始化过滤器");
}
接下来要新建两个页面。
a页登录,b页显示结果。
代码如下:
登录页面:
<form name="myform" method="post" action="b">请输入用户名:<input type="text" name="uname"><br/>
请输入密码:<input type="password" name="upass"><br/>
<input type="submit" value="提交"><input type="reset" value="重置" />
</form>
显示页面:
body里面添加代码:
<%
String aLogin=(String)session.getAttribute("aLogin");
if(aLogin==null){
request.getRequestDispatcher("a.jsp").forward(request,response);
}
%>
欢迎:<%=request.getParameter("uname") %>