Java Servlet请求重定向的方法

 更新时间:2020年11月10日 12:01:17   作者:一点教程  
这篇文章主要介绍了使用Java Servlet请求重定向的方法,帮助大家更好的理解和学习Java Servlet的相关知识,感兴趣的朋友可以了解下

HttpServletResponse接口的sendRedirect()方法可用于将响应重定向到另一个资源,它可以是Servlet,Jsp或Html文件。

它接受相对和绝对URL。

它在客户端起作用,因为它使用浏览器的网址栏发出另一个请求。因此,它可以在服务器内部和外部工作。

1 转发和重定向的区别

RequestDispatcher的forward()方法与HttpServletResponse接口的sendRedirect()方法之间有很多区别。具体区别如下:

forward()方法 sendRedirect()方法
forward()方法在服务器端起作用。 sendRedirect()方法在客户端运行。
只有1个请求。转发到另一个Servlet的请求和原来请求是同一个。 每次重定向都有2个请求。重定向到另一个Servlet的请求是由浏览器重新发出的新请求。
只能转发到当前服务器内部的资源。 重定向可以请求当前服务器内部的资源或者外部服务器资源。
示例:request.getRequestDispacher("servlet2").forward(request,response); 示例:response.sendRedirect(" servlet2");

2 重定向的示例

在下面示例中,我们将请求重定向到百度。注意sendRedirect方法在客户端工作,这就是为什么我们可以将请求发送到任何地方的原因。我们可以在服务器内外发送请求。

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;


public class DemoServlet extends HttpServlet{

 public void doGet(HttpServletRequest req,HttpServletResponse res)
   throws ServletException,IOException
 {
  res.setContentType("text/html;charset=utf-8");
  PrintWriter pw=res.getWriter();

  res.sendRedirect("http://www.baidu.com");

  pw.close();
 }
}

3 重定向创建自定义百度搜索

在下面示例中,我们使用sendRedirect方法将请求与请求数据一起发送到百度服务器。

3.1 编写搜索表单

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
 <meta charset="UTF-8">
 <title>一点教程网-请求重定向案例</title>
 <meta http-equiv="content-type" content="text/html" charset="UTF-8">
</head>
<body>
<form action="search">
 <input type="text" name="name">
 <input type="submit" value="百度搜索">
</form>
</body>
</html>

3.2 编写SearchServlet

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;


public class SearchServlet extends HttpServlet{

 public void doGet(HttpServletRequest req,HttpServletResponse res)
   throws ServletException,IOException
 {
  String name=req.getParameter("name");
  res.sendRedirect("https://www.baidu.com/s?wd="+name);
 }
}

3.3 配置web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
   version="3.1">

 <servlet>
  <servlet-name>SearchServlet</servlet-name>
  <servlet-class>SearchServlet</servlet-class>
 </servlet>
 <servlet-mapping>
  <servlet-name>SearchServlet</servlet-name>
  <url-pattern>/search</url-pattern>
 </servlet-mapping>
 

</web-app>

3.4 运行测试

输入搜索关键词,点击百度搜索,效果如下:

以上就是使用Java Servlet请求重定向的详细内容,更多关于Java Servlet请求重定向的资料请关注脚本之家其它相关文章!

相关文章

  • 一文解决springboot打包成jar文件无法正常运行的问题

    一文解决springboot打包成jar文件无法正常运行的问题

    这篇文章主要介绍了一文解决springboot打包成jar文件无法正常运行的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • 解析MyBatis源码实现自定义持久层框架

    解析MyBatis源码实现自定义持久层框架

    这篇文章主要介绍了手撕MyBatis源码实现自定义持久层框架,涉及到的设计模式有Builder构建者模式、⼯⼚模式、代理模式,本文通过示例代码给大家介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • MyBatis分页的四种方式

    MyBatis分页的四种方式

    分页查询是非常常见的需求,本文主要介绍了MyBatis分页的四种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-08-08
  • Java Web三层架构的配置详解

    Java Web三层架构的配置详解

    这篇文章主要介绍了Java Web三层架构的配置方法,需要的朋友可以参考下
    2014-10-10
  • idea中写sql语句没有提示字段的问题

    idea中写sql语句没有提示字段的问题

    在IDEA中编写SQL时如果没有字段提示,通常是因为没有设置注入语言,解决方法是通过快捷键Alt+Enter选择“注入语言或引用”,然后选择相应的数据库(如MySQL),之后重新输入SQL语句即可,此方法可以有效解决IDEA中SQL语句提示问题,提高开发效率
    2024-09-09
  • Java判断用户名和密码是否符合要求过程详解

    Java判断用户名和密码是否符合要求过程详解

    这篇文章主要介绍了Java判断用户名和密码过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • Java 数组声明、创建、初始化详解

    Java 数组声明、创建、初始化详解

    本文主要介绍Java 数组声明、创建、初始化的资料,这里整理相关知识,及简单实现代码,帮助大家学习,有兴趣的小伙伴可以参考下
    2016-09-09
  • Java IO创建目录和文件实例代码

    Java IO创建目录和文件实例代码

    本篇文章给大家分享了Java IO创建目录和文件的实例代码,过程很简单,大家可以测试参考下。
    2018-02-02
  • 数组在java中的扩容的实例方法

    数组在java中的扩容的实例方法

    在本篇文章里小编给大家分享的是一篇关于数组在java中的扩容的实例方法内容,有兴趣的朋友们可以学习下。
    2021-01-01
  • Eclipse最新版使用过程中遇到的问题总结

    Eclipse最新版使用过程中遇到的问题总结

    这篇文章主要介绍了Eclipse最新版使用过程中遇到的问题总结的相关资料,本文通过图文并茂的形式给大家介绍的非常详细,具有参考借鉴价值,需要的朋友可以参考下
    2016-09-09

最新评论