你的位置:首页 > 软件开发 > Java > servlet 重定向(八)

servlet 重定向(八)

发布时间:2017-09-28 22:00:22
1.重定向是什么?  这里说的重定向是由http协议规定的一种机制。其工作流程如下所述。  (1)客户端发起http请求,访问服务器端组件。  (2)服务器端返回一个状态代码为302的响应结果。该代码的意思是让浏览器再访问另一个组件,响应结果中包含着访问新组件的url地址。新的访 ...

1.重定向是什么?

  这里说的重定向是由http协议规定的一种机制。其工作流程如下所述。

  (1)客户端发起http请求,访问服务器端组件。

  (2)服务器端返回一个状态代码为302的响应结果。该代码的意思是让浏览器再访问另一个组件,响应结果中包含着访问新组件的url地址。新的访问组件可能在同一个应用中也可能不在同一个应用中。

  (3)当浏览器接受到这种结果,会自动访问新的url.

  (4)浏览器端接受新的url返回结果。

2.实现

  重定向通过Servlet API 中HttpServletReponse接口提供的 sendRedirect(String location)方法完成。

3.重定向特点

  3.1 servlet源组件的响应结果不会返回到客户端。

  3.2  servlet源组件和目标组件不会共享同一个ServletRequest对象。

  3.3 如果源组件在进行重定向前提前提交响应结果,会报异常。

       3.4 重定向的地址不必是同一个服务器的应用。

4.案例

Check1Servlet 第一次请求的类
package com.learn;import javax.servlet.RequestDispatcher;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;import java.io.PrintWriter;/** * Created by Administrator on 2017/09/28. */public class Check1Servlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {  String userName = req.getParameter("name");  String message = "";  if(userName == null){   message = "please input your name";  } else {   message = userName;  }  req.setAttribute("mess",message);  PrintWriter out = resp.getWriter();  out.print("before redirect ");  System.out.println("before redirect");  resp.sendRedirect("out1?mess="+message);  out.print("after redirect");  System.out.println("after redirect");  out.close(); }}
Out1Servlet 重定向的类
package com.learn;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;import java.io.PrintWriter;/** * Created by Administrator on 2017/09/28. */public class Out1Servlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {  String mess = (String) req.getAttribute("mess");  System.out.println("请求范围内的数据:"+mess);  mess = req.getParameter("mess");  System.out.println("请求参数中的:"+mess);  PrintWriter out = resp.getWriter();  out.write(mess);  out.close(); }}

页面输出结果:

servlet 重定向(八)

控制台输出结果:

servlet 重定向(八)

 

 

  

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:servlet 重定向(八)

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录