您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
07-Request请求转发(servlet转发及webapp目录下的资源转发)
发布时间:2024-11-29 21:12:07编辑:雪饮阅读()
-
请求转发支持转发webservlet注解的url以及webapp目录下面的其它资源。
浏览器地址栏路径不发生变化。只能转发到当前服务器内部资源。一次请求可以在转发资源期间使用request共享数据。
先实现一个转发发起的servlet
package com;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
@WebServlet("/HttpServlet14")
public class HttpServlet14 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//转发前可以设置要携带的数据
req.setAttribute("msg","kasumi");
//getRequestDispatcher可以转发请求,接收一根WebServlet注解的url参数进行转发
req.getRequestDispatcher("/HttpServlet15").forward(req,resp);
}
}
然后转发接收的servlet
package com;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/HttpServlet15")
public class HttpServlet15 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//getRequestDispatcher还可以转发除了Servlet以外的在当前项目中webapp中的其它资源
System.out.println("msg:"+req.getAttribute("msg"));
req.getRequestDispatcher("/index5.html").forward(req,resp);
}
}
然后我们访问如http://localhost:8081/servlet01/HttpServlet14
就可以在浏览器看到index5.html的内容,并且控制台中收到了携带的msg的值。
关键字词:Request,servlet,webapp,转发,资源,请求
相关文章
- 05-请求参数中文乱码-POST解决方案
- 04-Idea模板创建Servlet(快速创建servlet及快速创建se
- 03-Request通用方式获取请求参数(servlet在get请求与p
- 02-Request获取请求数据-请求行&请求头&请求体
- 01-Request和Response介绍&Request继承体系(获取get请
- 16-XML配置Servlet(路由)
- 15-urlPattern配置(WebServlet注解配置各种url访问路
- 14-Servlet方法介绍
- 13-Servlet方法介绍&体系结构(HttpServlet的使用)
- 12-Servlet执行流程&生命周期(init、service、destroy