天天看点

关于请求转发和重定向(一)--- 请求转发在servlet中可能会牵扯到传值或者跳转的问题,可以能是servlet之间互相跳转,也可能是两个web应用程序之间互相跳转。这就出现了请求转发和重定向。

在servlet中可能会牵扯到传值或者跳转的问题,可以能是servlet之间互相跳转,也可能是两个web应用程序之间互相跳转。这就出现了请求转发和重定向。

请求转发:

说道请求转发,不得不提到两个parameter和attribute

parameter attribute
参数名(String) 参数值(String) 参数名(String) 参数值(Object)
name xiaoli

我们可以在客户端页面上通过<form>表单进行数据提交,在服务器中,通过request来提取

通过getParameter方法对客户端页面提交的数据进行接收

String name = request.getParameter("userName") 
           

attribute则需要通过setAttribute方法,在服务器端进行输入添加。

request.setAttribute("xuehao", "123456");
           

而我们传值的办法,就是通过传递request来达到传值的目的

(request里面的值包括表单上可以通过parameter方法获得的的参数和服务器端通过setAttribute方法输入的。)

RequestDispatcher wxm = request.getRequestDispatcher("/LiServlet");
           
wmx.forward(request, response);//LiServlet是下一跳的servlet
           

接下来就是通过上面的语句进行请求转发了。

请求转发的特点:

1.请求转发需要RequsetDispatcher,最后通过forward方法传递request和response

2.request数据从第一个servlet 到第二个servlet不会丢失,因为是同一个request

3.转发只能web应用程序内部进行转发

4.如果第一个servlet请求方法是doGet,那么转发给其他servlet的方法都是doGet,及所有的请求方法类别一致

5.请求转发的地址栏显示的依然是第一个请求资源路径(可能会导致表单的重复提交)

关于请求转发和重定向(二)--- 重定位

http://blog.csdn.net/u011832252/article/details/26099907

继续阅读