JSP中get和post请求方式的区别及乱码解决方法

JSP中get和post请求方式的区别及乱码解决方法


get提交方式:默认method=“get” 和 地址栏、超链接请求方式默认都属于get提交方式
form表单的method属性:提交服务器的http方法,一般为post和get
get与post请求方式的区别:

  1. get方式 在地址栏显示请求信息 密码等个人信息显示在地址栏,不安全 ,并且地址栏能够容纳的信息有限,如果请求的数据中有大的文件,如图片,音频,视频等,会出现地址栏无法容纳全部数据,产生错误。
    post方式 不显示提交信息,较安全
  2. 文件上传操作(提交作业,提交文件),必须是post
  3. 在表单的请求方式中,推荐使用post方式

get和post请求方式出现乱码的解决方法:

  1. get请求方式
    如果使用tomcat7,默认的编码方式是ISO-8859-1,JSP的编码方式是UTF-8,就会出现乱码,使用get方式解决乱码的方式有两种修改方式:
  • 这种解决方式很麻烦(不推荐):将变量一个一个的修改编码方式
    name = new String (name.getBytes("iso-8859-1"),"utf-8");
  • 修改server.xml(这种方法只对get请求方式有效),直接修改tomcat默认get请求的编码方式:
    添加上:URIEncoding="UTF-8"

在这里插入图片描述

  1. post请求方式编码出现乱码的解决方式:

直接添加java代码,设置编码方式:

//设置post编码
request.setCharacterEncoding("utf-8");

get与post请求方式的区别:

1. 使用get请求方式:

在这里插入图片描述

get方式:在地址栏显示提交信息
在这里插入图片描述

2. 使用post请求方式:

在这里插入图片描述

post方式:在地址栏不显示提交信息
在这里插入图片描述


具体代码如下:
register.jsp文件

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form action="show.jsp" method="post">
		用户名:<input type="text" name="uname" /><br/>
		密码:<input type="password" name="upwd" /><br/>
		年龄:<input type="text" name="uage" /><br/>
		性别:<input type="text" name="ugender" /><br/>
		爱好:<br/>
		<input type="checkbox" name="uhobbies" value="足球"/>足球、
		<input type="checkbox" name="uhobbies" value="篮球"/>篮球、
		<input type="checkbox" name="uhobbies" value="乒乓球"/>乒乓球<br/>
		<input type="submit" value="注册" />
	</form>
</body>
</html>

show.jsp文件

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
	    //设置post编码
		request.setCharacterEncoding("utf-8");
		String name = request.getParameter("uname");
		String pwd = request.getParameter("upwd");
		int age = Integer.parseInt(request.getParameter("uage"));
		String gender = request.getParameter("ugender");
		String[] hobbies = request.getParameterValues("uhobbies");
	%>
	注册成功,信息如下:<br/>
	姓名:<%=name %><br/>
	密码:<%=pwd %><br/>
	年龄:<%=age %><br/>
	性别:<%=gender %><br/>
	爱好:
	<%
		if(hobbies != null ){
			for(String hobby:hobbies){
				out.print(hobby + "&nbsp");
			}
		}
	%>
</body>
</html>
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值