Servlet - 请求转发和重定向

1. 请求转发

作用: 实现多个servlet联动操作处理请求, 这样避免代码冗余, 让servlet的职责更加明确

使用: request.getRequestDispatcher("路径地址").forward(request, response);

特点: 一次请求, 浏览器地址不改变

注意: 请求转发后直接return结束即可

2. 重定向

作用: 解决了表单重复提交的问题, 以及当前servlet无法处理的请求的问题

使用: response.sendRedirect("路径地址");

特点: 两次请求, 两个request对象, 浏览器地址栏信息改变

注意:

  如果请求中有表单数据, 而数据又比较重要, 不能重复提交的时候, 建议使用重定向

  如果请求被servlet接收后, 无法进行处理, 建议使用重定向定位到可以处理的资源

原文地址:https://www.cnblogs.com/mpci/p/12620094.html

时间: 2024-08-07 07:28:38

Servlet - 请求转发和重定向的相关文章

servlet请求转发与重定向的区别

1.请求转发(forward) request.getRequestDispatcher("parameter").forward(request,response);跳转到指定的服务器资源,地址栏URL不变,请求响应不变. 2请求包含(include)request.getRequestDispatcher("parameter").include(request,response);跳转到指定的服务器资源且包含之前的资源,地址栏URL不变,请求响应不变. 注* 

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

重定向和转发有一个重要的不同:当使用转发时,服务器将使用一个内部的方法来调用目标页面,新的页面继续处理同一个请求,而浏览器将不会知道这个过程. 与之相反,重定向方式的含义是第一个页面通知浏览器发送一个新的页面请求.因为,当你使用重定向时,浏览器中所显示的URL会变成新页面的URL, 而当使用转发时,该URL会保持不变.重定向的速度比转发慢,因为浏览器还得发出一个新的请求.同时,由于重定向方式产生了一个新的请求,所以经过一次重 定向后,request内的对象将无法使用. 怎么选择是重定向还是转发呢

servlet请求转发与重定向的区别------用生活实例来形象说明两者的区别

1,请求重定向:客户端行为,response.sendRedirect(),从本质上讲等同于两次请求,前一次的请求对象不会保持,地址栏的URL地址会改变. 2,请求转发:服务器行为,request.getRequsetDispatcher().forward(requset,response);是一次请求,转发后请求对象会保存,地址栏的URL地址不会改变.(服务器内部转发,所有客户端看不到地址栏的改变) 下面举个生活中的实例来说明: 请求重定向:就好比我们找一个A广告公司给设计名片,A明确告诉我

Servlet技术-请求转发,重定向和包含的关系

Web组件之间的关系包含3种,请求转发,URL重定向和包含 1.请求转发 请求转发允许把请求转发给同一应用程序的其他web组件,这种技术通常用于Web应用控制层的Servlet流程控制器,可检查HTTP请求的数据,并将请求转发到合适的目标组件,目标组件执行具体的请求处理操作并生成响应结果. 实例: 如果当前的Servlet组件要把请求转发给一个jsp组件,如hello.jsp,可在Servlet中的service方法中执行一下代码: RequestDispatcher rd=request.ge

Servlet 及 请求转发与重定向

Servlet: Java编写的服务器端程序,处理客户端的http请求并将其结果发送到客户端. Servlet容器Tomcat: 最熟悉的是容器就是tomcat.在tomcat中,server-包含-service-包含-connector+container+other 最核心的组件: Connector:接收TCP请求,创建response和request对象,分配线程给container处理 Container:servlet容器,责任链模式的子容器:engine--host--Conte

Servlet中转发和重定向的路径问题

Servlet中有两种方式获得转发对象(RequestDispatcher):一种是通过HttpServletRequest的getRequestDispatcher()方法获得,一种是通过ServletContext的getRequestDispatcher()方法获得: 重定向的方法只有一种:HttpServletResponse的sendRedirect()方法. 这三个方法的参数都是一个URL形式的字符串,但在使用相对路径或绝对路径上有所区别. ★ HttpServletResponse

请求转发与重定向详解(模拟系统维护中提示的实现)

简介 转发和包含 Servlet对象由Servlet容器创建,并且Servlet对象的service()方法也由容器调用.一个Servlet对象可否直接调用另一个Servlet对象的service()方法呢?答案是否定的,因为一个Servlet对象无法获得另一个Servlet对象的引用. 在旧版的Servlet API中,ServletContext接口中的getServlet(Stringname)方法能根据参数给定的名字返回相应的Servlet对象的引用.从Servlet API2.1开始,

JavaWeb中的 请求转发 和 重定向

请求转发:forward();            重定向:sendRedirect() 来看具体实例: 在HTML页面写两个a链接请求,这个就是get请求了,然后建立与请求对应的servlet,页面代码如下所示: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>请求转发实例</title> 6 </head>

请求转发和重定向的区别以及他们的实现方式?

1.请求转发是什么? 答:请求转发是RequestDispatcher.forword方法:作用是:在服务器端内部将请求转发给另一个资源,浏览器只知道发出请求并得到响应结果,但不知道在服务器程序内部发生了转发行为. 举例:别名为“浏览器”的人写信找张三100块,张三只有50块,于是张三找李四借了50块,然后将钱转给“浏览器”.可知,“浏览器”只发出一封信和收到一次回复,他只知道钱是张三借给他的,并不知道有一部分是李四的. 2.重定向是什么? 答:重定向是HttpServletResponse.s