多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
转发是服务器与服务器之间的行为,如下图所示。 :-: ![](https://img.kancloud.cn/91/1b/911b26c73682c70d843d12f6f303800f_787x525.jpg) 转发,关键字`forward`表示转发 下面演示上图转发的流程,浏览器向OneServlet请求添加`name`和`age`属性,然后转发到TwoServlet中,以验证是否能在TwoServlet中取出OneServlet的值。 <br/> 步骤如下: **1. controller层** ```java @Controller public class ForwardController { @RequestMapping("/OneServlet") public String oneServlet(HttpServletRequest request, HttpServletResponse response) { request.setAttribute("name", "张三"); request.setAttribute("age", 25); //转发到TwoServlet,关键字forward表示转发 return "forward:/TwoServlet"; } @RequestMapping("/TwoServlet") public String twoServlet(HttpServletRequest request, HttpServletResponse response) { String name = (String) request.getAttribute("name"); int age = (Integer) request.getAttribute("age"); System.out.println("name:" + name + ", age:" + age); //name:张三, age:25 return "userList"; } } ``` **2. 视图层** *`webapp/WEB-INF/views/userList.jsp`* ```html <h1>${name}, ${age}</h1> ``` **3. 测试** 启动项目后访问 http://localhost:8080/mvc/OneServlet ,界面将会看到如下信息。 ``` 张三, 25 ``` **4. 结论** 1. 转发是服务器行为,OneServlet转发到TwoServlet是在服务端完成的。 2. 转发是同一次请求,浏览器只发出了 http://localhost:8080/mvc/OneServlet 这一次的请求。 3. 转发地址栏没有变化,url始终是最初的 http://localhost:8080/mvc/OneServlet 。 4. 请求域中的数据不会丢失,在TwoServlet取到了OneServlet的数据`name`和`age`。