精华内容
下载资源
问答
  • 这篇文章主要介绍了JavaWeb请求转发请求包含实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有...且可以重定向到其他项目中去。请求转发请求包含都是A找B帮忙,B答应了,但B一个人做不...

    这篇文章主要介绍了JavaWeb请求转发和请求包含实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    一.请求转发、请求包含跟重定向的区别

    1.请求转发和请求包含用户只发送了一个请求,而重定向有两个

    2.说简单点:重定向是A找B帮忙,B做不了,让A去找C帮忙;且可以重定向到其他项目中去。

    请求转发和请求包含都是A找B帮忙,B答应了,但B一个人做不了,B去找C帮忙,两人共同完成这个事。不过转发和包含限制在本项目中进行。

    二.简单流程图如下:

    c2581e51e9dd974470f639e017728a82.png

    三.请求转发、请求包含的实现方法:

    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都可以设置响应头和响应体;

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    展开全文
  • 使用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文件)的内容。

    ffae8a211e8db4b76e5d5c53c558cac8.png

    如上图所示,第二个Servlet的响应被发送到客户端。第一个Servlet的响应不会显示给用户。

    0745714f3ad31d792155ec2502313c72.png

    如上图所示,第二个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的配置信息。

    42c2a13fa032e16ecdb2c33a25aae1d3.png

    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 运行测试

    24a4a4aa4ea4c78a95b6157496ac57ab.png

    输入yiidian密码,正确的情况

    7b34d8f1784312794fb433c08857050d.png

    输入错误密码的情况

    57aebcf70bea1a7662a72600d82db8de.png

    展开全文
  • 且可以重定向到其他项目中去。请求转发请求包含都是A找B帮忙,B答应了,但B一个人做不了,B去找C帮忙,两人共同完成这个事。不过转发和包含限制在本项目中进行。二.简单流程图如下:三.请求转发请求包含的实现...

    一.请求转发、请求包含跟重定向的区别

    1.请求转发和请求包含用户只发送了一个请求,而重定向有两个

    2.说简单点:重定向是A找B帮忙,B做不了,让A去找C帮忙;且可以重定向到其他项目中去。

    请求转发和请求包含都是A找B帮忙,B答应了,但B一个人做不了,B去找C帮忙,两人共同完成这个事。不过转发和包含限制在本项目中进行。

    二.简单流程图如下:

    e63beaecca2692a5dcb09e56d7f8b0b7.png

    三.请求转发、请求包含的实现方法:

    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都可以设置响应头和响应体;

    展开全文
  • 请求转发 地址栏不变化 只能转发到本项目,地址栏会自动添加本项目名称 执行一次请求 请求重定向 地址栏会变化,并显示后一个全请求地址 除了能重定向到本项目,还能重定向到其他项目 执行两次请求



    请求转发 地址栏不变化 只能转发到本项目,地址栏会自动添加本项目名称 执行一次请求
    请求重定向 地址栏会变化,并显示后一个全请求地址 除了能重定向到本项目,还能重定向到其他项目 执行两次请求

    展开全文
  • 请求转发请求转发的介绍:(1)请求转发解决的问题:服务器在接收浏览器的请求后,仅仅使用一个Servlet 进行请求处理,会造成不同的 Servlet 逻辑代码冗余,Servlet 的职责不明确。请求转发的作用:(1)作用:解决...
  • 请求转发是指将请求转发到其他地址,转发过程中使用的是同一个 request请求转发后浏览器地址栏内容不变。下图演示由请求ServletA到ServletB的转发过程:请求转发的过程发生在服务器内部,只能从当前应用内部查找...
  • 重定向与请求转发的区别: ...3、请求转发只能将请求转发给同一个web项目中的其他页面;重定向不仅可以重定向当前项目的其他页面,还可以重定向另一个站点上的页面。 4、请求转发是一次请求,;重...
  • 该标签转发用户的请求到其它页面。例如,一个用户请求page1.jsp,服务器在此页面中找到。服务器立即停止对的处理page1.jsp并跳转到page2.jsp。让我们看一个使用标签的例子。page1.jsphtml>Page1Thisispage1page2....
  • a、编写标签或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 方法不仅可以重定向当前应用程序中的其他资源,还可...
  • 请求转发请求重定向的区别 请求重定向和转发 1、请求重定向:浏览器的行为(通过响应对象HttpServletResponse来执行) 特点:可以重新定向访问其他Web应用下的资源 浏览器发出了2次请求,得到了2次响应 地址...
  • 请求转发和重定向区别

    千次阅读 2019-03-17 21:20:56
    一、转发和重定向区别详解 作为一名程序员,特别是java web开发的程序员,在使用servlet/jsp的时候,我们必须要知道实现页面...而HttpServletResponse.sendRedirect 方法不仅可以重定向当前应用程序中的其他资源,...
  • 前言:今天参加了个面试,问到转发和重定向的区别,我居然都没答...在这里,转发的路径必须是同一个web容器下的url,其不能转向到其他的web路径上去,中间传递的是自己的容器内的request。在客户浏览器路径栏显示...
  • HttpServletResponse.sendRedirect 方法实现的请求重定向与RequestDispatcher.forward 方法实现的请求转发的总结比较...而HttpServletResponse.sendRedirect 方法不仅可以重定向当前应用程序中的其他资源,还可以重
  • HTTP 请求转发、重定向

    千次阅读 2006-07-27 21:18:00
    使Web应用程序如此强大的原因之一是它们彼此链接和聚合信息资源。J2EE 平台为特定URL的 Web组件... 请求转发 请求转发允许组件发送请求到某个应用程序中的URL,并通过同一应用程序中的不同URL中的组件来处理该请求。这
  • 转发只能在当前应用下,不能跳转到其他应用(比如:百度)重定向: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中的组件来处理该请求。这种技术通
  • 重定向是动态的可以请求其他站点的资源,且两次请求,数据会丢失 转发是静态的只能访问本站点...(分别是进去时的请求/resp 和 重定向请求baidu) 不能使用 request 对象来共享数据 转发(因为是两次请求,两个requ..
  • HttpServletResponse.sendRedirect 可以重定向到当前应用程序中的其他资源、同一站点上的其他应用程序、甚至使用绝对的URL重定向到其他站点资源 2.HttpServetReponse.sendRedirect 访问结束后浏览器地址栏中显示的...
  • 动作标识将当前请求转发到其他web资源(HTML页面、JSP页面和servlet等)。在执行请求转发之后当前页面将不再执行,而是执行该标识指定的目标页面。login.jsp:<%@ page language="java" import=&...
  • 有时候由于限制或者其他原因,不能直接访问外部的接口,我们就需要一个中转站,用于中转用户的请求,将用户的请求发送目的地址,然后返回用户需要的结果。 众所周知,Http请求请求头和请求体,响应也分响应头和...
  • 一言以蔽之,转发是服务器行为,重定向是客户端行为。 ...在这里,转发的路径必须是同一个web容器下的url,其不能转向到其他的web路径上去,中间传递的是自己的容器内的request。在客户浏览器路...
  • 在我们第一次学Servlet编程,学java web的时候,还没有那么多框架。我们开发一个简单的功能要做的事情很简单,就是继承HttpServlet,根据需要重写一下doGet,doPost方法,跳转我们定义好的jsp页面。Servlet类编写...
  • 上传下载在 web 应用中还是比较常见的,无论是图片还是其他文件等。在 Koa 中,有很多中间件可以帮助我们快速...我们可以用 koa-body 中间件来处理文件上传,它可以将请求体拼 ctx.request 中。123456789101112131...
  • 在我们第一次学Servlet编程,学java web的时候,还没有那么多框架。我们开发一个简单的功能要做的事情很简单,就是继承HttpServlet,根据需要重写一下doGet,doPost方法,跳转我们定义好的jsp页面。Servlet类编写...
  • 动作标识可以将请求转发到其他web资源,如另一个jsp页面、HTML页面、和servlet等。执行请求转发后当前页面将不再被执行,而是执行该标识指定的目标页面。index.jsp: 在该文件中应用<jsp:forward>...

空空如也

空空如也

1 2 3 4 5 ... 13
收藏数 253
精华内容 101
关键字:

java转发请求到其他

java 订阅