源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

servlet重定向详解(八)

  • 时间:2020-03-27 03:18 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:servlet重定向详解(八)
本文实例为大家分享了servlet重定向的具体内容,供大家参考,具体内容如下 [b]1.重定向是什么?[/b]   这里说的重定向是由http协议规定的一种机制。其工作流程如下所述。   (1)客户端发起http请求,访问服务器端组件。   (2)服务器端返回一个状态代码为302的响应结果。该代码的意思是让浏览器再访问另一个组件,响应结果中包含着访问新组件的url地址。新的访问组件可能在同一个应用中也可能不在同一个应用中。   (3)当浏览器接受到这种结果,会自动访问新的url.   (4)浏览器端接受新的url返回结果。 [b]2.实现[/b]   重定向通过Servlet API 中HttpServletReponse接口提供的 sendRedirect(String location)方法完成。 [b]3.重定向特点[/b]   3.1 servlet源组件的响应结果不会返回到客户端。   3.2  servlet源组件和目标组件不会共享同一个ServletRequest对象。   3.3 如果源组件在进行重定向前提前提交响应结果,会报异常。        3.4 重定向的地址不必是同一个服务器的应用。 [b]4.案例[/b] 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();



 }
}

[img]http://files.jb51.net/file_images/article/201709/201709301537298.png[/img] 控制台输出结果: [img]http://files.jb51.net/file_images/article/201709/201709301537309.png[/img] 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程素材网。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部