Servlet的应用---重定向和请求分配
来源:互联网 发布:做淘宝客服对眼睛好吗 编辑:程序博客网 时间:2024/06/05 07:05
Servlet的应用---重定向和请求分配
1.重定向和请求分派
(1)请求的重定向
HttpServletResponset接口提供的sendRedirect()方法用于生成302响应码和Location响应头,从而通知客户端去重新访问Location响应头中指定的URL,其完整的定义语法如下:
public void sendRedirect(String location) throwsIOException;
其中的location参数指定了重定向的URL,它可以使用绝对URL和相对URL,Servlet容器会自动将相对URL转换成绝对URL后,再生成location头字段。
重定向的例子 response.sendRedirect(“secuse“);
注:重定向是两个servlet类结合而使用的,即是两次向服务器提交请求。一个servlet类不能完成操作,当用户运行到 sendRedirect()时,会生成302响应码,意思是再次提交请求,在localtion的url的带领下,去访问secuess的servlet类,从而完成实现,但是在secuess中不能再次提交request的请求,否则返回的是null。因为每一次请求都是独一的。
(2)请求的分派
1.Servlet API中定义了一个RequestDispatcher接口,俗称请求分派器。它定义了如下两个方法:
(1)public voidforward(ServletRequest request, ServletResponse response) throwsServletException,IOException;
(2)public voidinclude(ServletRequest request, ServletResponse response) throwsServletException,IOException
2.请求的转发:
调用ServletContext接口提供的getRequestDispatcher(Stringurl)方法。
调用ServletRequest接口提供的getRequestDispatcher(Stringurl)方法
3.例子:
RequestDispatcher rd =request.getRequestDispatcher("fail");
//请求的转发,向前 ------------ 一个请求对象
rd.forward(request, response);
//请求的转发
rd.include(request, response);
forwrod和include的区别:forword是在页面跳转之后直接输出,不会再返回,而include则是把我当前的目录包含,输出
(3)两者比较:
1.请求转发只能是同一个web站点
重定向不仅可以定向到当前的web程序,还可以访问其他的站点的资源
2. 重定向在完成操作后,地址栏会发生变化,由初始的URL地址变成重定向的目标URL
请求转发过程结束后,浏览器地址栏保持初始的URL地址不变。
3.请求分派的发起者和被调用者之间共享相同的request实例和response实例,它们属于同一个“请求/响应”过程;而重定向的发起者和被调用者使用各自的request实例和response实例,它们各自属于独立的“请求/响应”过程
(4)利用请求域获取属性传递对象数据
HttpServletRequest接口中提供了几个方法用来操作请求实例中存储的对象:
– public voidsetAttribute(String name, Object obj):将对象存储进HttpServletRequest实例中。
– public ObjectgetAttribute(String name):检索存储在HttpServletRequest实例中的对象。
– publicEnumeration getAttributeNames():返回包含HttpServletRequest实例中的所有属性名的Enumeration对象
例子:
设置:
request.setAttribute("var1", "var1");
request.setAttribute("var2","var3");
读取:
//枚举类型的获取
Enumerationenum1 = request.getAttributeNames();
//获取每一个名称所对应的值
while(enum1.hasMoreElements()){
//得到属性的名称
String s= (String)enum1.nextElement();
//得到属性的值
String var = (String)request.getAttribute(s);
System.out.println(s+"::"+var);
}
(5) ServletConfig和servletContext
系统在创建servlet实例之前,先读取xml文件,并封装给ServletConfig对象,来进行初始化
<!-- 在部署文件xml中必须有两个标签,分别为《servlet》和《servlet-map》
<servlet-mapping>
<servlet-name>FirstServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
*.do是可以把访问的名字随便写
-->
servletConfig对象封装了web.xml初始化的值
- Servlet的应用---重定向和请求分配
- Servlet的应用---重定向和请求分配
- Servlet的应用---重定向和请求分配
- Servlet的应用---重定向和请求分配
- servlet的重定向和请求转发
- Servlet的请求转发和重定向
- servlet的请求转发和重定向
- servlet的请求转发和重定向
- servlet的请求转发和请求重定向的理解
- Servlet请求转发和请求重定向之间的区别
- Servlet应用中重定向与请求转发的区别
- Servlet中,重定向和请求分派的区别!!!
- servlet小结 请求转发和重定向的区别
- Servlet技术-请求转发,重定向和包含的关系
- servlet请求转发和重定向的区别
- Servlet的请求转发和重定向转发
- servlet中的请求转发和重定向的路径问题
- Servlet请求重定向
- 用MyEclipse写JSP文件时,光标经常会乱跑的问题解决方案
- XML解析
- AJAX实现异步
- JSP的指令、和脚本元素
- ListCtrl中垂直滚动条自动滚动 .
- Servlet的应用---重定向和请求分配
- Velocity浅析及与Jsp、Freemarker对比
- ASP.net 中Queue,Stack,Hashtable,Sortlist一些简单用法
- Session应用--用servlet写一次性验证码
- Response应答对象:
- Servlet的应用---ServletConfig和ServletContext
- 自定义标签入门
- 椭圆拟合的函数式子以及绘制外接矩形
- Servlet的应用--Referer请求和参数传递