请求内部转发与重定向区别

摘要:
System.out.println(req.getParameter(“uname”));System.out.println(req.getParameter(“pwd”));IOException{//获取用户数据System.out.println(req.getParameter(“uname”)+“------tr.action”);

1.请求内部转发

    使用:req.getRequestDispatcher("uri").forward(reqresp);
 
    1、多个Servlet共享一个request对象(重点)
    2、一次请求,当转发结束的时候也就是业务处理完毕的时候request对象会被销毁
    3、地址栏不改变
    注意在执行转发完毕后会继续执行代码,但是没有意义,所以一般在转发后面加return
    4、request对象的作用域(重中之重)
            作用域:共享request对象的Servlet
            作用域中存取数据:
                        req.setAttribute(key,value)
                        req.getAttribute(key)

                        req.removeAttribute(key)

请求内部转发实例演示

  1. @Override
  2. protectedvoid service(HttpServletRequest req,HttpServletResponse resp)
  3. throws ServletException,IOException{
  4. //设置响应编码格式
  5. resp.setCharacterEncoding("utf-8");
  6. resp.setContentType("text/html;charset=utf-8");
  7. //设置请求字符编码格式
  8. req.setCharacterEncoding("utf-8");
  9. //请求转发(获取用户数据):
  10. System.out.println(req.getParameter("uname"));
  11. System.out.println(req.getParameter("pwd"));
  12. //开始请求转发
  13. req.setAttribute("405","听说支付宝要收费了,赶紧给我转账");
  14. req.getRequestDispatcher("tr.action").forward(req, resp);
  15. //开始重定向
  16. resp.sendRedirect("http://www.baidu.com");
  17. return;
  18. }
  1. @Override
  2. protectedvoid service(HttpServletRequest req,HttpServletResponse resp)
  3. throws ServletException,IOException{
  4. //获取用户数据
  5. System.out.println(req.getParameter("uname")+"-----tr.action");
  6. System.out.println(req.getParameter("pwd")+"-----tr.action");
  7. System.out.println(req.getAttribute("405"));
  8. resp.getWriter().write("哈哈");
  9. }
 
2.重定向
            使用:resp.sendRedirect("uri");
            特点:
                地址栏改变
                两次请求,两个request对象
 
 
3.重定向/请求转发时参数URI问题
3.1重定向
项目目录                                             
 
请求内部转发与重定向区别第1张             
main.jsp               
请求内部转发与重定向区别第2张
 
在main.jsp中进行重定向
response.sendRedirect("/login.jsp")-->代表localhost:8080/login.jsp
response.sendRedirect("login.jsp")-->代表localhost:8080/Admin/login.jsp
response.sendRedirect("checkOper")-->代表localhost:8080/Admin/checkOper
response.sendRedirect("/checkOper")-->代表localhost:8080/checkOper
response.sendRedirect("/Exercise_Jsp/login.jsp")-->代表localhost:8080/Exercise_Jsp/login.jsp
response.sendRedirect("/Exercise_Jsp/checkOper")-->代表localhost:8080/Exercise_Jsp/checkOper
 
3.2请求转发
checkOper中转到Oper下的selectAll.jsp
请求内部转发与重定向区别第3张
 
 

请求内部转发和重定向图解

请求内部转发与重定向区别第4张

总结:

请求转发是一次请求,地址栏不改变,多个Sevrlet共享一个request
重定向是两次请求,地址栏改变,两个request对象
 
 
 
 
 
 
 
 
 
 
 

免责声明:文章转载自《请求内部转发与重定向区别》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇jar文件放在桌面上双击启动不了,但放在其它任何文件夹里都可以双击启动Android Monkey压力测试使用下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

用友GRP-u8 XXE 漏洞复现

0x00 漏洞描述  用友GRP-u8存在XXE漏洞,该漏洞源于应用程序解析XML输入时没有进制外部实体的加载,导致可加载恶意外部文件。 0x01 漏洞利用条件 无需登录 0x02 漏洞复现 POC: POST /Proxy HTTP/1.1 Content-Type: application/x-www-form-urlencoded User-Age...

关于php使用xpath解析html中文乱码问题

1 $str2 = '<div id="content">我很好 </div>'; 2 $dom = new DOMDocument(); 3 //load之前强转字符编码 4 $str2 = mb_convert_encoding($str2 ,'HTML-ENTITIES',"UTF-8"); 5 $dom-&...

C语言集锦(三)Direct3D和GDI+的例子

0.前言   有些时候你可能想了解,如何用纯C语言来写Direct3D和GDI+的Demo。注意,下面的Direct3D例子不适用于TCC编译器,GDI+的例子是可以的。 1.Direct3D C语言的例子   几乎所有的D3D例子都是用COM和C++写的。C语言可以用D3D吗,StackOverflow上给出了答案:directx-programming...

JS实现 Tab栏切换案例

要求:当鼠标点击上面相应的选项卡(tab),下面页面的内容也随之而改变。 结构分析:   全部的内容都放到一个大的盒子里面,盒子里面又可以分为上面和下面两个盒子。   上面的盒子放了 5个li,装着5个小的选项卡,默认会有一个被选中;   下面的盒子也包含了 5个 div 模块,模块内容与上面的选项一一对应,当前默认的只有第一个 div会被显示出来。 实现...

ERROR 1366 (HY000): Incorrect string value: &amp;amp;#39;xE9x83x91xE5xB7x9E&amp;amp;#39; for column &amp;amp;#39;aa&amp;amp;#39; at row 1 MySQL 字符集

ERROR 1366 (HY000): Incorrect string value: 'xE9x83x91xE5xB7x9E' for column 'aa' at row 1创建表之后不能插入中文字符?为啥呢?了解字符集的重要性。它必须在建库之前要确定好,恢复备份时也需要注意 mysql> use testDatabase changedmysq...

arcgis javascript api学习6

Class: ImageParameters   Description Represents the image parameter options used when calling ArcGISDynamicMapServiceLayer.exportMapImage, Geoprocessor.getResultImage, and Geopr...