请求的转发
什么是请求的转发?
请求转发是指,服务器收到请求时,从一次资源转到另一个资源的操作叫做请求转发。
部分代码
// 获取请求的参数(办事的材料)查看 String username=req.getParameter("username"); System.out.println("在Servlet1(柜台1)中查看参数(材料)"+username); // 给材料 盖一个章,并传递到servlet2(柜台2)去查看 req.setAttribute("key1","柜台1的章"); // 问路,servlet2(柜台2)怎么走 /* * 请求转发必须以斜杠打头, / 斜杠表示地址为:http://ip:port/工程名/ ,映射到idea代码的web目录 **/ RequestDispatcher requestDispatcher=req.getRequestDispatcher("/Servlet2"); // 走向servlet2(柜台2) requestDispatcher.forward(req,resp);
// 获取请求的参数(办事的材料)查看 String username=req.getParameter("username"); System.out.println("在Servlet2(柜台2)中查看参数(材料)"+username); // 查看 柜台1 是否有盖章 Object key1=req.getAttribute("key1"); System.out.println("柜台1是否有章"+key1); // 处理自己的业务 System.out.println("Servlet2 处理自己的业务");
实现功能
也可以直接用网址传值
请求转发的特点
1、浏览器地址栏没有变化
2、请求转发虽然访问了两个资源,但这是一次请求
3、他们共享Request域中的数据
requestDispatcher.forward(req,resp);//这句代码接收
4、可以转发到WEB-INF目录下(转发可以实现,但浏览器不可以实现)
/* * 请求转发必须以斜杠打头, / 斜杠表示地址为:http://ip:port/工程名/ ,映射到idea代码的web目录 **/ RequestDispatcher requestDispatcher=req.getRequestDispatcher("/WEB-INF/form.html");
5、是否可以访问工程以外的资源————❌
【相当于直接在 http://ip:port/ 后面加地址,所以访问不到 】
标签:username,请求,柜台,req,详解,斜杠,转发,Servlet,Javaweb From: https://www.cnblogs.com/gbrr/p/17067486.html