关于JSP中form的get和post提交方式 20
关键代码如下<formaction="/JSP-Demo/Servlet?assesid=1"method="post"><selectname="optionvalue...
关键代码如下
<form action="/JSP-Demo/Servlet?assesid=1" method="post">
<select name="optionvalue">
<c:forEach begin="1" end="5" step="1" varStatus="num">
<option>${num.index}</option>
</c:forEach>
</select>
<input type="submit" value="提交"/>
当单击按钮跳转到Servlet,servlet关键代码如下
String optionvalue=request.getParameter("optionvalue");
String assesid=request.getParameter("assesid");
System.out.println(ovalue);
System.out.println(assesid);
当选择from表单的提交方式为post时optionvalue和assesid的值都能正常获取,
而当选择from表单的提交方式为gett时optionvalue的值能获取到而assesid的值则不能正常获取;
谁能告诉我这是为什么啊?三克油。 展开
<form action="/JSP-Demo/Servlet?assesid=1" method="post">
<select name="optionvalue">
<c:forEach begin="1" end="5" step="1" varStatus="num">
<option>${num.index}</option>
</c:forEach>
</select>
<input type="submit" value="提交"/>
当单击按钮跳转到Servlet,servlet关键代码如下
String optionvalue=request.getParameter("optionvalue");
String assesid=request.getParameter("assesid");
System.out.println(ovalue);
System.out.println(assesid);
当选择from表单的提交方式为post时optionvalue和assesid的值都能正常获取,
而当选择from表单的提交方式为gett时optionvalue的值能获取到而assesid的值则不能正常获取;
谁能告诉我这是为什么啊?三克油。 展开
5个回答
展开全部
首先声明:不管是两种方式中的哪一种,后台都能获得前台传递的数据,你这里获取不到应该是你程序编码的原因,估计是你自己出现的错误,与哪种方式的提交无关。
备注:
1. get是从服务器上获取数据,post是向服务器传送数据。
2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
3. 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。
4. get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。
5. get安全性非常低,post安全性较高。但是执行效率却比Post方法好。
建议:
1、get方式的安全性较Post方式要差些,包含机密信息的话,建议用Post数据提交方式;
2、在做数据查询时,建议用Get方式;而在做数据添加、修改或删除时,建议用Post方式;
备注:
1. get是从服务器上获取数据,post是向服务器传送数据。
2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
3. 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。
4. get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。
5. get安全性非常低,post安全性较高。但是执行效率却比Post方法好。
建议:
1、get方式的安全性较Post方式要差些,包含机密信息的话,建议用Post数据提交方式;
2、在做数据查询时,建议用Get方式;而在做数据添加、修改或删除时,建议用Post方式;
展开全部
get提交就是地址后面带一串参数提交,post提交不会在地址中显示参数,能用post提交的就尽量用post提交方式,安全点!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
get提交其实就是在URL后面附加参数变量, 后台获取时会检查URL后面的参数,但是用post提交的表单,后台获取参数时 是不回检查URL后面的参数的,也就是不会获取URL后面传来的参数 !
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
assesid 值中检查是否有特殊字符(例如 : %,!,&,@) 等
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2015-12-16 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
关注
展开全部
当用户向服务器发送请求时,包括两部分:请求首部和消息体。
get()方法把参数放在请求首部,而post()方法把参数放在消息体。
这就导致有两点不一样:第一,get()方法传递的参数可以被任何人在地址栏中看到,而post()方法不可以被看到。第二,由于请求首部的信息容量是有限的,所以get()方法传递的参数是有限的,而post()方法可以向服务器传递任意多个参数。
另外,当你想要把当前页面的内容建立书签时,使用get()方法是可以的,而是用post方法是不可以的。
get()方法把参数放在请求首部,而post()方法把参数放在消息体。
这就导致有两点不一样:第一,get()方法传递的参数可以被任何人在地址栏中看到,而post()方法不可以被看到。第二,由于请求首部的信息容量是有限的,所以get()方法传递的参数是有限的,而post()方法可以向服务器传递任意多个参数。
另外,当你想要把当前页面的内容建立书签时,使用get()方法是可以的,而是用post方法是不可以的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询