package com.wenq.www.filter;
import java.io.IOException;
import java.util.Date;
import javax.servlet.*;
public class TestFilter implements Filter {
FilterConfig config;
String encoding;
public void destroy() {
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
if(encoding!=null&&!encoding.equals("")){
request.setCharacterEncoding(encoding);
System.out.println("编码为:"+encoding);
}
else {
request.setCharacterEncoding("GBK");
}
chain.doFilter(request, response);
}
public void init(FilterConfig config) throws ServletException {
this.config = config;
this.encoding=config.getInitParameter("encoding");
System.out.println("insert encoding:"+encoding);
}
}
web.xml
配置文件:
<filter>
<filter-name>fristFilter</filter-name>
<filter-class>com.wenq.www.filter.TestFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>fristFilter</filter-name>
<servlet-name>/*</servlet-name>
</filter-mapping>
分享到:
相关推荐
拦截器可以用来统一处理字符集编码,确保数据的一致性和正确性。 2. **权限验证**:在用户访问特定资源之前,需要进行身份验证和授权检查。拦截器可以在请求到达业务逻辑层之前完成这些操作,确保只有经过验证的用户...
拦截器的作用在于对请求进行预处理或后处理,比如权限验证、日志记录等。 - **过滤器**(Filter):过滤器是Servlet技术中的一个重要组成部分,用于对客户端发送到服务器端的HTTP请求或由服务器端返回给客户端的...
过滤器的主要用途包括字符集编码转换、安全检查、登录验证等。与拦截器不同,过滤器更专注于请求和响应的生命周期,它们可以作用于整个Web应用或者特定的URL路径。 现在,我们来看看两者之间的关键区别: 1. 范围:...
在Java Web开发中,Filter是Servlet API的一部分,它允许我们在请求被Servlet处理之前或之后进行拦截和处理。通过实现javax.servlet.Filter接口并配置在web.xml中,我们可以定义过滤逻辑,例如字符编码转换,权限...
通过示例代码详细展示了如何编写和配置一个简单的Filter来解决字符集乱码问题。理解Filter的工作机制有助于开发者更好地利用这一功能来增强Web应用的安全性和功能性。在未来的学习和实践中,可以进一步探索更多高级...
`Filter`可以用于确保所有请求都被正确地解码为UTF-8或其他指定的字符集。通过重写`doFilter`方法,我们可以捕获请求,并使用`HttpServletRequest`的`setCharacterEncoding`方法来设置合适的字符编码,防止乱码问题...
在Java Web开发中,`Filter`是一种功能强大的机制,它能够拦截客户端请求,并在请求到达目标资源(如Servlet)之前或之后进行处理。这为开发者提供了极大的灵活性来添加诸如编码处理、登录验证、权限检查等功能。 #...
`Request`类中的`toChi()`方法用于将ISO-8859-1编码的字符串转换为GBK编码,这是处理从西方字符集转换到中文字符集的常见做法。当接收到POST请求时,`doFilter()`方法会调用`request.setCharacterEncoding("GBK")`来...
2. **spring-mvc.xml**:SpringMVC的配置文件,用于配置DispatcherServlet、视图解析器(ViewResolver)、模型视图对象(ModelAndView)处理、拦截器(Interceptor)等。 3. **mybatis-config.xml**:MyBatis的全局...
在本例中,我们可能有一个专门的Filter来处理请求和响应的编码转换,确保数据始终以正确的字符集进行解码和编码。 实现全站防乱码控制通常包括以下步骤: 1. **配置Filter**:在web.xml配置文件中,我们需要声明一...
基于tomcat8 编写字符编码Filter过滤器无效问题的解决方法 在基于tomcat8 的Web应用程序中,字符编码问题是常见的问题之一。特别是在处理POST请求时,中文字符可能会出现乱码的情况。为了解决这个问题,我们可以...
4. **白名单策略**:只允许特定字符或字符集,而非黑名单策略(即阻止某些字符)。这可以更有效地控制输入,降低漏网之鱼的可能性。 5. **长度限制**:设置参数的最大长度,防止过长的输入导致内存溢出或其他安全...
在实际项目中,Filter的应用非常广泛,例如实现登录验证、字符集编码转换、GZIP压缩、安全控制等。通过理解和熟练使用Filter,开发者可以更好地控制和优化Web应用程序的行为。 由于提供的压缩包文件名为`webfilter`...
5. **字符集转换**: 自动将请求和响应的字符集转换为服务器支持的格式。 **五、Filter的级联与多Filter处理** 在实际应用中,可能需要多个Filter协同工作。通过`FilterChain`对象,我们可以依次调用下一个Filter,...
比如过滤掉非法url或者在传入servlet/struts的action前统一设置字符集,或者去除掉一些非法字符等; 拦截器--它由spring管理,只对action起作用,不能拦截jsp页面、图片等其他资源。执行顺序:过滤前 - 拦截前 - ...
字符编码Filter会确保请求和响应都使用正确的字符集;日志Filter则记录请求和响应的详细信息,便于调试和监控。 Struts2框架也利用了Filter模式。在Struts2中,StrutsPrepareAndExecuteFilter是主要的过滤器,它...
Struts2.0是一个基于MVC设计模式的Java Web框架,它整合了WebWork和Struts1的优点,提供了更强大的动作调度、拦截器和结果类型等功能,有助于简化Web应用的开发。 2. **字符编码问题** 字符编码问题通常出现在...
Servlet过滤器是Java Web开发中的一个重要概念,它允许开发者在请求到达Servlet之前或者响应离开Servlet之后进行拦截处理。"servlet filter大全"这个主题涵盖了多种常见的过滤器设置,旨在提高应用的功能性和安全性...
例如,我们可以在doFilter方法中通过HttpServletRequest的setCharacterEncoding方法来设置请求的编码,通过HttpServletResponse的setContentType方法来指定响应的MIME类型和字符集。 ```java public void doFilter...
Struts2的核心拦截器Stack默认使用ISO-8859-1编码处理请求参数,这可能导致非英文字符乱码。可以通过自定义拦截器或者修改全局配置来改变这个行为。例如,在`struts-default.xml`或自定义的配置文件中添加以下代码...