Filter in JSP
来源:互联网 发布:java相除保留两位小数 编辑:程序博客网 时间:2024/05/17 04:38
最近学习了JSP的相关知识,先来说一下Filter!
Filter是Servlet2.3和JSP1.2才新增加进来的 功能.Filter字面意思就是过滤器,当用户的请求到达指定网页之前,可以先利用过滤器来改变这些请求的内容或检查相应请求,反之执行响应也是同样的道理.
Filter可行的运用方法如下:
统一的认证处理
对用户的请求做检查记录等
监视或对用户所传递的参数做前期处理
改变图象文件的格式
对响应做编码的动作及压缩处理
对XML的输出使用XSLT来转换
Filter主要通过RequestDispatcher的forward(),include()或HttpServletResponse的sendRedirect(),sendError()等方法来转向其他网页的动作.通过在web.xml中使用<dispatcher>元素,来设定Filter所对应的请求方式.
1.REQUEST默认
<dispatcher>REQUEST</dispatcher>
2.FORWARD
<dispatcher>FORWARD</dispatcher>
3.INCLUDE
<dispatcher>INCLUDE</dispatcher>
4.ERROR
<dispatcher>ERROR</dispatcher>
最重要的配置文件web.xml
<filter>
<filter-name>filter-name</filter-name>
<filter-class>package.class-name</filter-class>
<init-param>
<param-name>param-name</param-name>
<param-value>param-value</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>filter-name</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>dispatcher-type</dispatcher>
</filter-mapping>
Filter例子:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class SessionChecker implements Filter...{
private ServletContext context;
private String targetURI;
public void init(FilterConfig config) throws ServletException...{
context=config.getServletContext();
targetURI=config.getInitParameter("targetURI");
}
public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain) throws IOException,ServletException...{
HttpServletRequest httpRequest=(HttpServletRequest)request;
HttpServletResponse httpResponse=(HttpServletResponse)response;
HttpSession session=httpRequest.getSession(false);
if(session!=null)...{
String passed=(String)session.getAttribute("passed");
if(passed.equals("true"))...{
chain.doFilter(httpRequest,httpResponse);
return;
}
else if(passed.equals("passing"))...{
if(new String(httpRequest.getRequestURI()).equals("/hello/LoginChecker"))...{
chain.doFilter(httpRequest,httpResponse);
return;
}
}
else...{}
session.removeAttribute("passed");
}
StringBuffer requestURL=httpRequest.getRequestURL();
String query=httpRequest.getQueryString();
if(query!=null)
requestURL.append(query);
httpRequest.setAttribute("originalURI",new String(requestURL));
httpRequest.getRequestDispatcher(targetURI).forward(httpRequest,httpResponse);
}
public void destroy()...{}
}
- Filter in JSP
- Invalid <url-pattern> /admin/*.jsp in filter mapping
- jsp filter
- JSP Filter
- JSP Filter
- JSP -Filter
- jsp 之Filter
- jsp:include+filter
- java jsp servlet filter
- Filter for *.jsp
- jsp的Filter
- jsp filter 过滤器
- 认识Jsp过滤器(Filter)
- jsp---Filter的使用
- JSP-Filter,Listener
- jsp过滤器filter
- jsp 过滤器 Filter 配置
- Jsp Filter详解
- css学习1
- 如何使用mscomm串口控件在.net中编程
- js学习2
- 异步委托调用和回调函数的结合使用
- 快速生成100万不重复的8位编号
- Filter in JSP
- Linux解释器原理
- 表单提交时自动复制到剪贴板
- asp中类的使用笔记(1)
- Web services for RoR
- 无法显示隐藏文件和文件夹
- 海量数据库的查询优化及分页算法方案
- 专业数据交割工具RSSql在行李处理系统中的应用
- NET读取Excel数据为null的解决办法