对于浏览器的请求
ServletRequest有很多种请求,最主要的就是get请求和post请求
get请求
•get提交的数据会放在URL后,以?分割URL和传输数据,参数之间以&相连
•get方法以明文传输,数据量少,不安全
•效率高,浏览器默认请求方式是GET请求
•对应的servlet方法是doGET
post请求
•post方法是把提交的数据放在HTTP包的body中
•密文传递数据、数据量大、安全
•效率没有get高
•对应的servlet方法是doPost
request请求对象
对于request请求对象,我们通常通过getParameter根据表单组件名称获得提交数据
Get样例
现在我们自己来实现一个request应用——注册
首先我们在web目录下创建一个register.html文件,写上get方法的表单,提交的数据是账号和密码,action写的是servlet的名称的url,那路径从哪里开始呢——路径应该是我们的项目,所以我们写上/My_Servlet_war_exploded/rs
然后我们创建一个servlet类继承HttpServlet,重写doGet方法,用注解指定url路径,注意我们使用的是请求类的getParameter方法来获得请求的数据的
现在我们重启tomcat服务器,就可以通过浏览器的url访问我们的register页面
点注册之后我们就会向RegisterServlet进行一个Get请求
回到idea我们可以看到RegisterServlet的doGet方法输出了内容
至此一个简单的网页请求后台业务完成,nice~
Post样例
post请求只需把我们的method改成post
然后我们的servlet重写doPost方法即可
我们重启服务器,访问我们的register.html提交数据
我们可以看到提交成功,但提交的数据乱码了
Post方法解决乱码
由于客户端是以UTF-8字符编码集将表单数据传递给服务端的,因此服务器也需要设置UTF-8字符编码接受。
我们使用从ServletRequest接口继承而来的setCharacterEncoding方法设置字符集
这样我们的数据就不会发生乱码了