package com.ch.xinriu.web;
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;
public class MyFilter implements Filter {
private String characterEncoding;//编码方式,配置在web.xml中
private boolean enabled;//是否用到此Filter
public void destroy() {
// TODO Auto-generated method stub
characterEncoding = null;//销毁时清空资源
System.out.println("Filter被销毁!");
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
System.out.println("处理请求");
if(enabled || characterEncoding != null){ //如果启用Filter
request.setCharacterEncoding(characterEncoding);
//设置request的编码方式
response.setCharacterEncoding(characterEncoding);
//设置response的编码方式
}
//继续将请求传递到下一个处理中(Filter或者JSP或者Servlet)
chain.doFilter(request, response);
System.out.println("处理响应");
}
public void init(FilterConfig config) throws ServletException {
// TODO Auto-generated method stub
characterEncoding = config.getInitParameter("characterEncoding");
enabled = "true".equalsIgnoreCase(config.getInitParameter("enabled").trim());//启用
System.out.println("Filter被初始化");
}
}
web.xml中的代码
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<!-- 字符编码过滤器 -->
<filter>
<filter-name>MyFilter</filter-name>
<filter-class>com.ch.xinriu.web.MyFilter</filter-class>
<init-param>
<param-name>characterEncoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>enabled</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>MyFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 结束字符编码过滤器 -->
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>3</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>3</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
分享到:
相关推荐
这里的关键点在于通过`<init-param>`元素指定了编码格式为`UTF-8`,并且通过`<url-pattern>`元素配置该过滤器应用于所有请求路径。 #### 六、实际应用场景分析 在实际项目中,通过这种方式配置的过滤器可以有效...
“权限管理”是任何企业级应用必不可少的部分,它涉及到用户角色、权限分配以及访问控制。通过Servlet过滤器,我们可以实现基于URL的权限验证,只有具备相应权限的用户才能访问特定的资源。 字符过滤是另一个关键的...
本案例“过滤器应用案例”着重讲解了如何利用过滤器来实现用户登录状态的监控以及权限控制。 过滤器在JAVA2EE中的作用: 1. **数据转换**:过滤器可以对请求或响应的数据进行转换,如编码转换,字符集调整等。 2. *...
5. **部署描述符**:修改`web.xml`文件,配置Struts的初始化参数,包括ActionServlet和过滤器。 ```xml <servlet-name>action <servlet-class>org.apache.struts.action.ActionServlet <param-name>config ...
总结,基于VB6的网站过滤器源代码为初学者提供了良好的学习平台,涵盖了VB6的基础知识、网络编程和字符串处理等多个方面。深入理解和实践这个项目,将有助于提升编程技能,并了解网络过滤技术的应用。
Java EE(Java Platform, Enterprise Edition)是用于构建企业级分布式应用程序的框架,它提供了一系列标准接口和组件模型,包括上下文、监听器和过滤器。这些概念是Java EE开发中的核心组成部分,对于理解和优化Web...
在Java企业级应用开发中,Spring框架扮演着至关重要的角色,尤其在构建Web应用程序时。Spring框架提供了多种机制来增强应用程序的功能,其中之一就是过滤器(Filter)。本篇将深入探讨"Spring过滤器",以及如何利用...
3. **LiveCycle Data Services集成**:如果需要更高级的企业级功能,如事务管理、安全性、数据缓存等,BlazeDS可以与Adobe LiveCycle Data Services集成。 在聊天室场景中,消息过滤器通常用于以下几个方面: 1. *...
通过学习这些资料,开发者可以提升Java Web开发技能,为构建更复杂的企业级应用打下基础。 6. **实践应用**: 在实际开发中,了解和熟练运用JSP、Servlet和过滤器是必要的。例如,可以使用Servlet处理用户的登录请求...
Struts2是一个非常流行的Java Web框架,用于构建和维护可扩展的企业级应用程序。然而,在实际开发和部署过程中,开发者可能会遇到各种问题,其中包括过滤器(Filter)错误。本篇文章将详细探讨在Struts2.0中如何解决...
Java Web开发是构建基于Web的应用程序的关键技术,涵盖了多种组件和技术,如Servlets、JSP、过滤器、监听器和自定义标签等。本篇主要关注的是Java Web...在实际开发中,这些技术常常结合使用,以实现复杂的企业级应用。
**过滤器(Filter)**:在Web应用中,过滤器用于对HTTP请求和响应进行预处理或后处理,如字符编码转换、登录检查、GZIP压缩等。在web.xml中配置Filter,并指定其拦截的URL模式。 **拦截器(Interceptor)**:...
在JSP中,我们可以利用过滤器来实现如字符编码转换、权限控制、日志记录等功能。通过实现`javax.servlet.Filter`接口并配置在web.xml中,我们可以定义过滤规则,控制过滤器的执行顺序。 2. **监听器(Listener)** ...
1. **Spring框架**:Spring是Java企业级应用的核心框架,它提供了依赖注入(DI)和面向切面编程(AOP)等特性,简化了Java开发。Spring MVC是其用于构建Web应用程序的一部分,它提供了一个模型-视图-控制器架构,帮助...
在IT行业中,Java是一种广泛应用的编程语言,尤其在企业级应用开发中占据着主导地位。在给定的文件信息中,我们看到两个重要的文件:"cors-filter-1.7.jar" 和 "java-util-1.9.1.jar",这些都是与Java相关的库文件,...
- `<filter>`元素定义了自定义过滤器,这些过滤器可以在请求到达Servlet之前进行预处理,如登录验证、字符编码转换等。 - `<filter-mapping>`元素将过滤器与URL模式关联,控制过滤器的作用范围。 - `<listener>`元素...
在Java企业级应用(J2EE)开发中,Filter(过滤器)是核心组件之一,它扮演着请求处理的预处理器和后处理器角色。Filter提供了一种机制,可以在请求被Servlet处理之前或者之后进行拦截、修改,甚至拒绝请求。这种...
2. **过滤器(Filter)与监听器(Listener)**:过滤器用于拦截请求和响应,进行预处理或后处理,如登录验证、字符编码转换等。监听器则监听Web应用程序中的特定事件,如用户会话的创建、销毁,或者ServletContext的...
Struts2是一个流行的Java web开发框架,用于构建结构清晰...随着你对Struts2的深入学习,你会了解到更多关于Action配置、结果配置、异常处理、表单验证、动态方法调用等方面的知识,这些都是构建大型企业级应用的基础。
- **过滤器配置**:确保Web应用的Filter链中包含字符集过滤器,例如`CharacterEncodingFilter`,并正确配置编码: ```xml <filter> <filter-name>characterEncodingFilter</filter-name> <filter-class>org....