过滤器
来源:互联网 发布:云浩软件企汇通 编辑:程序博客网 时间:2024/04/30 02:33
今天我们来说一下用以前多的老问题post与get方法解决中文乱码问题与页面缓存问题,不过今天我们用到了个新的知识-----过滤器。
Post中文乱码问题
/////////////////////////filter层////////////////////////////////
package cn.class3g.web.filter;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 LuanMaFilter implements Filter{private String bianma = null;public void init(FilterConfig filterConfig) throws ServletException {bianma = filterConfig.getInitParameter("bianma");}public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {request.setCharacterEncoding(bianma);response.setContentType("text/html;charset="+bianma);chain.doFilter(request, response);}public void destroy() {}}
/////////////////////////dervlet层////////////////////////////////
public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {String city = request.getParameter("city");PrintWriter out = response.getWriter();out.write(city);}
//////////////////web.xml/////////////////////
<filter> <filter-name>LuanMaFilter</filter-name> <filter-class>cn.class3g.web.filter.LuanMaFilter</filter-class> <init-param> <param-name>bianma</param-name> <param-value>utf-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>LuanMaFilter</filter-name> <url-pattern>*</url-pattern> </filter-mapping>
Get中文乱码问题
String city1 = request.getParameter("city1");PrintWriter out = response.getWriter();out.write(new String(city1.getBytes("ISO-8859-1"), "UTF-8"));
页面缓存问题
package cn.class3g.web.filter;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;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class NoCacheFilter implements Filter{public void init(FilterConfig filterConfig) throws ServletException {// TODO Auto-generated method stub}public void doFilter(ServletRequest req, ServletResponse res,FilterChain chain) throws IOException, ServletException {// TODO Auto-generated method stubHttpServletRequest request = (HttpServletRequest) req;HttpServletResponse response = (HttpServletResponse) res;response.setDateHeader("expires",-1);response.setHeader("Cache-Control","no-cache");response.setHeader("Pragma","no-cache");chain.doFilter(request, response);}public void destroy() {// TODO Auto-generated method stub}}