`
ygsilence
  • 浏览: 333262 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

request编码Filter

    博客分类:
  • java
阅读更多
package com.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;

/**
 * 前端设置request编码
 * @
 */
public class EncodingFilter implements Filter
{
	static org.apache.log4j.Logger logger=Logger.getLogger(EncodingFilter.class);

	/* (non-Javadoc)
	 * @see javax.servlet.Filter#init(javax.servlet.FilterConfig)
	 */
	public void init(FilterConfig pArg0) throws ServletException
	{
	}

	public void doFilter(ServletRequest pRequest,ServletResponse response,FilterChain pArg2) throws IOException,ServletException
	{
		logger.info("前端设置request编码");
		HttpServletRequest request=(HttpServletRequest)pRequest;
		String queryString=request.getQueryString();
		String encoding=getParameter(queryString,SYSConstant.ENCODING_PARAM_NAME);
		if(encoding==null)
		{
			encoding="UTF-8";
		}

		pRequest.setCharacterEncoding(encoding);
		logger.debug("encoding:"+encoding);
		pArg2.doFilter(request,response);
	}
	/**
	 * 从request中读出param的值,不考虑编码问题
	 * @param request
	 * @param pParamName
	 * @param pEncoding
	 * @return
	 */
	public String getParameter(String queryString,String pParamName)
	{
		logger.info("从request中读出param的值,不考虑编码问题");
		String[] paramPairs=StringHelper.split(queryString, '&');
		for(int i=0;i<paramPairs.length;i++)
		{
			int indexEquals=paramPairs[i].indexOf('=');
			if(indexEquals!=-1)
			{
				String name=paramPairs[i].substring(0,indexEquals);
				if(name.equalsIgnoreCase(pParamName))
				{
					String value=paramPairs[i].substring(indexEquals+1);
					return value;
				}
			}
		}
		return null;
	}
	/* (non-Javadoc)
	 * @see javax.servlet.Filter#destroy()
	 */
	public void destroy()
	{
	}

}
分享到:
评论

相关推荐

    JSP 开发中过滤器filter设置编码格式的实现方法

    JSP 开发中过滤器filter设置编码格式的实现方法 我们知道为了避免提交数据的乱码问题,需要在每次使用请求之前设置编码格式。在你复制粘贴了无数次request.setCharacterEncoding(“gb2312”);后,有没有想要一劳永逸...

    JavaWeb Servlet中Filter过滤器的详解

    Filter能够对Servlet容器的请求和响应进行检查和修改,其本身不能生成请求request和响应response,只提供过滤作用(Servlet被调用之前检查Request对象修改其相关信息,Servlet被调用后检查Response修改其相关信息),...

    Tomcat和weblogic中文乱码问题解决方案

    例如,在 Tomcat 或 WebLogic 服务器中,request 和 response 的编码方式可能不同,这将导致中文乱码问题的出现。 解决方案 解决中文乱码问题最好的方法是增加过滤器。关键代码只有三行: ```java response.set...

    java解决中文乱码问题

    乱码的出现是由于中文和英文的编码格式不同,解码也是不一样的。如果中国的程序员不会遇到乱码,那么只有使用汉语编程。Han语编程是怎么回事,我也不大清楚,应该是前年吧!我一朋友给我介绍汉语编程,怎么不错不错...

    springmvcwebjspWeb-Return.zip

    jsp页面编码时: 1,在父页面跳转打开子页面的URL,需要带上参数: urlParent=${currentUrlDecode} 2,子页面返回按钮的js代码统一使用: [removed].href = "${basePath}/" "${urlParent}"; 其中basePath为${...

    JAVAWeb全课程笔记( html版)

    Request&Response编程 Cookie&Session XML语言 JSP技术入门 EL表达式语言 JSTL标签库: JSP标准标签库 MVC程序架构思想&案例 [总结]Path路径问题 [总结]JavaWeb乱码问题 [转自IBM]中文编码问题 JDBC入门 Jdbc事务...

    evaly-coding-test

    逃避编码测试 1.获取excel下载链接 curl --location --request GET 'http://127.0.0.1:8000/loans/get-excel-for-loans' 回复 { "download_link": "http://127.0.0.1:8000/media/loans.csv" } 2.浏览书籍 curl --...

    comm-fileupload教程

    // 字符编码,当读取上传表单的各部分时会用到该encoding protected UploadFileFilter filter = null; // 文件过滤器, 默认为NULL 不过滤 /** * 设置内存中缓存大小。 */ protected int sizeThreshold = ...

    ssh(structs,spring,hibernate)框架中的上传下载

    这样,我们就再没有必要通过硬编码的方式,先insert然后再update来完成Blob类型数据的持久化,这个原来难伺候的老爷终于被平民化了。关于lobHandler的配置请见本文后面的内容。  此外lazy="true"说明地返回整个...

    spring security 参考手册中文版

    14.2.3 SavedRequest和RequestCache接口 123 14.3 SecurityContextPersistenceFilter 123 14.3.1 SecurityContextRepository 124 14.4 UsernamePasswordAuthenticationFilter 125 14.4.1认证成功与失败的应用流程 ...

    How Tomcat Works: A Guide to Developing Your Own Java Servlet Container

    4.2.2 编码 18 4.2.3 状态码100的使用 19 4.3 Connector接口 19 4.4 HttpConnector类 20 4.4.1 创建ServerSocket 20 4.4.2 维护HttpProcessor对象池 20 4.4.3 提供Http请求服务 21 4.5 HttpProcessor类 21 4.6 ...

    超市管理系统

    (1)创建项目与数据库时,采用UTF-8的编码. EncodingFilter (2)项目搭建 smbms src source folder com.hfxt.entity com.hfxt.controller UserServlet ProviderServlet BillServlet ... ...

    how-tomcat-works

    4.2.2 编码 18 4.2.3 状态码100的使用 19 4.3 Connector接口 19 4.4 HttpConnector类 20 4.4.1 创建ServerSocket 20 4.4.2 维护HttpProcessor对象池 20 4.4.3 提供Http请求服务 21 4.5 HttpProcessor类 21 4.6 ...

    Spring MVC 入门实例

    因为我的 jsp 和 html 文件都是 UTF-8 编码的, 所以我在 param-value 标签中设置了 UTF-8. 估计你使用的是 GB2312 或者 GBK, 立即转到 UTF-8 上来吧. 分解配置文件. context-param 标签指明我们的配置文件还有 /...

    Smarty中文手册 chm版

    escape [编码] indent [缩进] lower [小写] nl2br [换行符替换成 ] regex_replace [正则替换] replace [替换] spacify [插空] string_format [字符串格式化] strip [去除(多余空格)] strip_tags ...

    smarty手册.chm

    escape [编码] indent [缩进] lower [小写] nl2br [换行符替换成 ] regex_replace [正则替换] replace [替换] spacify [插空] string_format [字符串格式化] strip [去除(多余空格)] strip_tags ...

    webx3框架指南PDF教程附学习Demo

    该文档为官方webx框架文档,对webx进行了全面的讲解,非常实用,并附学习的Demo 为什么要用Webx而不是其它的开源框架? 现在有很多Java的Web框架可供选择,并且它们也都是免费的。例如: • Struts ...

    ZendFramework中文文档

    1. Introduction to Zend Framework 1.1. 概述 1.2. 安装 2. Zend_Acl 2.1. 简介 2.1.1. 关于资源(Resource) 2.1.2. 关于角色(Role) 2.1.3. 创建访问控制列表(ACL) ...14.5.5. Adding Filter ...

    Spring Security 中文教程.pdf

    once-per-request B.1.1.9. create-session B.1.2. &lt;access-denied-handler&gt; B.1.3. &lt;intercept-url&gt; 元素 B.1.3.1. pattern B.1.3.2. method B.1.3.3. access B.1.3.4. requires-channel B.1.3.5....

    SpringSecurity 3.0.1.RELEASE.CHM

    once-per-request B.1.1.9. create-session B.1.2. &lt;access-denied-handler&gt; B.1.3. 元素 B.1.3.1. pattern B.1.3.2. method B.1.3.3. access B.1.3.4. requires-channel B.1.3.5. filters B.1.4. 元素 B...

Global site tag (gtag.js) - Google Analytics