Servlet入门介绍第四章——Servlet中的请求转发、包含、重定向

本文介绍了Servlet中的请求转发和重定向。请求转发在同一个请求内共享ServletRequest和ServletResponse对象,而重定向会导致两个独立的请求,数据不共享。文中通过实例展示了如何使用RequestDispatcher进行请求转发,并解释了包含(include)的概念,以及重定向的工作原理。
摘要由CSDN通过智能技术生成

接下来介绍Servlet中另外重要知识点——请求转发、包含。

请求转发:Servlet(源组件)先对客户请求做一些预处理操作(数据处理),然后把请求转发给其他Web组件(目标组件,可以是Servlet、Jsp、Html等)来完成包括生成响应结果在内的后续操作。

请求转发:Servlet(源组件)先对客户请求做一些预处理操作(数据处理),然后把请求转发给其他Web组件(目标组件,可以是Servlet、Jsp、Html等)来完成包括生成响应结果在内的后续操作。

示意图:

这里写图片描述

这里写图片描述

两者的共同点:
(1)、源组件和目标组件处理的都是同一客户请求,源组件和目标组件共享同一个ServletRequest和ServletResponse对象;
(2)、目标组件可以为Servlet、JSP或者html文档;
(3)、都依赖于javax.servlet.RequestDispatcher接口

这边提到一个接口javax.servlet.RequestDispatcher,先来看它的定义:
这里写图片描述

Javax.servlet. RequestDispatcher接口表示请求分发器,它有两个方法:
(1)、forword():把请求转发给目标组件:
Public void forward(ServletRequest req,ServletResponse res)throws ServletException,java.io.IOException
(2)、include():包含目标组件的响应结果:
Public void forward(ServletRequest req,ServletResponse res)throws ServletException,java.io.IOException

结合实例来解释,定义一个ForwardServlet,具体代码如下:

package com.java.web.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ForwardServlet extends HttpServlet{
   
    private static final long serialVersionUID = 674344393733876756L;

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {  
        //设置编码
        req.setCharacterEncoding("UTF-8");
        resp.setCharacterEncoding("UTF-8");

        //获取参数值
        String username = req.getParameter("username");
        //将username存储到request(请求)范围内
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值