首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

filter使用

2012-10-09 
filter应用web.xml??xml version1.0 encodingUTF-8?web-app version2.4 ?xmlnshttp://java.

filter应用

web.xml

?

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
?xmlns="http://java.sun.com/xml/ns/j2ee"
?xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
?xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
?http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
? <filter>

???? <filter-name>CharsetEncodingFilter</filter-name>

???? <filter-class>com.util.filter.CharsetEncodingFilter</filter-class>

???? <init-param>
???????????
??????????? <param-name>encoding</param-name>

??????????? <param-value>GB18030</param-value>

???? </init-param>
???? <init-param>
???<param-name>cityCode</param-name>

??????????? <param-value>091</param-value>

???? </init-param>

?</filter>

?<filter-mapping>

???? <filter-name>CharsetEncodingFilter</filter-name>

???? <url-pattern>/TestServlet</url-pattern>
</filter-mapping>
? <servlet>
??? <servlet-name>TestServlet</servlet-name>
??? <servlet-class>org.mvo.servlet.TestServlet</servlet-class>
? </servlet>

? <servlet-mapping>
??? <servlet-name>TestServlet</servlet-name>
??? <url-pattern>/TestServlet</url-pattern>
? </servlet-mapping>

?
? <welcome-file-list>
??? <welcome-file>index.jsp</welcome-file>
? </welcome-file-list>
</web-app>

?

filter

?

package com.util.filter;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

import org.mvo.common.StringUtils;

import java.util.*; // For Date class

/**
?* Simple filter that prints a report on the standard output each time an
?* associated servlet or JSP page is accessed.
?*/

// 定义一个成员变量用于在init()方法里得到配置文件里<init-param>中对应 <paramname>encoding</param-name> 的
// <param-value>GB18030</param-value>值;其中GB18030值可以更改比如gbk等;

public class CharsetEncodingFilter implements javax.servlet.Filter {
?FilterConfig fc;

?public void doFilter(ServletRequest request, ServletResponse response,
???FilterChain chain) throws ServletException, IOException {
??// 1,doFilter方法的第一个参数为ServletRequest对象。此对象给过滤器提供了对进入的信息(包括表单数据、cookie和HTTP请求头)的完全访问。第二个参数为ServletResponse,通常在简单的过滤器中忽略此参数。最后一个参数为FilterChain,此参数用来调用servlet或JSP页。

??HttpServletRequest req = (HttpServletRequest) request;// 如果处理HTTP请求,并且需要访问诸如getHeader或getCookies等在ServletRequest中无法得到的方法,就要把此request对象构造成HttpServletRequest。

??// request1.setCharacterEncodeing("");
??// System.out.println("进来");
??
??String provCode = fc.getInitParameter("cityCode");
??
??boolean flg = false;
??
??HttpSession session = req.getSession();
??String cityCode = (String) session.getAttribute("CityCode");
??cityCode = StringUtils.StrNullDeal(cityCode);
??
??System.out.println(cityCode);
??if (cityCode.equals(provCode)) {
???if ("有手机号".equals("有手机号")) {
????session.setAttribute("CityCode", "910");
????flg = true;
???}
??}
??chain.doFilter(request, response);
??if (flg) {
???session.setAttribute("CityCode", provCode);
??}
??System.out.println(session.getAttribute("CityCode").toString());
??// System.out.println("出去");
??// 2.调用FilterChain对象的doFilter方法。Filter接口的doFilter方法取一个FilterChain对象作为它的一个参数。在调用此对象的doFilter方法时,激活下一个相关的过滤器。如果没有另一个过滤器与servlet或JSP页面关联,则servlet或JSP页面被激活。

?}

?public void init(FilterConfig config) throws ServletException {
??this.fc = config;
//??String provCode = config.getInitParameter("cityCode");
//??System.out.println(provCode);
??// encoding =
??// FilterConfig.getInitParameter("encoding");//FilterConfig对象具有一个getInitParameter方法,它能够访问部署描述符件
??// //(web.xml)中分配的过滤器初始化参数
?}

?public void destroy() {
??fc.getInitParameter("cityCode");
?}

}

?

热点排行