请求转发和请求包含和重定向之间的区别
2018-06-18 03:29:33来源:未知 阅读 ()
1 package com.sn.servlet.forward; 2 3 import java.io.IOException; 4 import javax.servlet.ServletException; 5 import javax.servlet.annotation.WebServlet; 6 import javax.servlet.http.HttpServlet; 7 import javax.servlet.http.HttpServletRequest; 8 import javax.servlet.http.HttpServletResponse; 9 10 /** 11 * Servlet implementation class OneServlet 12 */ 13 @WebServlet("/OneServlet") 14 /** 15 * 请求转发和请求包含和重定向之间的区别 16 * @author Administrator 17 * 18 */ 19 public class OneServlet extends HttpServlet { 20 /** 21 * 1.response:服务器端向客户端发送数据,主要设置一些响应。 22 * 2.request:访问任何客户端,可以用post方法传递参数和get方法发出请求。 23 * 3.get和post在表单中既可以是get请求,也可以是post请求。 24 * 注意:请求转发和请求包含都是一个请求。 25 * 4.请求转发:留头不留体 26 * 5.请求包含:留头又留体 27 * 28 * 6.servlet中的三大域对象分别是: 29 * 1)、Request 30 * 2)、Session 31 * 3)、application 32 * 共同点:都有这三个方法: 33 * void setAttribute(String name,Object value);储存一个对象 34 * Object getAttribute(String name);获取数据 35 * void removeAttribute(String name);移除属性 36 * 注意:如果一个servlet中存储了一个对象,然后重定向后,然后在获取数据,是不可以获取到的,因为已经被重定向了,他会在新的servlet创建一个新的request。 37 * 如果在一个servlet中存储了一个对象,请求转发和请求包含都可以使用getAttribute获取数据,因为是只有一个请求。 38 * 三个域对象都可以存放数据。 39 * 注意:request可以存放数据,但是只会在一个请求范围内。 40 * 7.请求转发和重定向之间的区别: 41 * >请求转发是一个请求一个响应,重定向是两次请求两次响应 42 * >请求转发浏览器地址栏不会发生变,重定向的浏览器地址栏会发生变化 43 * >请求转发只能转发到本项目的其他serlvet中,重定向不但可以重定向到本项目的其他servlet中还可以重定向到其他项目 44 * >请求转发是服务端行为,只要给出转发的servlet路径,重定向需要给requestURI和项目名 45 * >请求转发效率能搞,因为只有一次请求 46 * 总结:通过学习了请求转发,掌握了以上知识点,这些以后会经常用到。一定要弄清楚服务器端和客户端。 47 * 48 */ 49 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 50 System.out.println("OneServlet"); //打印在控制台 51 response.setHeader("vip", "VIP"); //设置响应头 52 response.getWriter().print("OneServlet......"); //设置响应体,主要是向浏览器输出 53 request.setAttribute("name", "wangcai"); //setAttribute:设置属性及属性值,属性:name,属性值:wangcai 54 //request.getRequestDispatcher("/TwoServlet").forward(request, response); //请求转发。forward:转发 55 request.getRequestDispatcher("/TwoServlet").include(request, response); //请求包含。include:包含 56 } 57 58 }
1 package com.sn.servlet.forward; 2 3 import java.io.IOException; 4 import javax.servlet.ServletException; 5 import javax.servlet.annotation.WebServlet; 6 import javax.servlet.http.HttpServlet; 7 import javax.servlet.http.HttpServletRequest; 8 import javax.servlet.http.HttpServletResponse; 9 10 /** 11 * Servlet implementation class TwoServlet 12 */ 13 @WebServlet("/TwoServlet") 14 public class TwoServlet extends HttpServlet { 15 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 16 System.out.println("TwoServlet"); //打印在控制台 17 String s = (String) request.getAttribute("name"); //通过属性名获取属性值,因为是obj,所以需要强转 18 response.getWriter().print(s); //设置响应体,向浏览器输出 19 } 20 21 }
请求转发:留头不留体
请求包含:留头又留体
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- eclipse下创建Maven项目(包含webapp目录结构) 2020-06-09
- 【从单体架构到分布式架构】(二)请求增多,单点变集群(1) 2020-06-07
- Idea实现SpringBoot外置Tomcat的Web项目热部署(包含静态文 2020-06-04
- 路径变量@PathVariable/请求参数@RequestParam的绑定以及@Re 2020-05-24
- 简单了解 HTTP 协议 2020-05-20
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash