Servlet学习(八):请求转发(两个servlet程序的交互)

简介: Servlet学习(八):请求转发(两个servlet程序的交互)

请求转发的流程图:

20210724233039349.png


具体代码:


Servlet1.java

package demo01;
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;
/**
 * 用于实现请求转发
 */
public class Servlet1 extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String username = request.getParameter("username");
        System.out.println("在servlet1中查看参数:"+username);
//        给材料盖个章,并传递到servlet2中查看
        request.setAttribute("key1","柜台1的章");
        //  请求转发必须以/打头
        RequestDispatcher requestDispatcher = request.getRequestDispatcher("/servlet2");
        requestDispatcher.forward(request,response);
    }
}


Servlet2.java:

package demo01;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
 * 用于实现请求转发
 */
public class Servlet2 extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String username = request.getParameter("username");
        System.out.println("在servlet2中查看材料:"+username);
        Object key1 = request.getAttribute("key1");
        System.out.println("柜台1是否有章:"+key1);
        //然后可以处理自己的业务
    }
}


最主要的是setAttribute()和getAttribute()方法

setAttribute()相当于将值作为参数绑定给request,然后再在Servlet2中获取。

相关文章
|
6月前
|
小程序 Java 应用服务中间件
【JavaWeb学习】—Servlet(十三)
【JavaWeb学习】—Servlet(十三)
|
1月前
|
安全 Java 网络安全
Servlet 教程 之 Servlet 客户端 HTTP 请求 2
Servlet教程介绍了如何在Servlet中处理HTTP请求,包括获取Cookie、头信息、参数、Session等。方法如:`getCookies()`、`getAttributeNames()`、`getHeaderNames()`、`getParameterNames()`等。还能获取身份验证类型、字符编码、MIME类型、请求方法、远程用户信息、URL路径、安全通道状态以及请求内容长度等。此外,可通过`getSession()`创建或获取Session,并以`Map`形式获取参数。
32 8
|
15天前
|
API
servlet研究学习总结--OutputStream和PrintWriter的区别
servlet研究学习总结--OutputStream和PrintWriter的区别
17 1
|
1月前
|
前端开发 JavaScript Java
七个步骤, 编写一个 Servlet 的 HelloWorld 程序
七个步骤, 编写一个 Servlet 的 HelloWorld 程序
12 0
|
1月前
|
XML 前端开发 JavaScript
前端与Servlet交互 详解
前端与Servlet交互 详解
|
1月前
|
设计模式 存储 前端开发
Java从入门到精通:2.2.1学习Java Web开发,了解Servlet和JSP技术,掌握MVC设计模式
Java从入门到精通:2.2.1学习Java Web开发,了解Servlet和JSP技术,掌握MVC设计模式
|
9月前
|
缓存 Java 数据库
Servlet 处理请求的原理
Servlet 处理请求的原理
178 0
|
11月前
|
关系型数据库 MySQL 应用服务中间件
tomcat与servlet程序出现乱码的解决方法(已解决)
tomcat与servlet程序出现乱码的解决方法(已解决)
79 0
|
1月前
|
Java 编译器 应用服务中间件
5:Servlet程序-Java Web
5:Servlet程序-Java Web
18 1
|
1月前
|
Web App开发 前端开发 JavaScript
AJAX POST请求中参数以form data和request payload形式在servlet中的获取方式
AJAX POST请求中参数以form data和request payload形式在servlet中的获取方式
40 0