精华内容
下载资源
问答
  • 关于request.getRequestDispatcher()的两个方法以及request域

    万次阅读 多人点赞 2018-11-02 21:00:48
    一、getRequestDispatcher() getRequestDispatcher()包含...RequestDispatcher rd = request.getRequestDispatcher("/MyServlet"); 请求转发:rd.forward( request , response ); 请求包含:rd.include...

    一、getRequestDispatcher()

    getRequestDispatcher()包含两个重要方法,分别是请求转发和请求包含。一个请求跨多个Servlet时,需要使用请求转发和请求包含。

    首先需要获得一个RequestDispatcher 对象:RequestDispatcher rd = request.getRequestDispatcher("/MyServlet");

    • 请求转发 rd.forward( request , response );
    • 请求包含: rd.include( request  , response);

    需注意的是,无论是请求转发还是请求包含,都在一个请求范围内!使用同一个request和response!

    二、请求转发和请求包含的区别

    • 请求转发:由下一个Servlet完成响应体,当前Servlet可以设置响应头(留头不留体)。举个例子,AServlet请求转发到BServlet,那么AServlet不能够使用response.getWriter() 和response.getOutputStream()向客户端输出响应体,但可以使用response.setContentType("text/html;charset=utf-8") 设置响应头。而在BServlet中可以输出响应体。
    • 请求包含:由两个Servlet共同完成响应体(留头又留体)。同样用上面的例子,AServlet请求包含到BServlet,那么AServlet既可以设置响应头,也可以完成响应体。

     

    下图是请求转发的流程,最后返给客户端的response只是BServlet的,而AServlet的响应不会在客户端显示出来。

    下图是请求包含流程,因为BServelt的响应返回给AServlet时携带了responseB,所以AServlet的响应中包含了BServlet的响应,最后返给客户端的响应是两者之和。

    三、request域

    request是Java四大域对象之一,正是它提供了请求转发和请求包含的功能。一个请求会创建一个request对象,若在一个请求中跨越了多个Servlet,那么这些Servlet可以使用request来共享数据。同一个请求范围内使用request.setAttribute()request.getAttribute()来传值!前一个Servlet调用setAttribute()保存值,后一个Servlet调用getAttribute()获取值。

    四、请求转发和重定向的区别

    请求转发和重定向的区别也是非常重要的知识点!!!

    1. 请求转发是一个请求一次响应,而重定向是两次请求两次响应。
    2. 请求转发地址不变化,而重定向会显示后一个请求的地址。这是因为请求转发是服务器的行为,是由容器控制的转向,整个过程处于同一个请求中,因此客户端浏览器不会显示转向后的地址;但重定向是客户端的行为,重新发送了请求,整个过程不在同一个请求中,因此客户端浏览器会显示跳转后的地址。
    3. 请求转发只能转发到本项目其它Servlet,而重定向不只能重定向到本项目的其它Servlet,还能定向到其它项目。
    4. 请求转发是服务端行为,只需给出转发的Servlet路径,而重定向需要给出requestURI,既包含项目名。

     

    请求转发

    重定向

     

     

    展开全文
  • 域 作用范围 PageContext域 当前JSP页面范围 request域 一次请求 session域 一次会话 application域 整个web应用
    作用范围
    PageContext域当前JSP页面范围
    request域一次请求
    session域一次会话
    application域整个web应用
    展开全文
  • request域对象.

    千次阅读 2016-11-02 22:37:31
    request域对象. ServletContext就一个域对象. request的创建与销毁. 当请求来的时候,tomcat服务器会创建request,response对象。 当响应产生,request对象销毁。 也就是说,每一次请求都是一个新的request。 ...
    request域对象.
    
    ServletContext就一个域对象.
    request的创建与销毁.
    当请求来的时候,tomcat服务器会创建request,response对象。
    当响应产生,request对象销毁。

    也就是说,每一次请求都是一个新的request。

    request也是一个域对象,它也可以存取删除数据。
    setAttribute()
    getAttribute()
    removeAttribute();

    问题:每一次请求都是一个新的request,那么request域的作用范围是什么,在开发中什么时候使用?

    请求转发----在服务器内部进行跳转。
    这时我们这几个servlet就共享同一个request对象,这就是request域作用范围。

    我们使用请求转发可以让多个servlet之间共享同一个request,那么我们如果想要在多个servlet之间进行信息传递,
    可以使用setAttribute().


    在开发中什么时候使用请求转发?
    如果我们在request域中存储了信息,到其它的页面时,需要得到这个信息,这时我们就需要进行请求转发.


    请求转换的代码
    request.getRequestDispatcher("路径").forward(request,response);


    笔试题:
    请求转发与重定向的区别?

    1.请求转换是服务器内部跳转,所有地址栏上的路径不会改变.
     重定向是浏览器在次发送请求,地址栏上的路径会发生改变.
     
    2.请求转发只发送一次请求。
                              重定向会发送两次请求.

    3.请求转发只能在当前应用内部跳转.
     重定向可以在内部跳转也可以跳出当前应用.
     
    4.请求转发时,因为是内部跳转。它的路径写法是   /资源路径。
                               重定向,它的路径需要写   /工程名/资源路径.  


    5.请求转发,可以共享reqeust。
                              重定向不可能,因为每一次都是一个新的request。

    6.请求转换是通过reqeust发起  request.getRequestDispatcher().forward();
      重定向  response发起      response.sendRedirect();
    展开全文
  • request域对象和session域对象

    千次阅读 2017-04-19 23:59:07
    当你只想servlet穿过来的域对象只存留一次会话中的时候,用request域对象 request.setAttribute("successModify", "修改资料成功"); 当你像一直使用的时候,用session域对象 request.getSession()....

    当你只想servlet穿过来的域对象只存留一次会话中的时候,用request域对象

    request.setAttribute("successModify", "修改资料成功");


    当你像一直使用的时候,用session域对象

    request.getSession().setAttribute("successModify", "修改资料成功");


    展开全文
  • 第六节 属性域使用(request域、session域、application域) 1.request域 在SpringMVC中,当我们想把一个对象存入请求域有很多种操作方式,用哪一个都可以。 ①使用Model对象 @RequestMapping("/...
  • 1)什么request域对象? request域对象是servlet共享同一个的request的区域。。 2)Servlet中三大域对象?【servlet之间进行共享参数】 Servlet中三大域对象:request、session、application【application...
  • 比如本人做一个用户新增页面,这个新增页面是从查询页面转过来的。 新增页面有2个按钮,一个新增并保存,一个新增并关闭。 一个新增并关闭 是增加用户以后转...问如果在后台 调用一个方法清除所有的request域中的值。
  • 1.使用ModelAndView的addObject方法放键值对,这些键值对在该方法return之前,会将这些键值对放到request域中 2.在方法中直接声明HttpServletRequest对象。使用该对象往request域中放键值对 3.在方法形参中...
  • SpringMVC通过工具类获取Request域

    千次阅读 2017-08-01 13:46:39
    当DispatcherServlet在调用doDispach对请求处理之前,...我们可以通过以下两种方式来快速获取request域对象中保存的属性,不管是dispatchServlet放置的,还是我们自己保存的 1.RequestContextHolder RequestCon
  • 关于jsp利用EL表达式获取不到request域中的数据 通过controller中的方法设置的request域数据,代码如下: @RequestMapping("testSecond") public ModelAndView TestSecond(){ ModelAndView modelAndView = new ...
  • request请求转发和request域运用

    千次阅读 2018-06-27 00:30:17
    1.请求转发 1.概述:让服务器跳转到另一个资源上 2.方法  1.request.getRequestDispatcher("跳转资源路径"...例如:Request本质上就是一个对象, 对象就是一个容器。 3.对象的方法 1.req...
  • SpringMVC中分别使用ModelAndView,Model,Request域来封装数据,并显示在前端页面 1:前端jsp <body> 欢迎来到page<br/> ${ac}<br/> ${msg} </body> 2:视图解析器 <!-- 配置视图解析...
  • 重定向和转发的区别: (1)request是一个域对象 request对象也是一个存储数据的区域对象,所以也具有如下方法: setAttribute(String name,Object o) ...注意:request域的作用范围:一次请求中 (2)request完成
  • 利用ActionContext类与ServletActionContext类操作request域、session域内的属性: String key = ""; Object value = null; ActionContext.getContext().put(key, value);//相当于request.setAttribute(key,value) /...
  • 在Web开发中 PageContext、HttpServletRequest、HttpSession和ServletContext 这4个对象之所以可以存储数据 是因为它们内部都定义了1个Map集合---- ...提供了pageScope、requestScope、sessionScope、applicat
  • request不仅可以封装请求的数据,还可以作为一个对象,存储一些东西。我们常用的是把它用于转发。
  • request域中添加数据,返回响应的页面,相应页面就可以显示返回的数据
  • JAVAWEB 使用EL获取servlet类中的request域中的值,获取不出来。 1. 在Servlet中是使用的转发函数,即 request.getRequestDispatcher("index2.jsp").forward(request, response); 2.一直以为jsp文件代码写错,纠结...
  • request域中文乱码问题

    千次阅读 2018-12-28 16:24:47
    设置request的编码 request.setCharacterEncoding(&amp;quot;UTF-8&amp;quot;); 2、表单是get/post方式提交时 String username = request.getParameter(&amp;quot;username&amp;quot;);//乱...
  • 假如直接访问连接A:http://localhost:8080/ssm/itemEdit.action?id=2 这里的id=2是被提交到request域中了吗? 那么在另一页面B中能不能从request中获取到该id呢?
  • 将数据保存到Map对象,Model对象,和ModelMap对象中,SpringMvc默认将数据放到request域中,可以在jsp页面直接通过标签获取` @RequestMapping("/success") public String success(Map<String,String> map)...
  • request域中放入参数几种方法

    千次阅读 2019-08-20 23:55:49
    目录 Model ModelMap ...request.setAttribute(最原始的) modelAndVIew.addObject Model //返回界面 @RequestMapping("/getUiModel") public String getUiModel(Model model) { mode...
  • jsp页面主要代码: ${contacts }" var="con" varStatus="varSta"> ...如果我访问这个Servlet类,这个类会转发到上面那个jsp页面,并传入的还有数据,可是我先访问这个JSP页面,页面是没有request域对象数据。
  • EL表达式获取request域的值

    千次阅读 2019-03-22 21:29:03
    EL表达式在JSP页面中,...${param.username} 相当于 request.getParameter("username")。 ${username} 意思是取出某一范围中名称为username的变量,它的取值范围依次是 Page,Request,Session,Application。 ...
  • 为什么重定向会丢失request域

    千次阅读 2018-03-19 12:57:03
    https://zhidao.baidu.com/question/432436445089859244.html重定向就是:A访问C的时候,C里写了重定向,C的走向是先返回A,在由A自动访问重定向的D然后返回...而request的有效期是在一次的请求响应中有效,而重定向...
  • Java之Request域对象及cookie详解

    千次阅读 2018-03-28 20:43:31
    获取表单中提交的数据 ... private void fun1(HttpServletRequest request) { String username = request.getParameter("username"); String password = request.getParameter("...
  • 在js中获取request域中的内容

    千次阅读 2017-11-09 15:19:00
    1、可以使用小脚本<%%>实现: ...2、使用隐藏实现: <input type="hidden" value="${requestScope.product.getPro_id()}" id="pro_id"/> var pro_id=$('pro_id').value; 转载于...
  • 所以request的作用仅在请求中有效. 常用场景: 常用于, 同一个服务器之间的同一请求,而使用不同的参数传递 request的创建与销毁 当请求来的时候 tomcat服务器会创建 request ,respones对象 当响应产生 ,request...
  • 当后台往requset中存值时,例如request.setAttribute("entity", entity);其中entity为实体类。例如其中有个id属性。 当返回到jsp页面上时,在js中可以使用EL表达式var id = '${entity.id }';来获取该属性值。但是...
  • 在生成验证码的servlet里面获取后 将文字保存到request 然后进行转发 不也一样可以实现。转发不会更改浏览器地址,这样用户也感觉不到差别啊?求解

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 235,312
精华内容 94,124
关键字:

request域