Filter.java
上传用户:zhc3n3
上传日期:2022-07-30
资源大小:2750k
文件大小:2k
源码类别:

WEB源码(ASP,PHP,...)

开发平台:

JavaScript

  1. package com.t11.filer;
  2. import java.io.IOException;
  3. import javax.servlet.FilterChain;
  4. import javax.servlet.FilterConfig;
  5. import javax.servlet.ServletException;
  6. import javax.servlet.ServletRequest;
  7. import javax.servlet.ServletResponse;
  8. import javax.servlet.http.HttpServletRequest;
  9. import javax.servlet.http.HttpServletRequestWrapper;
  10. public class Filter implements javax.servlet.Filter {
  11. private String encoding = "GB2312";
  12. public void destroy() {
  13. }
  14. public void doFilter(ServletRequest request, ServletResponse response,
  15. FilterChain arg2) throws IOException, ServletException {
  16. HttpServletRequest httpRequest = (HttpServletRequest) request;
  17. HttpServletRequestWrapper requestWrapper = new EncodingWrapper(
  18. httpRequest);
  19. response.setContentType("text/html;charset=UTF-8");
  20. arg2.doFilter(requestWrapper, response);
  21. }
  22. public void init(FilterConfig arg0) throws ServletException {
  23. String testValue = arg0.getInitParameter("test");
  24. if (testValue != null) {
  25. this.encoding = testValue;
  26. }
  27. }
  28. private class EncodingWrapper extends HttpServletRequestWrapper {
  29. private HttpServletRequest request = null;
  30. public EncodingWrapper(HttpServletRequest request) {
  31. super(request);
  32. this.request = request;
  33. }
  34. public String getParameter(String name) {
  35. String value = null;
  36. // 请求中的乱码
  37. value = request.getParameter(name);
  38. // 转换后的好码
  39. value = this.encoding(value);
  40. return value;
  41. }
  42. public String[] getParameterValues(String name) {
  43. String[] values = null;
  44. values = request.getParameterValues(name);
  45. if (values != null) {
  46. for (int i = 0; i < values.length; i++) {
  47. values[i] = this.encoding(values[i]);
  48. }
  49. }
  50. return values;
  51. }
  52. private String encoding(String value) {
  53. if (value != null) {
  54. try {
  55. byte[] bytes = null;
  56. String method = request.getMethod();
  57. if ("post".equalsIgnoreCase(method)) {
  58. bytes = value.getBytes("ISO-8859-1");
  59. } else {
  60. bytes = value.getBytes();
  61. }
  62. value = new String(bytes, "UTF-8");
  63. } catch (Exception e) {
  64. // TODO Auto-generated catch block
  65. e.printStackTrace();
  66. }
  67. }
  68. return value;
  69. }
  70. }
  71. }