Servlet的请求转发和重定向的区别

简介: Servlet的请求转发和重定向的区别

Servlet的请求转发:

两个资源文件对应一个请求和一个响应。转发是在服务器端起效果的。浏览器端是感觉不到的。

转发的示例代码:

RequestDispatcher rd=request.getRequestDispatcher(“/url-pattern”);
rd.forward(request,response);
//一般情况下,我们把两行代码合并成一行。
request.getRequestDispatcher(“/url-pattern”).forward(request,response);
//如果要转发到一个html
request.getRequestDispatcher(“/html的路径”).forward(request,response);

重定向

Action要跳转到jsp我们是通过转发跳过去的。Servlet跳转提供了两种方式,重定向就是除了转发外的另一个跳转方式。

重定向和转发实现的效果都是一样的。

重定向的过程中会有两次的请求和响应。RegistAction运行结束后,会给浏览器响应一个重定向的指令。浏览器接收到这个重定向指令后,会自动发出请求。不用用户做任何操作。


重定向的代码:

response.sendRedirect(“/appName/url-pattern”);

转发和重定向的区别:

1.转发的代码request和重定向的代码response。转发的参数是url-pattern。重定向的参数是/appName/url-pattern

2.转发的过程中只有一次请求和响应。重定向的过程中会产生两次请求和响应。

3.转发的地址栏显示的是转发前资源的路径。重定向的地址栏显示的是重定向后的资源的路径。

4.因为重定向会产生两个request对象,所以重定向的时候使用request作用域会没有效果。

5.重定向刷新后,不会造成数据库数据的异常。


什么时候用转发,什么时候用重定向。

如果跳转后的页面需要用到request作用域里面的数据,那么必须使用转发。换个角度理解,如果action要给jsp传递数据,那么一定要使用转发。

不需要传递数据时,那我们可以考虑使用重定向。

增删改,使用重定向。

查询使用转发。

目录
相关文章
|
7月前
|
XML Java 数据格式
Servlet 教程 之 Servlet 客户端 HTTP 请求 3
该教程展示了如何在Servlet中处理客户端HTTP请求,特别是获取HTTP头信息。示例代码创建了一个名为`DisplayHeader`的Servlet,它扩展了`HttpServlet`并重写了`doGet`方法。在`doGet`中,使用`HttpServletRequest`的`getHeaderNames()`遍历所有头部,显示其名称和对应值。Servlet在TomcatTest项目下,通过`web.xml`配置映射到`/TomcatTest/DisplayHeader`路径。
59 14
|
7月前
|
安全 Java 网络安全
Servlet 教程 之 Servlet 客户端 HTTP 请求 2
Servlet教程介绍了如何在Servlet中处理HTTP请求,包括获取Cookie、头信息、参数、Session等。方法如:`getCookies()`、`getAttributeNames()`、`getHeaderNames()`、`getParameterNames()`等。还能获取身份验证类型、字符编码、MIME类型、请求方法、远程用户信息、URL路径、安全通道状态以及请求内容长度等。此外,可通过`getSession()`创建或获取Session,并以`Map`形式获取参数。
58 8
|
3月前
|
JavaScript Java 容器
servlet过滤器Filter简要回顾-过滤请求字符编码,/和/*和/**的区别
本文简要回顾了Servlet过滤器Filter的概念和使用,通过实例演示了如何创建过滤器以过滤请求字符编码,并解释了在web.xml中配置过滤器时使用`/`、`/*`和`/**`的区别。
servlet过滤器Filter简要回顾-过滤请求字符编码,/和/*和/**的区别
|
6月前
|
API
servlet研究学习总结--OutputStream和PrintWriter的区别
servlet研究学习总结--OutputStream和PrintWriter的区别
234 1
|
5月前
|
XML Java 数据格式
jsp和servlet有什么区别?
总的来说,JSP和Servlet都是创建动态Web应用程序的重要工具,但它们的使用依赖于特定的需求和上下文。
44 0
|
5月前
|
XML Java 数据格式
jsp和servlet有什么区别?
总的来说,JSP和Servlet都是创建动态Web应用程序的重要工具,但它们的使用依赖于特定的需求和上下文。
42 0
序-Servlet和SpringMVC的联系和区别-配置路径先想好使用的使用的方法,然后匹配的需要的技术
序-Servlet和SpringMVC的联系和区别-配置路径先想好使用的使用的方法,然后匹配的需要的技术
|
7月前
|
负载均衡
Servlet 教程 之 Servlet 网页重定向 1
Servlet教程展示了如何实现网页重定向。使用`HttpServletResponse`的`sendRedirect()`方法或结合`setStatus()`和`setHeader()`可将请求转向新位置。示例代码创建了一个Servlet,名为`PageRedirect`,在接收到请求时重定向至百度首页。配置`web.xml`后,通过访问`http://localhost:8080/PageRedirect`即可触发重定向。
55 6
|
7月前
Servlet 教程 之 Servlet 客户端 HTTP 请求 1
Servlet教程讲解了客户端HTTP请求,包括各种重要头信息:Accept(定义可处理的MIME类型)、Accept-Charset(指定字符集)、Accept-Encoding(处理的编码类型)、Accept-Language(首选语言)、Authorization(身份验证)、Connection(是否支持持久连接)、Content-Length(POST数据大小)、Cookie(返回cookies)、Host(指定URL的主机和端口)、If-Modified-Since(检查页面更新)、If-Unmodified-Since(条件性操作)。
40 0
|
7月前
|
Web App开发 前端开发 JavaScript
AJAX POST请求中参数以form data和request payload形式在servlet中的获取方式
AJAX POST请求中参数以form data和request payload形式在servlet中的获取方式
74 0