使用过滤器统一全站编码
2016-06-24 16:06
169 查看
在web开发中,过滤器是一项非常激动人心的技术,它可以对所有的访问进行控制,通过这些特性,我们可以用来实现很多的需求。常见的有记住用户名密码、统一全站编码等等。本文就利用过滤器+装饰器实现统一全站编码做简单的介绍。
首先需要对jsp和servlet中的编码有一定的了解,具体可以看这篇文章:JSP编码以及乱码解决总结。
实现代码如下:
首先需要对jsp和servlet中的编码有一定的了解,具体可以看这篇文章:JSP编码以及乱码解决总结。
实现代码如下:
public class EncodingFilter implements Filter{ // filter初始化参数 private FilterConfig config ; private static Log log = LogFactory.getLog(EncodingFilter.class); public void destroy() { // do nothing } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { // 获取自定义编码 String encode = config.getInitParameter("encode"); if (encode == null){ encode = "utf-8"; } HttpServletRequest req =(HttpServletRequest) request; HttpServletResponse resp = (HttpServletResponse) response; req.setCharacterEncoding("utf-8"); resp.setContentType("text/html;charset=utf-8"); // 使用装饰器 MyReq myReq = new MyReq(req); chain.doFilter(myReq, resp); } public void init(FilterConfig filterConfig) throws ServletException { this.config = filterConfig; } /** * 装饰器模式 * @author: xlli * @CreateDate: 2016-3-27 上午12:22:01 * @version: 1.0 */ class MyReq extends HttpServletRequestWrapper{ private HttpServletRequest req; public MyReq(HttpServletRequest request) { super(request); this.req = request; } @Override public String getParameter(String name) { // post请求 if (req.getMethod().equalsIgnoreCase("post")){ return req.getParameter(name); } // get请求 String value = req.getParameter(name); if (value == null){ return null; } try { value = new String(req.getParameter(name).getBytes("iso8859-1"), "utf-8"); } catch (UnsupportedEncodingException e) { log.error(new Date().getTime() + "EncodingFilter编码转化失败",e); }; return value; } } }
相关文章推荐
- java-WEB中的监听器Lisener
- GUI - Web前端开发框架
- Extjs4.0 最新最全视频教程
- MyEclipse Web Project转Eclipse Dynamic Web Project
- axis备忘
- 创业如何选择WEB开发语言
- Erlang实现的一个Web服务器代码实例
- 防止网页脚本病毒执行的方法-from web
- 自学成才的秘密:115个 web Develop 资源
- 使用批处理修改web打印设置笔记 适用于IE
- Apache Web让JSP“动”起来
- web下载的ActiveX控件自动更新
- 推荐六款WEB上传组件性能测试与比较第1/10页
- 关于三种主流WEB架构的思考
- ASP编码必备的8条原则
- 使用 Iisext.vbs 列出 Web 服务扩展文件的方法
- 使用 Iisext.vbs 删除 Web 服务扩展文件的方法
- 使用 iisext.vbs 禁用 Web 服务扩展的方法
- 用vbs 实现从剪贴板中抓取一个 URL 然后在浏览器中打开该 Web 站点
- web标准知识——从p开始,循序渐进