-
【急】通过get方式提交中文表单,跳转的页面乱码5
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'normal.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> 神马叫计算机?<br> <form action="jsp/show.jsp" method="get"> <input type="text" name="name"></input> <input type="submit" value="sub"/> </form> </body> </html>
我想从上面这个页面normal.jsp用提交表单的方式跳转到show.jsp,采用get方式,并在text文本框中输入中文“中国”,点击提交,我的页面编码是pageEncoding="UTF-8"。
tomcat中的 URIEncoding='GBK' ,这个我不能改,因为项目原来就是这个。
下面是跳转到的页面show.jsp,也是采用contentType="text/html; charset=UTF-8"(我不知道这边写pageEncoding和contentType中的一个,两者是否就统一了)
http://localhost:8886/test/jsp/show.jsp?name=%B6%A1%CE%C4%B3%BF
但是跳转后 ① "神马叫计算机?"还是正常的显示没有乱码。
② text文本框中的中文“中国”出现乱码
但是当我改动起始页面normal.jsp中的pageEncoding="GBK"后,①②都是正常的 没有出现乱码。(这个我不知道为什么)
show.jsp
<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>show.jsp</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> 显示<br> <%=request.getParameter("name") %> </body> </html>
因为网上找过解决方法 是添加过滤器的,我也加了如下
<filter> <filter-name>Set Character Encoding</filter-name> <filter-class>filters.SetCharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>Set Character Encoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
但是现在的问题是①为什么上面我改动normal.jsp的pageEncoding为GBK后,表单传递的中文不乱码了
②我的fileter设置和tomcat中的URIEcooding到底哪个起作用了。
③我知道post方式默认是使用ISO-8859-1提交表单到服务器端的,那么get方式中的参数是以什么编码提交的,去哪里可以改变编码方式
乱码问题搞的我好乱,请大家指教
问题补充:<div class="quote_title">zyn010101 写道</div><div class="quote_div">看下tomcat的server.xml文件中默认编码,保证它和页面一致。</div> <br />回去写了比对的代码 发现是这样的 还想问下 我后来不设置pageEncoding 只写contentType的话 pageEncoding 要不要写了啊 这两个是不是只要写一个就行了,一般都写谁2012年4月20日 14:43
相关推荐
- 对于GET请求(如导出Excel、页面带参数跳转等),建议统一使用方法二。 - 如果测试环境中部分Tomcat配置了`server.xml`文件中的`URIEncoding="UTF-8"`,则可以考虑在客户端进行两次`URL encode`处理,以确保兼容性...
总结起来,`<form>`表单的`action`属性主要用于向服务器提交数据,可以使用`POST`或`GET`方法,而URL跳转主要用于页面间的导航,通过URL参数传递少量数据。两者在数据安全性、数据量以及数据可见性方面都有所不同,...
- `<form>`标签:包含`action`属性指定处理页面的位置和`method`属性指定提交方式,如GET或POST。 - `<input>`标签: - `type=text`:用于姓名输入,`name`属性定义字段名,`size`定义输入框宽度,`value`设定...
- 当表单提交方式为POST时,Servlet应该提供一个`doPost()`方法来处理请求。 2. **解决中文乱码问题**: - 设置响应编码格式,如: ```java response.setContentType("text/html;charset=GBK"); ``` - 设置...
- 当表单提交数据时,如果表单提交方式为POST,则可以在处理请求前添加以下代码以解决乱码问题: ```jsp request.setCharacterEncoding("UTF-8"); ``` 3. **解决GET请求乱码**: - 对于GET请求中的中文参数,...
forward 和 redirect 是两种不同的页面跳转机制: * forward:在服务器端跳转,客户端不知道跳转的过程 * redirect:在客户端跳转,客户端知道跳转的过程 6. JSP 内置对象 JSP 内置对象包括: * request:请求...
实例153 通过GET方法提交表单元素 184 实例154 通过$_GET方法获取表单元素 185 3.2 文本框组件的应用 186 实例155 以文本域的形式显示数据信息 186 实例156 限制多行文本域输入的字符个数 187 实例157 设置文本框的...
POST请求中文乱码可以通过在web.xml中配置CharacterEncodingFilter来解决,设置字符编码为UTF-8。GET请求的乱码问题,可以修改Tomcat配置文件,设置URIEncoding为UTF-8,或者在代码中对参数进行重新编码,从ISO8859-...
- **知识点概述**:在Web开发中,经常遇到字符编码问题,特别是当表单中包含中文等非ASCII字符时,容易出现乱码。 - **解决方案**: - **设置表单字符编码**:在HTML表单中添加`<form accept-charset="UTF-8">`属性...
用户在提交表单或执行某些操作后,服务器通过GET参数将base64编码后的提示信息传递给一个HTML模板,然后在模板中使用base64_decode进行解码并显示。当提示信息包含非ASCII字符,如汉字时,就可能出现乱码现象。 ...
5. **处理页面乱码**:当遇到JSP页面显示乱码时,可以通过设置页面编码(如`contentType="text/html; charset=gb2312"`)来解决。在接收表单数据时,需设定请求字符编码,例如`request.setCharacterEncoding("gb2312...
当表单提交方式为`GET`时,若不处理编码问题,中文数据在服务器端可能会出现乱码。解决办法是确保服务器端和客户端的字符编码一致,通常在接收请求参数时设置正确的字符编码,如`request.setCharacterEncoding("UTF...
- POST方式:仅限于表单提交,可以通过JavaScript动态改变表单的提交方式。 6. **多值参数处理**: - 对于多个同名参数,`getParameterValues()`方法返回一个字符串数组,如获取多个ID。 7. **请求转发和重定向*...
这与302 Found状态码不同,302状态码通常不建议用于POST请求后的重定向,因为它可能会导致重复提交表单数据。 5. **URI完整性和输出控制**: 在邮件中的讨论中,提到使用`'Status: 303 See Other'`比`'...
- GET/POST乱码:GET方式修改`server.xml`的`URIEncoding`,POST方式使用`request.setCharacterEncoding("GBK")`。 - URL参数包含中文:同样使用`request.setCharacterEncoding("GBK")`。 7. **Cookie与Session的...
- **执行删除操作**:通过`request.getParameter("sh")`获取表单提交的图书编号,然后利用`stmt.executeUpdate("delete from ts where sh='" + id + "'")`执行SQL删除命令。 - **重定向**:使用`response....
- GET方式乱码,可在服务器端设置请求编码,如:`request.setCharacterEncoding("GBK")`。 - POST方式乱码,同样需在接收参数前设置编码。 - URL包含中文参数,需在JSP页面中设置请求编码。 7. **Cookie与...
在Web开发中,请求转发和重定向是两种常用的页面跳转方式。 - **请求转发**:发生在服务器端,服务器内部将请求发送给另一个资源。这种方式可以传递请求中的数据,且跳转的地址不会在浏览器的地址栏中显示。请求...
- 使用自定义过滤器解决中文乱码问题,例如在 `MyFilter1.java` 中通过调用 `request.setCharacterEncoding("utf-8")` 来设置请求字符集编码。 #### 六、Struts配置详解 - **Scope 属性**:默认情况下,表单对象会...
11. **Ext JS中文乱码解决方案**:在开发过程中,可能会遇到中文乱码问题,这通常与编码设置有关,需要确保项目编码、服务器编码、浏览器编码一致。 12. **Eclipse中JS中文乱码**:Eclipse作为IDE,其JavaScript...