参数传递:
被封装到 jsp内置对象:request
1、URL 传值(不支持中文)
http://localhost:8080/javaWEB_09/demo1.jsp?username=admin&age=21&sex=1
第一个参数:?
后面参数:使用&
2、利用表单:默认get (不支持中文)
http://localhost:8080/javaWEB_09/demo1.jsp?username=adin&age=12312&sex=1
<!-- form method=get 等价于 URL -->
<form action="demo1.jsp" method="get">
username:<input type="text" name="username"/><br>
age:<input type="text" name="age"/><br>
sex:<input type="radio" name="sex" value="1">男
<input type="radio" name="sex" value="0">女<br>\
<input type="submit" value="提交"/>
</form>
3、超链接:(不支持中文)
<a href="demo1.jsp?age=12&username=amdin&sex=0">超链接</a>
上述几种参数传递方式:都属于get请求
get特点:
效率高,大小有限制 4k
不安全,显示在地址栏中
post:(支持中文)
效率低,大小没限制
安全,参数不会显示在地址栏中
Http协议中:
form 参数
username:admin
password:1231
age:21
sex:1
4、隐藏域: 不会显示但是会随着form表单数据传输到后台
<input type="hidden" name="id" value="12313"/>
补充:get、post请求中文乱码问题:
1、如何解决post请求乱码问题(支持中文传输的):
request.setCharacterEncoding("utf-8");
如何解决get请求乱码问题:
原因:默认情况下get请求使用的编码是tomcat的默认编码(iso8859-1)
解决方案:
①、修改tomcat的默认编码为utf-8(不推荐使用)
tomcat根路径 /conf server.xml中:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="utf-8"
/>
②、默认使用的iso8859-1编码对中文进行重新编码后传到到后台,
后台接受一堆乱码:
在后台接受后进行重新解码处理:
String username = request.getParameter("username");
byte[] bytes = username.getBytes("iso8859-1");
String usernameNew = new String(bytes,"utf-8");
String usernameNew = new String(username.getBytes("iso8859-1"),"utf-8");
③、不知道服务器默认编码
function sbm(){
var formObj = document.getElementById("myform");
//对中文字段重新
var name = document.getElementsByName("username")[0];
//方言:支持iso8859-1编码传输
name.value = encodeURI(name.value);
formObj.submit();//提交form表单
}
总结如何解决web请求中的中文乱码?
能用post就不用get
get不要出现中文