-
request.getQueryString()能得到值 getParameter却得不到值10
工程经过spring强制编码
<!-- 强制指定编码 -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
request.getQueryString()能得到类似t=2&n=10&kw=%B5%C0%B5%C0%B5%C0值 getParameter却等于null
求解
问题补充:freish 写道getParameter的argument需要是传进来的某个值的名称
或许这个可以request.getParameter("kw")
request.getParameter("t")
request.getParameter("n")
request.getParameter("kw")
是取不到值的
问题补充:AngelAndAngel 写道getParameter()得到是单个的值
你不是资深程序员么? 大哥 你该懂的
你不注意听讲,看问题,没这么简单
问题补充:renpeng301 写道再描述详细点吧·
你想要哪方面的信息?
事实上是因为被编码过的中文,不能通过getParameter()得到,不知道原因
但是通过getQueryString()可以得到
估计这个问题,有遇到过的一看就明白,没遇到过的也很难解释
问题补充:AngelAndAngel 写道也就是说
request.getParameter("t")
request.getParameter("n")
取得到 但是kw取不到?
一般有这几种原因。
get方式提交的数据有量的限制,数据传输的不一定完全 准确, 提交的数据最多只能有1024字节
get方式提交的参数和值编码会有问题
不是上面的问题,编码已经encode了
事实上是因为被编码过的中文,不能通过getParameter()得到,你知道原因吗
当然英文没问题,而且getQueryString也能得到值
问题补充:renpeng301 写道get请求的参数编码不按照filter来·上面说错了下··
所以你在servlet中 或者其它你要娶数据的地方设置下编码·或者直接在tomacat中设置统一编码
我传过来之前已经encode了,看我前面说的request.getQueryString()能得到类似t=2&n=10&kw=%B5%C0%B5%C0%B5%C0值 getParameter却等于null
这个不是乱码,而是编码后的中文无法通过getParameter得到,和tomcat之类的毫无关系
问题补充:myali88 写道引用request.getQueryString()能得到类似t=2&n=10&kw=%B5%C0%B5%C0%B5%C0值 getParameter却等于null
你的querystring是怎么产生的?浏览器表单自动编码的,还是你自己通过什么方式编码的?
你上面的请求应该是“GET”方式的,如果URI编码是有效的,服务器端getParameter也不会返回null,最多返回乱码。你提交的参数是GBK编码,如果使用tomcat,并采用GET请求的话,服务器端采用ISO-8859-1解码,乱码是正常的。
我按你的测试了一下,似乎只会出现乱码,没有返回null的情况。
我用的是resin,应该不需要设置编码。
我用的是get,浏览器自动编码与否没有对结果产生影响,如果去掉spring的filter,getparamter得到的是乱码,加上是null
问题补充:AngelAndAngel 写道这个问题确实有可能设置tomcat可以搞好 你可能大意了
1,先encode 再decode
2,
<Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" port="80" redirectPort="8443" useBodyEncodingForURI="true" URIEncoding="utf-8">
我用的不是tomcat2011年8月22日 18:37
11个答案 按时间排序 按投票排序
-
肯定不是编码问题,至少不是乱码。要从其他地方找原因,比如在调用request.getParameter("") 之前这个请求可能被过滤器处理过,request对象可能不是原始的那个对象了
例如:public class SetCharacterEncodingFilter implements Filter { /** * * 对 HttpServletRequestWrapper 进行扩充, 不影响原来的功能并能提供所有的 HttpServletRequest * 接口中的功能. 它可以统一的对 Tomcat 默认设置下的中文问题进行解决而只需要用新的 Request 对象替换页面中的 * request 对象即可. */ protected String encoding = null; protected FilterConfig filterConfig = null; //protected boolean ignore = true; public void destroy() { this.encoding = null; this.filterConfig = null; } class Request extends HttpServletRequestWrapper { public Request(HttpServletRequest request) { super(request); } /** * 转换由表单读取的数据的内码. * 从 ISO 字符转到 utf-8(或gbk). */ public String toChi(String input) { try { byte[] bytes = input.getBytes("ISO-8859-1"); return new String(bytes, encoding); } catch (Exception ex) { } return null; } /** * Return the HttpServletRequest holded by this object. */ private HttpServletRequest getHttpServletRequest() { return (HttpServletRequest)super.getRequest(); } /** * 读取参数 -- 修正了中文问题. */ public String getParameter(String name) { [color=red]if ("kw".equals(name)) { return null; }[/color] return toChi(getHttpServletRequest().getParameter(name)); } /** * 读取参数列表 - 修正了中文问题. */ public String[] getParameterValues(String name) { String values[] = getHttpServletRequest().getParameterValues(name); if (values != null) { for (int i = 0; i < values.length; i++) { values[i] = toChi(values[i]); } } return values; } } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { // if (ignore || (request.getCharacterEncoding() == null)) { // String encoding = selectEncoding(request); /*if (encoding != null) request.setCharacterEncoding(encoding);*/ // } HttpServletRequest httpreq = (HttpServletRequest)request; if(httpreq.getMethod().equals("POST")) { request.setCharacterEncoding(encoding); } else { request = new Request(httpreq); } // Pass control on to the next filter chain.doFilter(request, response); } /** * Place this filter into service. * * @param filterConfig The filter configuration object */ public void init(FilterConfig filterConfig) throws ServletException { this.filterConfig = filterConfig; this.encoding = filterConfig.getInitParameter("encoding"); } }
如果有了红色那段代码,被这个过滤器过滤后再调用getParameter("kw")那肯定是null2011年8月22日 22:28
-
引用request.getQueryString()能得到类似t=2&n=10&kw=%B5%C0%B5%C0%B5%C0值 getParameter却等于null
你的querystring是怎么产生的?浏览器表单自动编码的,还是你自己通过什么方式编码的?
你上面的请求应该是“GET”方式的,如果URI编码是有效的,服务器端getParameter也不会返回null,最多返回乱码。你提交的参数是GBK编码,如果使用tomcat,并采用GET请求的话,服务器端采用ISO-8859-1解码,乱码是正常的。
我按你的测试了一下,似乎只会出现乱码,没有返回null的情况。2011年8月22日 22:18
-
这个问题确实有可能设置tomcat可以搞好 你可能大意了
1,先encode 再decode
2,
<Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" port="80" redirectPort="8443" useBodyEncodingForURI="true" URIEncoding="utf-8">2011年8月22日 21:18
-
request.setCharacterEncoding( "utf-8"); 或者 tomacat <Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" port="80" redirectPort="8443" useBodyEncodingForURI="true" URIEncoding="UTF-8"> 不管是不是,你现在是在找解决的办法 ,以上的试试吧··
2011年8月22日 20:41
-
get请求的参数编码不按照filter来·上面说错了下··
所以你在servlet中 或者其它你要娶数据的地方设置下编码·或者直接在tomacat中设置统一编码2011年8月22日 20:28
-
从哪传到哪里啊?你得说清楚了
然后冒失是get请求啊,get请求好像不走filter的吧
要么改tomacat的编码,要么手动编码啊2011年8月22日 20:25
-
也就是说
request.getParameter("t")
request.getParameter("n")
取得到 但是kw取不到?
一般有这几种原因。
get方式提交的数据有量的限制,数据传输的不一定完全 准确, 提交的数据最多只能有1024字节
get方式提交的参数和值编码会有问题
2011年8月22日 20:17
-
getParameter的argument需要是传进来的某个值的名称
或许这个可以request.getParameter("kw")
request.getParameter("t")
request.getParameter("n")2011年8月22日 19:54
相关推荐
MyBatis ...-- 返回list 的select 语句,注意 resultMap 的值是指向前面定义好的 --> select * from user where userName like #{userName} 在 IUserOperation 接口中增加方法:public List...
scratch少儿编程逻辑思维游戏源码-工厂逃生.zip
房地产 -辉盛阁项目介绍.pptx
少儿编程scratch项目源代码文件案例素材-新拉力赛.zip
scratch少儿编程逻辑思维游戏源码-混乱弹球.zip
scratch少儿编程逻辑思维游戏源码-过马路.zip
少儿编程scratch项目源代码文件案例素材-侠盗地牢冒险.zip
少儿编程scratch项目源代码文件案例素材-我的领土.zip
scratch少儿编程逻辑思维游戏源码-机器人闯关.zip
少儿编程scratch项目源代码文件案例素材-天空中的英雄.zip
少儿编程scratch项目源代码文件案例素材-突击尖峰.zip
“即刻青旅”前景广阔,随着青年旅舍行业快速发展,2030年市场规模预计达650亿。创作旨在为年轻旅行者打造专属平台,填补国内专门青旅预定空白。融合微信小程序、Spring Boot等技术,实现青旅查询预定、订单管理、活动职位查看及社区分享等功能。 后端框架: 基于Java的SpringBoot快速开发框架 借助Mybatis-plus构建ORM模型进行数据库操作 第三方API:高德地图、腾讯地图
少儿编程scratch项目源代码文件案例素材-像素猫3.zip
内容概要:本文是一份详细的10bit 50MHz SAR ADC学习指南,旨在帮助新手掌握从基础理论到实际电路设计的全过程。文中详细介绍了Cadence仿真工具的应用以及SMIC 40nm工艺库的具体使用方法。重点讲解了栅压自举开关、CDAC(电荷再分配模数转换器)、比较器和SAR逻辑等核心模块的设计原理和技术要点。此外,还提供了测试电路的构建方法及其性能评估手段,如INL/DNL曲线绘制。最后提到了更高性能TI ADC的扩展接口,为后续深入研究打下基础。 适合人群:对模拟集成电路设计感兴趣的电子工程专业学生或刚入行的研发人员。 使用场景及目标:适用于希望深入了解SAR ADC架构、提高自身硬件设计能力的学习者;目标是在实践中掌握关键技术和优化技巧,能够独立完成类似项目的开发。 其他说明:文章不仅提供理论知识,还包括大量实用的操作提示和常见错误避免建议,有助于读者快速上手并减少试错成本。
scratch少儿编程逻辑思维游戏源码-防空火力 3D.zip
智慧消防安全与应急管理是现代城市安全管理的重要组成部分,随着城市化进程的加速,传统消防安全管理面临着诸多挑战,如消防安全责任制度落实不到位、消防设施日常管理不足、消防警力不足等。这些问题不仅制约了消防安全管理水平的提升,也给城市的安全运行带来了潜在风险。然而,物联网和智慧城市技术的快速发展为解决这些问题提供了新的思路和方法。智慧消防作为物联网和智慧城市技术结合的创新产物,正在成为社会消防安全管理的新趋势。 智慧消防的核心在于通过技术创新实现消防安全管理的智能化和自动化。其主要应用包括物联网消防安全监管平台、城市消防远程监控系统、智慧消防平台等,这些系统利用先进的技术手段,如GPS、GSM、GIS等,实现了对消防设施的实时监控、智能巡检和精准定位。例如,单兵定位方案通过信标点定位和微惯导加蓝牙辅助定位技术,能够精确掌握消防人员的位置信息,从而提高救援效率和安全性。智慧消防不仅提升了消防设施的管理质量,还优化了社会消防安全管理资源的配置,降低了管理成本。此外,智慧消防的应用还弥补了传统消防安全管理中数据处理方式落后、值班制度执行不彻底等问题,赋予了建筑消防设施智能化、自动化的能力。 尽管智慧消防技术在社会消防安全管理工作中的应用已经展现出巨大的潜力和优势,但目前仍处于实践探索阶段。相关职能部门和研究企业需要加大研究开发力度,进一步完善系统的功能与实效性。智慧消防的发展既面临风险,也充满机遇。当前,社会消防安全管理工作中仍存在制度执行不彻底、消防设施日常维护不到位等问题,而智慧消防理念与技术的应用可以有效弥补这些弊端,提高消防安全管理的自动化与智能化水平。随着智慧城市理念的不断发展和实践,智慧消防将成为推动社会消防安全管理工作与城市化进程同步发展的关键力量。
scratch少儿编程逻辑思维游戏源码-节奏空间.zip
scratch少儿编程逻辑思维游戏源码-黑白色.zip
scratch少儿编程逻辑思维游戏源码-简单射击游戏.zip
少儿编程scratch项目源代码文件案例素材-头头连连看.zip