先上代码
@Override public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException { Enumeration e = req.getParameterNames(); String attributeName; String attributeValues[]; output(req); while (e.hasMoreElements()) { attributeName = (String) e.nextElement(); attributeValues = req.getParameterValues(attributeName); // a = req.getParameter(attributeName); attributeValues[0] = "hasUpdated"; } output(req); chain.doFilter(req, resp); }
问题是第9行的代码是否有改变请求中的参数值?
测试了多个tomcat,在tomcat6.0.13中会改变,看了下tomcat的源码,不会改变参数值的代码都是这样写的,采用的是ApplicationHttpRequest
@Override public String[] getParameterValues(String name) { parseParameters(); Object value = parameters.get(name); if (value == null) return null; else if (value instanceof String[]) return ((String[]) value); else if (value instanceof String) { String values[] = new String[1]; values[0] = (String) value; return (values); } else { String values[] = new String[1]; values[0] = value.toString(); return (values); } }
会去new一个新的字符串数组进行保存,但是tomcat6.0.13并不会进入这个request。
后续会深入研究下tomcat的源码,及java string对象的剖析。
相关推荐
本文将纠正“关于'form表单提交数据编码方式和tomcat接受数据解码方式的思考'”一文中可能存在的错误,并深入探讨相关知识点。 首先,表单数据的编码方式主要取决于`<form>`标签的`enctype`属性。默认情况下,如果...
从提供的部分文件内容来看,文章主要介绍了在Java中如何使用`getParameterValues`方法处理表单数据,尤其关注于多值参数的获取。下面,我们将深入探讨这一知识点。 ### Java中的`getParameterValues`详解 在Java ...
本文总结了Tomcat 4.0 和 4.1 版本下常见的中文问题及其解决方案,包括JSP页面中文显示问题、POST和GET方式提交表单中文乱码问题以及Cookie中中文字符处理问题。通过以上方法,可以有效解决Tomcat中文环境中出现的...
例如,在 Tomcat 或 WebLogic 服务器中,request 和 response 的编码方式可能不同,这将导致中文乱码问题的出现。 解决方案 解决中文乱码问题最好的方法是增加过滤器。关键代码只有三行: ```java response.set...
自己写的一个模拟tomcat,模拟了tomcat的一部分功能,包过request 的getParameter、getParameterValues,response的getWriter,doget,dopost..
`getParameterMap()`提供了一种方便的方式来遍历所有的请求参数,并且能够处理同名参数的情况。`getParameter()`适合只关注单个值的情况,而`getParameterValues()`则适用于需要处理一组相同名称参数的场景。 为了...
本文将深入探讨Java Web开发中的Servlet在处理表单提交以及与数据库交互的基础知识。我们将通过一个具体的例子来展示如何使用MyEclipse、Tomcat和MySQL进行集成开发。 1. **Servlet表单提交** 在Java Web应用中,...
这种处理方式在实际应用中非常有用,比如在用户管理、权限分配等场景下,都需要用到这样的逻辑来判断用户的操作。 ### 总结 通过上述介绍,我们了解了如何在HTML中设置`checkbox`以及如何在Java中处理这些`...
Tomcat 使用 JDK 中的 Java 运行时环境(JRE)来解析和执行 JSP 页面以及相关的 Servlet。 2. 启动和关闭 Tomcat: - Tomcat 服务器可以通过执行 `bin` 目录下的 `startup.bat` 文件来启动,而关闭 Tomcat 可以...
在Web开发中,尤其是涉及到中文字符的处理时,经常会出现中文表单提交问题。这是因为不同的系统和浏览器在处理字符编码时可能存在不一致,导致在表单提交时中文字符出现乱码。为了解决这个问题,我们可以利用Java的...
表单数据的传递主要涉及到Servlet中的几个关键方法,包括`getParameter()`、`getParameterValues()`、`getParameterMap()`和`getParameterNames()`。这些方法帮助开发者从HTTP请求中获取并处理表单提交的数据。 1. ...
处理表单数据时,Servlet可以通过`request.getParameter()`方法获取POST或GET请求中的参数。例如: ```java String yonghu = request.getParameter("yonghu"); String mima = request.getParameter("mima"); // ......
### JSP中处理中文字符及数组的转码与显示 #### 概述 在Web开发过程中,特别是使用Java Server Pages (JSP)进行页面展示时,经常会遇到从表单提交的数据中含有中文的情况。若不进行适当的编码转换处理,可能会导致...
- 当表单中存在多个相同名称的输入元素时,例如多个复选框,使用`request.getParameterValues("item")`可以获得一个字符串数组,包含了所有选中的值。 - 而`request.getParameter("item")`只能获取第一个匹配项的...
11. **请求参数处理**:除了常规的GET和POST参数,还可以通过`getParameterMap()`获取所有参数,`getParameterValues()`处理多值参数,`getParts()`处理Multipart请求(如文件上传)。 这些知识点涵盖了Servlet基础...
在Servlet中,通过`request.getParameter()`获取单个参数值,通过`request.getParameterValues()`获取多个同名参数的值。 处理页面中文乱码问题,需要设置响应头的字符编码,即调用`response.setContentType()`或`...
13. 表单处理:在JSP中获取一组复选框的值,最适合的方法是使用数组类型的请求参数,如`String[] city = request.getParameterValues("city")`。 这些知识点涵盖了JSP的基础概念、Web应用结构、HTTP协议、Tomcat...
在这个"Servlet表单Get和Post方式读取"的主题中,我们将深入探讨如何使用Servlet来接收和处理来自HTML表单的GET和POST请求。 首先,让我们了解GET和POST这两种HTTP方法的基本概念: 1. GET方法:这是HTTP请求中最...
虽然在给出的代码中没有显示,但在实际编程中,通常需要添加异常处理,例如处理可能出现的输入异常、网络异常或SQL异常等。 10. **环境配置**: 案例中提到的`webapps`文件夹是Tomcat服务器的标准部署目录,`chap...
如果表单中有多个相同名称的参数,我们可以使用request.getParameterValues()方法来获取所有参数值。这种方法适用于处理复选框和多选框等情况。 方式三:使用 BeanUtils.populate() 方法 我们可以使用Apache的...