Servlet学习——请求跳转和重定向

简介: Servlet学习——请求跳转和重定向

请求跳转

服务器端的一种跳转方式

req.getRequestDispatcher("跳转到的路径").forward(req,resp);

特点

 地址栏不会发生改变

 服务端(一般就指浏览器)行为

 请求跳转只有一次请求

 数据在request作用域中可以共享

 绝地地址定位到站点后

重定向

客户端的一种跳转方式

resp.sendRedirect("跳转到的路径");

特点

 地址栏发生变化

 客户端行为

 两次请求

 数据在两个request作用域中不共享

 绝对地址可写到http://

简而言之,就像买东西一样 我是买衣服的 但你要找我买零食

我去别的地方买 然后发给你 这个叫请求转发

我把你想要的东西的商家推给你(地址栏发生变化) 而你去和那个商家的聊天内容我并不会知道(request不共享)这个叫重定向

(对上面特点中绝对地址的解释:请求转发的地址只能跳转到当前项目的资源,而重定向可以跳转到任何资源)

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/Servlet11")
public class Servlet11 extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("Servlet11==================");
//        设置作用域
        String admin = "sb";
        req.setAttribute("admin",admin);
//        请求转发 服务器端req跳转
//        req.getRequestDispatcher("index_Servlet10.jsp").forward(req,resp);
//        重定向 客户端resp跳转
//        resp.sendRedirect("index_Servlet10.jsp");
//        路径问题(跳转到百度)
//        req.getRequestDispatcher("https://www.baidu.com").forward(req,resp);
//        HTTP状态 404 - 未找到
//        resp.sendRedirect("https://www.baidu.com");
//        可以找到
//        请求转发的地址只能跳转到当前项目的资源,而重定向可以跳转到任何资源
    }
}
相关文章
|
9月前
|
XML Java 数据格式
Servlet 教程 之 Servlet 客户端 HTTP 请求 3
该教程展示了如何在Servlet中处理客户端HTTP请求,特别是获取HTTP头信息。示例代码创建了一个名为`DisplayHeader`的Servlet,它扩展了`HttpServlet`并重写了`doGet`方法。在`doGet`中,使用`HttpServletRequest`的`getHeaderNames()`遍历所有头部,显示其名称和对应值。Servlet在TomcatTest项目下,通过`web.xml`配置映射到`/TomcatTest/DisplayHeader`路径。
80 14
|
小程序 Java 应用服务中间件
【JavaWeb学习】—Servlet(十三)
【JavaWeb学习】—Servlet(十三)
|
9月前
|
安全 Java 网络安全
Servlet 教程 之 Servlet 客户端 HTTP 请求 2
Servlet教程介绍了如何在Servlet中处理HTTP请求,包括获取Cookie、头信息、参数、Session等。方法如:`getCookies()`、`getAttributeNames()`、`getHeaderNames()`、`getParameterNames()`等。还能获取身份验证类型、字符编码、MIME类型、请求方法、远程用户信息、URL路径、安全通道状态以及请求内容长度等。此外,可通过`getSession()`创建或获取Session,并以`Map`形式获取参数。
72 8
|
5月前
|
JavaScript Java 容器
servlet过滤器Filter简要回顾-过滤请求字符编码,/和/*和/**的区别
本文简要回顾了Servlet过滤器Filter的概念和使用,通过实例演示了如何创建过滤器以过滤请求字符编码,并解释了在web.xml中配置过滤器时使用`/`、`/*`和`/**`的区别。
servlet过滤器Filter简要回顾-过滤请求字符编码,/和/*和/**的区别
|
8月前
|
API
servlet研究学习总结--OutputStream和PrintWriter的区别
servlet研究学习总结--OutputStream和PrintWriter的区别
301 1
|
9月前
|
负载均衡
Servlet 教程 之 Servlet 网页重定向 1
Servlet教程展示了如何实现网页重定向。使用`HttpServletResponse`的`sendRedirect()`方法或结合`setStatus()`和`setHeader()`可将请求转向新位置。示例代码创建了一个Servlet,名为`PageRedirect`,在接收到请求时重定向至百度首页。配置`web.xml`后,通过访问`http://localhost:8080/PageRedirect`即可触发重定向。
64 6
|
缓存 Java 数据库
Servlet 处理请求的原理
Servlet 处理请求的原理
235 0
|
9月前
|
设计模式 存储 前端开发
Java从入门到精通:2.2.1学习Java Web开发,了解Servlet和JSP技术,掌握MVC设计模式
Java从入门到精通:2.2.1学习Java Web开发,了解Servlet和JSP技术,掌握MVC设计模式
102 0
|
9月前
Servlet 教程 之 Servlet 客户端 HTTP 请求 1
Servlet教程讲解了客户端HTTP请求,包括各种重要头信息:Accept(定义可处理的MIME类型)、Accept-Charset(指定字符集)、Accept-Encoding(处理的编码类型)、Accept-Language(首选语言)、Authorization(身份验证)、Connection(是否支持持久连接)、Content-Length(POST数据大小)、Cookie(返回cookies)、Host(指定URL的主机和端口)、If-Modified-Since(检查页面更新)、If-Unmodified-Since(条件性操作)。
52 0
|
9月前
|
Web App开发 前端开发 JavaScript
AJAX POST请求中参数以form data和request payload形式在servlet中的获取方式
AJAX POST请求中参数以form data和request payload形式在servlet中的获取方式
84 0