3、编码过滤器
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
/**
* 字符编码filter
*/
public class EncodingFilter extends HttpServlet implements Filter{
private FilterConfig filterConfig;
private String encoding = null;
protected boolean ignore = true;
public void init(FilterConfig filterConfig) throws ServletException{
this.filterConfig = filterConfig;
this.encoding = filterConfig.getInitParameter("encoding");
String value = filterConfig.getInitParameter("ignore");
if (value == null){
this.ignore = true;
} else if (value.equalsIgnoreCase("true")) {
this.ignore = true;
} else if (value.equalsIgnoreCase("yes")) {
this.ignore = true;
} else {
this.ignore = false;
}
}
//Process the request/response pair
public void doFilter(ServletRequest request,ServletResponse response,
FilterChain filterChain){
try{
if (ignore || (request.getCharacterEncoding() == null)) {
String encoding = selectEncoding(request);
if (encoding != null)
request.setCharacterEncoding(encoding);
}
filterChain.doFilter(request,response);
} catch(Exception sx){
sx.getMessage();
}
}
private String selectEncoding(ServletRequest request) {
return (this.encoding);
}
//Clean up resources
public void destroy(){
encoding = null;
filterConfig = null;
}
}
分享到:
相关推荐
19. XSS攻击与防护:理解XSS原理,如何通过编码和过滤防止XSS攻击。 20. CSRF攻击与防护:CSRF的原理,以及如何利用Token机制防范。 七、Web服务 21. SOAP与RESTful:理解两者区别,如何创建和调用Web服务。 22. ...
此外,还可以通过自定义过滤器来处理乱码问题。例如: ```java public class EncodeFilter implements Filter { public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) ...
- 是Web应用的核心配置文件,用于定义Servlet、过滤器、监听器等组件的配置信息。 #### 高级话题 1. **安全认证** - 基本认证(Basic Authentication)通过HTTP头传输用户名和密码。 - SSL(Secure Sockets ...
J2EE 中的过滤器(Filter)允许在请求到达目标资源之前对其进行预处理,也可以在响应返回给客户端之前进行后处理。它们可以用于实现如登录验证、字符编码转换、日志记录等功能,提高了代码复用性和系统灵活性。 17....
2. XMLStreamWriterArrayFilter.class:可能是一个过滤器,用于处理XML流写入器,尤其是处理数组的情况。 3. JAXBXMLStreamWriterFilter.class:可能扩展了XMLStreamWriter,添加了过滤功能,允许控制XML的输出。 4....