在servlet处理请求时,可能面对一些自己处理不了的情况,这时,需要将客户的请求转接给别的url来处理(页面或者类)。有2种方法:
一.重定向:
大概过程:客户发出请求,服务器告知浏览器自己处理不了,你可以去找其他的类,然后给了一个新的url给浏览器,浏览器根据这个url重新发出请求,完成请求。此时,浏览器的地址栏url会变化。
response.sendRedirect("http://www.baidu.com")
二.请求分派
大概过程:客户发出请求,接受该请求的servlet类无法处理这个请求,于是,这个servlet请其他的servlet或者jsp帮忙处理,然后把这个请求转接过去。此时,浏览器并不知道发生了什么。对浏览器而言,没有什么区别。
RequestDispatcher view=request.getRequestDispatcher("result.jsp");
view,forward(request,response);
三总结:
1.两种方法的url地址都是字符串,不能是其他的对象
2.url地址可以是相对路径,也可以是绝对路径
3。千万不要在servlet已经处理了客户请求之后还调用这2个方法,要么自己处理,要么调用这个2个方法。
3.区别
区别 | 语句个数 | 方法属于谁 |
重定向 | 1 | response |
请求分派 | 2 | request |
备注 | 重定向一个语句就行,因为他只有一个过程,就是驳回。请求分派2个语句,有2个过程,先请同事帮忙,也就是url地址那位同事,接着把请求转接给同事。 | 重定向 ==客户 端 请求分派==服务器 |