文章目录
- 前言
- 一、get和post请求的区别
- 二、forward和redirect的区别
- 总结
前言
这次接的是上次写的Servlet(1) Servlet(2)将主要阐述 get和post请求的区别以及Forward和Redirect的区别。
一、get和post请求的区别
在我理解及查阅看来,它们主要有以下几点区别:
1、get是用来从服务器上获得资源,而post是用来向服务器提交数据。
2、使用get时参数会显示在地址栏上,如果这些数据是敏感数据,那么就应该用post,不是就可以用get。
3、get传输数据时要受URL长度限制(最大长度为2048个字符)而post可以传输大量数据,所以我们上传文件时通常使用post方式。
4、搜索引擎就是get()提交表单的典型应用,get()就是为查询设计的。
5、至于什么时候调用doGet()和doPost()则是看Form标签里的method属性,是get就调用doGet(),是post就调用doPost()。
二、Forward和Redicredit的区别
Forward中文是转发,Redirect中文是重定向
简单理解来说,转发是服务器行为,重定向是客户端行为。
转发(Forword)通过RequestDispatcher对象的forward(HttpServletRequest request,HttpServletResponse response)方法实现的。RequestDispatcher可以通过HttpServletRequest 的getRequestDispatcher()方法获得。例如下面的代码就是跳转到login_success.jsp页面。
request.getRequestDispatcher("login_success.jsp").forward(request, response);
重定向(Redirect) 是利用服务器返回的状态码来实现的。客户端浏览器请求服务器的时候,服务器会返回一个状态码。服务器通过 HttpServletResponse 的 setStatus(int status) 方法设置状态码。如果服务器返回301或者302,则浏览器会到新的网址重新请求该资源。
1、效率上来说:forward更高 redirect更低。
2、forward转发页面和转发到的页面可以共享request里的数据,而redirect不能。
3、forward一般用于登陆,redirect一般用于返回和跳转。
总结
以上就是今天所记录的内容,get和post两种命令,forward和redirect两种跳转方式