当前位置: 首页 > 编程笔记 >

servlet重定向详解(八)

东门新立
2023-03-14
本文向大家介绍servlet重定向详解(八),包括了servlet重定向详解(八)的使用技巧和注意事项,需要的朋友参考一下

本文实例为大家分享了servlet重定向的具体内容,供大家参考,具体内容如下

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();



 }
}

控制台输出结果:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 主要内容:重定向的工作流程,转发和重定向的区别,response.sendRedirect(),示例重定向属于客户端行为。服务器在收到客户端请求后,会通知客户端浏览器重新向另外一个 URL 发送请求,这称为请求重定向。它本质上是两次 HTTP 请求,对应两个 request 对象和两个 response 对象。 重定向的工作流程 重定向的工作流程如下: 用户在浏览器中输入 URL,请求访问服务器端的 Web 资源。 服务器端的 Web 资源返回一个状态码为 302 的响应信息,该响应的含义为:通

  • 当文档移动到新的位置,我们需要向客户端发送这个新位置时,我们需要用到网页重定向。当然,也可能是为了负载均衡,或者只是为了简单的随机,这些情况都有可能用到网页重定向。 重定向请求到另一个网页的最简单的方式是使用 response 对象的 sendRedirect() 方法。下面是该方法的定义: public void HttpServletResponse.sendRedirect(String

  • 这里我想使用RequestDispatcher从servlet调用jsp页面,问题是在jsp代码中调用java代码没有问题,问题是html代码不起作用 下面是代码: 重定向servlet。爪哇: showReportt_arb。jsp: 在上面的逻辑中,java代码显示在服务器控制台中,但html代码没有显示。请帮我解决这个问题

  • 我有2个问题 1)我有一个login.jsp页和索引页。一旦我验证了用户(在servlet ie中),用户将被重定向到index.jsp页面。我用servlet的这条线重定向它 这个过程运行良好。但是当我刷新页面时,我会被重定向回登录页面。另外,我注意到在index.jsp页面上,我得到的名字而不是index.jsp,即我的servlet名称得到displayed.for这样的例子得到代替显示 2

  • 我有一个servlet过滤器类。在doFilter函数中,我希望在chain.doFilter(请求,响应)调用之后重定向到一个自定义URL。

  • 本文向大家介绍linux shell数据重定向(输入重定向与输出重定向)详细分析,包括了linux shell数据重定向(输入重定向与输出重定向)详细分析的使用技巧和注意事项,需要的朋友参考一下 在了解重定向之前,我们先来看看linux 的文件描述符。 linux文件描述符:可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以实现文件的读写操