栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

servlet请求的转发

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

servlet请求的转发

1、请求的转发

         在服务器里面资源跳转的方式。将请求再转发到其他地址,转发过程中使用的是同一个request请求,转发后浏览器地址栏内容不变。 请求转发的过程发生在服务器内部,只能从当前应用内部查找相应的转发资源,而不能转发到其它应用的资源。

转发时(共享同一个request和response),两个servlet的访问顺序,传参:
1)访问顺序: 第1个GET方式,第2个走的是doGet()。 第1个POST方式,第2个走的是doPost()。
2)在第1个servlet转发代码之后,不能再调用类似 转发或重定向 的代码。否则会500异常,因为转发之后,不能再回到此处进行跳转到别的页面
3)读取页面参数: 由于是共享同一个request,请求页面的参数在两个servlet当中都可以读取出来。---请求页面中,GET方式的参数是在地址栏中通过"?name=Jack&age=22"上传,POST方式是通过组件上传的。
4)两个servlet之间传参: 在第1个中request.setAttribute(),在第2个中request.getAttribute();

2、实现方法

     转发通过方法forward(request,response)实现,他能将request对象转发到其他的servlet程序内,它能够共享request对象里面的资源。
具体实现方式如下:
req.getRequestDispatcher("/002").forward(request,response);
通过方法setAttribute(),可以将一个servlet程序内的资源转发到另一个servlet程序内,实现资源共享。

3、实例

servlet1:

public class RequestForwardServlet extends HttpServlet {
	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/html;charset=utf-8");
		request.setAttribute("username", "周星星");
		RequestDispatcher dispatcher = request.getRequestDispatcher("/ResultServlet");
		dispatcher.forward(request, response);
	}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}

servlet2

public class ResultServlet extends HttpServlet {
	public void doGet(HttpServletRequest request,
        HttpServletResponse response)throws ServletException, IOException {
		response.setContentType("text/html;charset=utf-8");
		PrintWriter out = response.getWriter();
		// 从作用域中取出来的是对象,转为String型,再使用
		String username = (String) request.getAttribute("username");
		if (username != null) {
			out.println("转发过来的用户名是:" + username + "
"); } } public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException { doGet(request, response); } }

结果图

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/881233.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号