Request

  1. Request 原理
    1. servlet实实现类:
    2. 访问路径
  2. 请求转发
    1. 使用转发资源
    2. 被转发资源
    3. 运行结果

Request 原理

servlet实实现类:

1
2
3
4
5
6
7
@WebServlet("/request")
public class Request01 extends HttpServlet {

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,
}
}

访问路径

·注:虚拟路径设置为‘/’

1
http://localhost:8080/request
  1. tomcat 服务器会通过请求路径中的资源路径‘/request’,创建对应的Request01的对象。
  2. tomcat 服务器会创建request 和 response对象,
  3. request 里封装请求的数据和信息
  4. response 里封装响应消息
  5. tomcat 将request 和 response 通过service方法传给service并调用service方法

请求转发

  1. 创建使用转发资源
  2. 创建被转发资源
  3. 运行查看结果

使用转发资源

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package com.forwordRequest;

import javax.servlet.RequestDispatcher;
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("/forword01")
public class Forword01 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("Forword01+post");
this.doGet(request,response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("Forword01+get");
request.getRequestDispatcher("/forword02").forward(request,response);
}
}

被转发资源

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package com.forwordRequest;

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( "/forword02")
public class Forword02 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("Forword02被转发+post");
this.doGet(request,response);
}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("Forword02被转发+get");
}
}

运行结果

访问路径:

1
http://localhost:8080/forword01

运行结果:

1
2
Forword01+get
Forword02被转发+get

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 jaytp@qq.com

×

喜欢就点赞,疼爱就打赏