request 请求转发:一种在服务器内部的资源跳转方式

  步骤:

    1.通过request对象获取请求转发器对象:RequestDispatcher getRequestDispatcher(String path)

    2.使用RequestDispatcher对象来进行转发:forward(ServletRequest request, ServletResponse response)

  特点:

    1. 浏览器地址路径不发生改变

    2. 只能转发到当前服务器内部资源中

    3. 转发是一次请求

request 共享数据(域对象)

  * 域对象:一个有作用范围的对象,可以在范围内共享数据

  * request域:代表一次请求的范围,一般用于请求转发的多个资源中共享数据

  * 方法:

    1. void setAttribute(String name,Object obj):存储数据

    2. Object getAttribute(String name):通过键获取值

    3. void removeAttribute(String name):通过键移除键值对

servletA:

 @WebServlet("/RequestDemo8")
public class RequestDemo8 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("demo8............");
//转发到demo9 // RequestDispatcher requestDispatcher = request.getRequestDispatcher("/RequestDemo9");
// requestDispatcher.forward(request,response); //存储数据到request域中
request.setAttribute("flypig","666"); request.getRequestDispatcher("/RequestDemo9").forward(request,response);
} protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//get获取请求参数 //根据参数名称获取参数值
// String username = request.getParameter("username");
// System.out.println("get");
// System.out.println(username); this.doPost(request,response);
}
}

servletB:

 @WebServlet("/RequestDemo9")
public class RequestDemo9 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //获取数据,
Object attribute = request.getAttribute("flypig");
//转发资源时才能共享数据
System.out.println(attribute); System.out.println("demo9..........."); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//get获取请求参数 //根据参数名称获取参数值
// String username = request.getParameter("username");
// System.out.println("get");
// System.out.println(username); this.doPost(request,response);
}
}

入门servlet:request请求转发和共享数据的更多相关文章

  1. Servlet Request 请求转发

    request.getRequestDispatcher("logined.jsp").forward(request, response);    //登录用户在登录页面验证通过 ...

  2. javaWeb中request请求转发和response重定向

    1.访问资源 运用forward方法只能重定向到同一个Web应用程序中的一个资源. 而sendRedirect方法可以让你重定向到任何URL.  2.request.get Forward代码中的&q ...

  3. request 请求转发

    package request; import java.io.IOException;import javax.servlet.ServletException;import javax.servl ...

  4. JAVA记录-Servlet RequestDispatcher请求转发

    RequestDispatcher接口提供将请求转发送到另一个资源的功能,它可能是html,servlet或jsp等. 此接口也可用于包括另一资源的内容.它是servlet协作的一种方式. 在Requ ...

  5. servlet中请求转发获取数据等,,,

    String uname= req.getParameter("uname");  获取请求的字符串 req.setAttribute("str"," ...

  6. servlet中请求转发(forword)与重定向(sendredirect)的区别

    摘自:http://www.cnblogs.com/CodeGuy/archive/2012/02/13/2349970.html 通俗易懂 servlet请求转发与重定向的区别: request.s ...

  7. servlet中请求转发(forword)与重定向(sendredirect)

    请求转发和重定向 request.setAttribute("test","hello"); request.getRequestDispacther(&quo ...

  8. servlet中请求转发(forword)和重定向(redirect)的区别

    servlet请求转发与重定向的区别: request.setAttribute("test","hello"); request.getRequestDisp ...

  9. Servlet(10)—请求转发和请求重定向

    请求转发与请求重定向 ①区别: 本质区别:请求转发只发出一次请求,请求重定向则发出两次请求. 请求转发:地址栏是初次发出请求的地址在最终的Servlet中,request对象和中转的那个request ...

随机推荐

  1. wpf 纯样式写按钮

    <!--自定义按钮样式--> <LinearGradientBrush x:Key="LinearGradientBlueBackground" EndPoint ...

  2. Spark如何读写hive

    原文引自:http://blog.csdn.net/zongzhiyuan/article/details/78076842 hive数据表建立可以在hive上建立,或者使用hiveContext.s ...

  3. AutoIt自动化编程(3)【转】

    模拟鼠标点击(按钮等)控件 既然是模拟用户操作,自然就包括了模拟鼠标点击在内. 适用命令/函数:Click/MouseClick/ControlClick 其中Click/MouseClick用来模拟 ...

  4. Python中死锁的形成示例及死锁情况的防止

    死锁示例搞多线程的经常会遇到死锁的问题,学习操作系统的时候会讲到死锁相关的东西,我们用Python直观的演示一下.死锁的一个原因是互斥锁.假设银行系统中,用户a试图转账100块给用户b,与此同时用户b ...

  5. odoo中的QWeb模板引擎

    * 概述    QWeb是odoo主要模板引擎,采用xml表述,最后生成HTML文件    * 一般用法 #条件表达式 <t t-if="record.effort_estimate. ...

  6. leetcode146周赛-1130-叶值的最小代价生成树*

    题目描述: class Solution(object): def mctFromLeafValues(self, arr): """ :type arr: List[i ...

  7. Python-线程(3)-协程

    目录 Event事件 线程池 进程池 回调函数 高性能爬取梨视频 协程 yield保存状态 gevent模块 协程的目的 TCP服务端单线程下实现并发 Event事件 event 事件用来控制线程的执 ...

  8. js获取网页屏高 屏宽

    <SCRIPT LANGUAGE="JavaScript"> <!-- //document.body.scrollTop 滚动条的上端距离 //document ...

  9. Access数据库连接字符串

    <connectionStrings> <add name="connStr" connectionString="server=.;uid=home; ...

  10. .Net Core微服务系列--配置中心

    什么是配置中心 简单来说配置中心就是对配置进行管理的一个中心.对于配置这个司空见惯的东西,我们想想为什么对于应用程序需要各种各样的配置来支撑? 我们人类没有办法掌控和预知一切,所以映射到软件系统这个领 ...