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

service方法重定向和请求转发

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

service方法重定向和请求转发

1.service方法处理请求/响应

对于每一个HTTP请求,servlet容器会创建一个封装了HTTP请求的ServletRequest实例传递给servlet
的service方法,ServletResponse则表示一个Servlet响应,其隐藏了将响应发给浏览器的复杂性。
通过ServletRequest的方法你可以获取一些请求相关的参数,而ServletResponse则可以将设置一些返
回参数信息,并且设置返回内容。
a.HttpServlet中的service方法:
b. 常用方法
Request对象:接口封装了客户请求信息,如客户请求方式、参数、客户使用的协议、以及发出请求的远程主机信息等,其主要方法:
HttpServletResquest常用方法:

req.getParameter(String); //根据名字获取参数的值:表单中的参数,地址栏中的参数
req.getParameterValues(String);//根据名字获取一组参数的值(复选框)
req.getParameterMap()://获得一个Map对象,所有的参数值都放在字符串数组
中
req.getAttribute(String);//根据名字获取属性的值
req.setAttribute(String,Object);//根据属性设置值
req.getRequestDispatcher(String);//请求转发器
req.setCharacterEncoding("utf-8"); //设置请求的编码方式

Response对象:接口封装了服务器响应信息,主要用来输出信息到客户端浏览器,其主要方法:
HttpServletResponse常用方法:

Response.setContentType("text/html;charset=utf-8");设置响应的内容类型
PrintWriter response.getWriter();//获得响应的输出流
response.sendRedirect(redirect);//重定向到指定的网址

2.请求转发跟重定向的区别?
请求转发,服务器转发:地址栏不会发生改变,在服务器端完成,效率高。携带数据可以在Servlet之间进行传递。

//请求转发,服务器转发
request.setAttribute("msg","欢迎你登陆成功");//request存储数据
request.getAttribute("msg"); //request对象获取数据
request.getRequestDispatcher("/welcomeServlet").forward(request,response);

客户端重定向:客户端重新发送新的请求,无法携带数据。地址栏会发生改变。

//客户端重定向
//服务器会向客户端浏览器发送一个响应:url, 客户端会重新请求该URL
request.setAttribute("msg","欢迎你登陆成功");//request存储数据
request.getAttribute("msg"); //request对象获取数据
response.sendRedirect("/login.html");

转发使用的是req.getRequestDispatcher()方法;重定向使用的是resp.sendRedirect();
转发:浏览器URL的地址栏不变。重定向:浏览器URL的地址栏改变;
转发是服务器行为,重定向是客户端行为;
转发是浏览器只做了一次访问请求。重定向是浏览器做了至少两次的访问请求;
转发2次跳转之间传输的信息不会丢失,重定向2次跳转之间传输的信息会丢失(request范围);

转发和重定向的选择

  1. 重定向的速度比转发慢,因为浏览器还得发出一个新的请求,如果在使用转发和重定向都无所谓的
    时候建议使用转发。
  2. 因为转发只能访问当前WEB的应用程序,所以不同WEB应用程序之间的访问,特别是要访问到另外
    一个WEB站点上的资源的情况,这个时候就只能使用重定向了
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/362134.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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