-
java 请求转发_JavaWeb请求转发和请求包含实现过程解析
2021-02-12 10:01:10这篇文章主要介绍了JavaWeb请求转发和请求包含实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有...且可以重定向到其他项目中去。请求转发和请求包含都是A找B帮忙,B答应了,但B一个人做不...这篇文章主要介绍了JavaWeb请求转发和请求包含实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
一.请求转发、请求包含跟重定向的区别
1.请求转发和请求包含用户只发送了一个请求,而重定向有两个
2.说简单点:重定向是A找B帮忙,B做不了,让A去找C帮忙;且可以重定向到其他项目中去。
请求转发和请求包含都是A找B帮忙,B答应了,但B一个人做不了,B去找C帮忙,两人共同完成这个事。不过转发和包含限制在本项目中进行。
二.简单流程图如下:
三.请求转发、请求包含的实现方法:
1.先获取到一个RequestDispatcher对象,获取该对象的方法:
request.getRequestDispatcher(String ServletPath);(参数是被转发的Servlet路径)
2.得到RequestDispatcher对象,有两个方法可完成转发和包含:
forward(request, response);(参数是resquest和response对象)
include(request, response);(参数是resquest和response对象)
四.请求转发、请求包含的区别
1.共同点:1.转发和包含必须至少2个Servlet或以上来共同协作
2.使用同一个request和response对象
2.不同点:
(1)请求转发:当前Servlet可以设置响应头,但是不能设置响应体;下一个Servlet即可以设置响应头,又可以设置响体体;
(2)请求包含:当前Servlet和下一个Servlet都可以设置响应头和响应体;
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
-
java servlet请求转发_使用Servlet请求转发与包含
2021-02-28 08:35:56使用Servlet请求转发与包含RequestDispatcher接口提供了将请求转发到另一个资源的功能,该资源可能是Html,Servlet或Jsp。该接口还可以用于包含其他资源的内容。1 RequestDispatcher接口的方法RequestDispatcher接口...使用Servlet请求转发与包含
RequestDispatcher接口提供了将请求转发到另一个资源的功能,该资源可能是Html,Servlet或Jsp。该接口还可以用于包含其他资源的内容。
1 RequestDispatcher接口的方法
RequestDispatcher接口提供两种方法。他们是:
public void forward(ServletRequest request,ServletResponse response)thorws ServletException,java.io.IOException:将请求从Servlet转发到服务器上的另一个资源(Servlet,JSP文件或HTML文件)。
public void include(ServletRequest request,ServletResponse response)throws ServletException,java.io.IOException:在响应中包含资源(servlet,JSP页面或HTML文件)的内容。
如上图所示,第二个Servlet的响应被发送到客户端。第一个Servlet的响应不会显示给用户。
如上图所示,第二个Servlet的响应包含在第一个Servlet的响应中,最终才发送回用户。
2 获取RequestDispatcher的对象
ServletRequest接口的getRequestDispatcher()方法返回RequestDispatcher的对象。语法是:
public RequestDispatcher getRequestDispatcher(String resource);
getRequestDispatcher方法示例:
RequestDispatcher rd=request.getRequestDispatcher("servlet2");
//servlet2是第二个Servlet的url-pattern
rd.forward(request, response);//这里可以是forward或者include方法
3 RequestDispatcher的案例
3.1 案例涉及元素及流程说明
在本案例中,我们需要验证用户输入的密码。如果密码是yiidian,将转发请求到WelcomeServlet,否则将显示错误消息:“抱歉,用户名或密码错误!”本案例,我们的用户名和密码都是采用硬编码方式,当然您也可以将其改为从数据库中查询,可以参考后面的开发案例《使用Servlet完成用户登录》。以下文件是本案例需要的文件:
index.jsp文件:用于从用户获取输入。
LoginServlet.java文件:用于处理响应的Servlet类。如果用户输入了正确的密码,它将把请求转发到WelcomeServlet。
WelcomeServlet.java文件:用于显示欢迎消息的Servlet类。
web.xml文件:Web部署描述符文件,其中包含所有Servlet的配置信息。
3.2 编写inde.jsp页面
一点教程网-请求转发与包含用户名:
密码:
3.3 编写LoginServlet
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
/**
* 一点教程网 - http://www.yiidian.com
* 验证密码是否正确
*/
public class LoginServlet extends HttpServlet{
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
String n=request.getParameter("userName");
String p=request.getParameter("userPass");
if(p.equals("yiidian")){
RequestDispatcher rd=request.getRequestDispatcher("servlet2");
rd.forward(request, response);
}else{
out.print("抱歉,用户名或密码错误!");
RequestDispatcher rd=request.getRequestDispatcher("/index.jsp");
rd.include(request, response);
}
}
}
3.4 编写WelcomeServlet
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
/**
* 一点教程网 - http://www.yiidian.com
* 欢迎页面
*/
public class WelcomeServlet extends HttpServlet{
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
String n=request.getParameter("userName");
out.print("欢迎你,"+n);
}
}
3.5 配置web.xml
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
Login
LoginServlet
WelcomeServlet
WelcomeServlet
Login
/servlet1
WelcomeServlet
/servlet2
3.6 运行测试
输入yiidian密码,正确的情况
输入错误密码的情况
-
java web转发实现方法_JavaWeb-请求转发和请求包含
2021-03-10 07:36:54且可以重定向到其他项目中去。请求转发和请求包含都是A找B帮忙,B答应了,但B一个人做不了,B去找C帮忙,两人共同完成这个事。不过转发和包含限制在本项目中进行。二.简单流程图如下:三.请求转发、请求包含的实现...一.请求转发、请求包含跟重定向的区别
1.请求转发和请求包含用户只发送了一个请求,而重定向有两个
2.说简单点:重定向是A找B帮忙,B做不了,让A去找C帮忙;且可以重定向到其他项目中去。
请求转发和请求包含都是A找B帮忙,B答应了,但B一个人做不了,B去找C帮忙,两人共同完成这个事。不过转发和包含限制在本项目中进行。
二.简单流程图如下:
三.请求转发、请求包含的实现方法:
1.先获取到一个RequestDispatcher对象,获取该对象的方法:
request.getRequestDispatcher(String ServletPath);(参数是被转发的Servlet路径)
2.得到RequestDispatcher对象,有两个方法可完成转发和包含:
forward(request, response);(参数是resquest和response对象)
include(request, response);(参数是resquest和response对象)
四.请求转发、请求包含的区别
1.共同点:1.转发和包含必须至少2个Servlet或以上来共同协作
2.使用同一个request和response对象
2.不同点:
(1)请求转发:当前Servlet可以设置响应头,但是不能设置响应体;下一个Servlet即可以设置响应头,又可以设置响体体;
(2)请求包含:当前Servlet和下一个Servlet都可以设置响应头和响应体;
-
JAVA 关于请求转发与请求重定向的区别【学习笔记】
2017-11-22 21:58:31请求转发 地址栏不变化 只能转发到本项目,地址栏会自动添加本项目名称 执行一次请求 请求重定向 地址栏会变化,并显示后一个全请求地址 除了能重定向到本项目,还能重定向到其他项目 执行两次请求请求转发 地址栏不变化 只能转发到本项目,地址栏会自动添加本项目名称 执行一次请求 请求重定向 地址栏会变化,并显示后一个全请求地址 除了能重定向到本项目,还能重定向到其他项目 执行两次请求
-
java servlet请求转发_JavaEE学习day-48:Servlet技术(请求转发和重定向)
2021-03-22 12:41:12请求转发:请求转发的介绍:(1)请求转发解决的问题:服务器在接收到浏览器的请求后,仅仅使用一个Servlet 进行请求处理,会造成不同的 Servlet 逻辑代码冗余,Servlet 的职责不明确。请求转发的作用:(1)作用:解决... -
java web 转发_JavaWeb03-请求转发
2021-03-06 20:20:30请求转发是指将请求再转发到其他地址,转发过程中使用的是同一个 request请求,转发后浏览器地址栏内容不变。下图演示由请求ServletA到ServletB的转发过程:请求转发的过程发生在服务器内部,只能从当前应用内部查找... -
Java的重定向与请求转发
2019-06-13 13:44:29重定向与请求转发的区别: ...3、请求转发只能将请求转发给同一个web项目中的其他页面;重定向不仅可以重定向到当前项目的其他页面,还可以重定向到另一个站点上的页面。 4、请求转发是一次请求,;重... -
java forward怎么用_Java如何使用 转发到其他页面?
2021-03-08 08:31:43该标签转发用户的请求到其它页面。例如,一个用户请求page1.jsp,服务器在此页面中找到。服务器立即停止对的处理page1.jsp并跳转到page2.jsp。让我们看一个使用标签的例子。page1.jsphtml>Page1Thisispage1page2.... -
nginx——前后端分离,转发请求到Tomcat
2021-01-21 16:20:37a、编写标签或Java代码(可以称之为模板) b、在JSP编译阶段被转换成Servlet编译为Servlet Class c、执行编译后的代码,将响应(模板执行结果)返回给页面 优势:减少前端工作,前端只需要设计纯页面,其他的都由后... -
阿里云将80端口请求转发到其他端口
2015-05-14 14:09:23租了一台阿里云ECS,想搭建一个java Web 程序,环境都搭建好后,将Tomcat端口改为80并执行./startup.sh程序报错端口号冲突。 估计是80端口被占用了,但是想绑定域名,还是需要将80端口映射到tomcat才行。于是检查... -
java转发和重定向
2018-12-26 15:46:27作为一名程序员,特别是java web开发的程序员,在使用servlet/jsp的时候,我们必须要知道实现页面跳转的两种方式的区别...而HttpServletResponse.sendRedirect 方法不仅可以重定向到当前应用程序中的其他资源,还可... -
java web Servlet学习笔记-2 请求重定向和请求转发的区别
2014-07-12 00:47:00请求转发与请求重定向的区别 请求重定向和转发 1、请求重定向:浏览器的行为(通过响应对象HttpServletResponse来执行) 特点:可以重新定向访问其他Web应用下的资源 浏览器发出了2次请求,得到了2次响应 地址... -
请求转发和重定向区别
2019-03-17 21:20:56一、转发和重定向区别详解 作为一名程序员,特别是java web开发的程序员,在使用servlet/jsp的时候,我们必须要知道实现页面...而HttpServletResponse.sendRedirect 方法不仅可以重定向到当前应用程序中的其他资源,... -
java重定向与转发的区别
2018-03-15 22:24:02前言:今天参加了个面试,问到转发和重定向的区别,我居然都没答...在这里,转发的路径必须是同一个web容器下的url,其不能转向到其他的web路径上去,中间传递的是自己的容器内的request。在客户浏览器路径栏显示... -
java 重定向和转发的区别
2016-03-21 17:05:26HttpServletResponse.sendRedirect 方法实现的请求重定向与RequestDispatcher.forward 方法实现的请求转发的总结比较...而HttpServletResponse.sendRedirect 方法不仅可以重定向到当前应用程序中的其他资源,还可以重 -
HTTP 请求转发、重定向
2006-07-27 21:18:00使Web应用程序如此强大的原因之一是它们彼此链接和聚合信息资源。J2EE 平台为特定URL的 Web组件... 请求转发 请求转发允许组件发送请求到某个应用程序中的URL,并通过同一应用程序中的不同URL中的组件来处理该请求。这 -
java中重定向与转发的区别
2018-07-05 10:24:15转发只能在当前应用下,不能跳转到其他应用(比如:百度)重定向:1.重定向发生两次请求2.重定向不能传递数据3.重定向是发生在客户端4.重定向地址栏会发生改变5.重定向可以跳转到其他应用下(比如:百度)... -
java中的重定向和转发
2017-08-26 15:22:48页面A拥有用户id,a href="b.jsp?id=1">指向B页面,B页面接受A的值,有一个 href="c.jsp?...因为B页面的数据请求到C页面,但是C页面又将数据转发给了D页面,转发语句延迟了B到C的requestB-C的作用 -
HTTP 请求转发、重定向和包含
2007-09-21 15:27:00使Web应用程序如此强大的原因之一是它们彼此链接和聚合信息资源。J2EE 平台为特定URL的 ... 请求转发 请求转发允许组件发送请求到某个应用程序中的URL,并通过同一应用程序中的不同URL中的组件来处理该请求。这种技术通 -
@Java && 转发 与 重定向的区别与特点
2020-09-10 17:59:26重定向是动态的可以请求其他站点的资源,且两次请求,数据会丢失 转发是静态的只能访问本站点...(分别是进去时的请求/resp 和 重定向到的请求baidu) 不能使用 request 对象来共享数据 转发(因为是两次请求,两个requ.. -
java中重定向和转发的差别
2013-05-14 18:25:27HttpServletResponse.sendRedirect 可以重定向到当前应用程序中的其他资源、同一站点上的其他应用程序、甚至使用绝对的URL重定向到其他站点资源 2.HttpServetReponse.sendRedirect 访问结束后浏览器地址栏中显示的... -
JSP--(使用请求转发的动作标识jsp:forward)
2018-03-13 16:44:35动作标识将当前请求转发到其他web资源(HTML页面、JSP页面和servlet等)。在执行请求转发之后当前页面将不再执行,而是执行该标识指定的目标页面。login.jsp:<%@ page language="java" import=&... -
中转api,一个用于转发用户的Http请求的工具
2019-07-27 19:50:36有时候由于限制或者其他原因,不能直接访问外部的接口,我们就需要一个中转站,用于中转用户的请求,将用户的请求发送到目的地址,然后返回用户需要的结果。 众所周知,Http请求分请求头和请求体,响应也分响应头和... -
HTTP的重定向和转发的区别 - 每天五分钟搞定Java面试
2018-10-01 22:17:03一言以蔽之,转发是服务器行为,重定向是客户端行为。 ...在这里,转发的路径必须是同一个web容器下的url,其不能转向到其他的web路径上去,中间传递的是自己的容器内的request。在客户浏览器路... -
SpringMVC源码分析3:DispatcherServlet的初始化与请求转发
2019-09-30 02:23:16在我们第一次学Servlet编程,学java web的时候,还没有那么多框架。我们开发一个简单的功能要做的事情很简单,就是继承HttpServlet,根据需要重写一下doGet,doPost方法,跳转到我们定义好的jsp页面。Servlet类编写... -
koa2 转发java接口_Koa2 之文件上传下载的示例代码
2021-03-15 10:22:05上传下载在 web 应用中还是比较常见的,无论是图片还是其他文件等。在 Koa 中,有很多中间件可以帮助我们快速...我们可以用 koa-body 中间件来处理文件上传,它可以将请求体拼到 ctx.request 中。123456789101112131... -
2.SpringMVC源码分析:DispatcherServlet的初始化与请求转发
2019-02-09 18:30:00在我们第一次学Servlet编程,学java web的时候,还没有那么多框架。我们开发一个简单的功能要做的事情很简单,就是继承HttpServlet,根据需要重写一下doGet,doPost方法,跳转到我们定义好的jsp页面。Servlet类编写... -
JSP--(将页面转发到用户页面)
2018-03-16 17:34:15动作标识可以将请求转发到其他web资源,如另一个jsp页面、HTML页面、和servlet等。执行请求转发后当前页面将不再被执行,而是执行该标识指定的目标页面。index.jsp: 在该文件中应用<jsp:forward>...