• Request请求转发

 ○ 请求转发§ 请求转发(forward):一种在服务器内部的资源跳转方式§ ○ 实现方式:§ request.getRequestDispatcher("资源B路径").forward(request,response);○ 请求转发资源间共享数据:使用Request对象§ void setAttribute(String name,Object object)存储数据到request域中§ Object getAttribute(String name)根据key,获取值§ void removeAttribute(String name)根据key,删除键值对○ 请求转发的特点:§ 浏览器地址栏路径不发生变化§ 只能转发到当前服务器的内部资源§ 一次请求,可以再转发的资源间使用request共享数据
@WebServlet("/req5")
public class RequestDemo5 extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("demo5....");//存储数据void setAttribute(String name, Object object)request.setAttribute("msg", "hello");//请求转发request.getRequestDispatcher("/req6").forward(request, response);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);}
}@WebServlet("/req6")
public class RequestDemo6 extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("demo6...");//删除数据//request.removeAttribute("msg");//获取数据Object getAttribute(String name)Object msg = request.getAttribute("msg");System.out.println(msg);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);}
}
执行过程:
运行tomcat

 点击链接

输入url 按回车

• Response

• Response设置响应数据功能介绍○ 响应数据分为3个部分:§ 响应行:HTTP/1.1 200 OK□ Voids etStatus(intsc)设置响应状态码§ 响应头:Content-Type:text/html□ Void setHeader(String name,String value):设置响应头键值对§ 响应体:<html><head></head><body></body></html>PrintWritergetWriter()获取字符输出流ServletOutputStreamgetOutputStream()获取字节输出流
• Response完成重定向○ 重定向(Redirect):一种资源跳转方式○ 实现方式§ void setStatus(int sc)□ response.setStatus(302);§ void setHeader(String name,String value)□ response.setHeader("location","/request-demo/resp2");○ 简化实现重定向的方式§ response.sendRedirect("/request-demo/resp2");○ 重定向的特点§ 浏览器地址栏路径发生改变§ 可以重定向到任意位置的资源(服务器内部、外部均可)§ 两次请求,不能在多个资源使用request共享数据○ 路径问题□ 浏览器使用:需要加虚拟目录(项目访问路径)□ 服务端使用:不需要加虚拟目录
@WebServlet("/resp1")
public class ResponseDemo1 extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("resp1...");//重定向//1.设置响应状态码 void setStatus(int sc)/*response.setStatus(302);//2.设置响应头 void setHeader(String name, String value)response.setHeader("location", "/request-demo/resp2");*///简化方式完成重定向//动态获取虚拟目录String contextPath = request.getContextPath();response.sendRedirect(contextPath + "/resp2");
//        response.sendRedirect("https://www.itcast.cn");}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);}
}@WebServlet("/resp2")
public class ResponseDemo2 extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("resp2...");}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);}
}
执行过程 :
启动tomcat,如果已经启动则重运行即可

点击链接

输入url,按回车


Web——Request转发和Response重定向相关推荐

  1. request转发,response重定向,异步请求json数据输出到页面

    request转发: //转发到index.jsp页面request.getRequestDispatcher("index.jsp").forward(request, resp ...

  2. Java Web 请求转发与请求重定向

    Java Web 请求转发与请求重定向 请求转发 服务器行为,即用户向服务器发送了一次http请求,该请求可能会经过多个信息资源处理以后菜返回给用户,各个信息资源使用请求转发机制互相转发请求,但是用户 ...

  3. 资源跳转--response重定向和request转发

    浏览器向服务器发送请求,ATestServlet接收请求后,使用重定向/转发两种方式向BTestServlet进行资源跳转 ATestServlet.java @WebServlet(name = & ...

  4. 请求转发(request对象)和重定向(response)的区别及何时使用请求转发和重定向

    标题request和response主要区别: 1. 请求转发使用 request对象,重定向使用 response 对象 2. 请求转发使用服务器端路径,重定向使用客户端路径 3. 请求转发不能跳转 ...

  5. Servlet转发forward和重定向response.sendRedirect()区别

    转发(forward):浏览器地址不会改变,始终是同一个请求.执行forward时,浏览器不知道服务器发送的内容是从何处来,浏览器地址栏中还是原来的地址.forward是内部重定向. 重定向(send ...

  6. Response对象||案例:重定向||forward 转发 和  redirect 重定向的 区别||路径写法

    Response对象功能:设置响应消息 1. 设置响应行         1. 格式:HTTP/1.1 200 ok         2. 设置状态码:setStatus(int sc)      2 ...

  7. 【Java Web前端开发】Response笔记

    文章目录 HTTP协议: Response对象 ServletContext对象: 案例: HTTP协议: 1. 请求消息:客户端发送给服务器端的数据* 数据格式:1. 请求行2. 请求头3. 请求空 ...

  8. 三、Web服务器——HTTP协议 Response对象 ServletContext对象 学习笔记

    今日内容 1. HTTP协议:响应消息 2. Response对象 3. ServletContext对象 HTTP协议: 1. 请求消息:客户端发送给服务器端的数据* 数据格式:1. 请求行2. 请 ...

  9. java中请求转发与重定向_JavaEE进阶 请求转发与请求重定向

    JavaEE进阶 请求转发与请求重定向 本篇JavaEE进阶教程将为大家讲解JavaEE进阶编程的知识点,看完这篇文章会让你对JavaEE进阶编程的知识点有更加清晰的理解和运用.在转发的过程中,可以把 ...

最新文章

  1. ASP.NET Core技术研究-全面认识Web服务器Kestrel
  2. 转载一篇关于curl的文章
  3. springboot怎么杀进程_线上服务平均响应时间太长,怎么排查?
  4. 实时计算无线数据分析
  5. python默认参数的传参方式_如何跳过在Python方法中提供默认参数
  6. edge chrome Android,微软Edge浏览器正式登陆Android平台
  7. 基础架构之GitLab
  8. 模拟集成电路设计基础知识(二):MOS管二级效应及其小信号等效
  9. 内存不能为written或read的解决方案(比较简单)
  10. 天马行空(不定时更新)
  11. dx12的resource barrier
  12. pdf怎么分割页面?
  13. php判断浏览器语言国内外,PHP判断浏览器语言
  14. kaggle:谁是NBA最佳防守球员?(二)
  15. LoadRunner Error -27792: Failed to connect to server
  16. 数据库(笔记)——候选码、主码、外码以及关系的完整性
  17. SQL SERVER2008查询分析器的最基本的使用——建库、建表、插入数据
  18. SAP中重复制造生产计划编制——生产版本
  19. java作业题exercise1
  20. SixTool多功能多合一代挂助手系统源码

热门文章

  1. python choose语句作用_理解闭包是如何与变量作用域相互影响的
  2. vue.js 入门,简介
  3. c语言 计算坐标,求助,有关坐标计算的
  4. 服务器imm口加载硬盘,ibm x3250 M4如何进IMM(远程管理口)
  5. oracle开启日志服务,Oralce 归档日志开启与关闭示例
  6. zbrush缝线笔刷制作_Thepoly | 高质量写实人脸制作及实时渲染分享
  7. 【Makefile由浅入深完全学习记录5】预定义变量的使用
  8. Unity预计算全局实时GI(gi params)
  9. Page object设计模式
  10. [Silverlight]16进制颜色转ARGB及Color转Int32