浅谈JavaWeb项目请求路径问题
文章目录
全局重点
请求转发和重定向的相对路径和页面是一样的,都是相对当前目录进行请求。
请求转发和重定向的绝对路径:
请求转发的绝对路径 就在你的项目下 /
重定向的绝对路径和页面的是一样的 ,都是在tomcat的端口下。
1. JavaWeb(Servlet)项目处理请求过程
- 客户端发送 HTTP 请求到服务器。请求可以是 GET 请求或 POST 请求,包括请求的 URL、请求头和请求体中的数据。
- Web 服务器接收到请求后,根据配置文件或注解,将请求路由到对应的 Servlet 类。
- Servlet 容器(如 Tomcat)根据调度算法选择一个线程来处理该请求。
- Servlet 容器创建一个 HttpServletRequest 对象和一个 HttpServletResponse 对象,并将它们作为参数传递给 Servlet 的
service()
方法。- 在
service()
方法中,根据请求类型(如 GET 或 POST),Servlet 调用相应的方法(doGet()
、doPost()
等)进行请求处理。- 在处理请求期间,可以使用 HttpServletRequest 对象获取请求的信息,如请求参数、请求头、会话信息等。
- Servlet 可以与其他组件(例如数据库、其他服务)进行交互,执行相应的业务逻辑。
- 在处理完请求后,Servlet 使用 HttpServletResponse 对象设置响应的状态码、响应头和响应正文等。
- Servlet 容器将生成的响应发送回客户端。
- 客户端收到响应后,根据响应的内容进行相应的处理,例如显示页面或执行其他操作。
2. 常用请求方式
form表单发送请求。
<html> <head> <title>$Title$</title> </head> <body> <form action="abs"> <input type="submit"/> </form> </body> </html>
a标签href超链接请求。
<html> <head> <title>$Title$</title> </head> <body> <a href="abs">a链接</a> </body> </html>
3. 项目访问路径
- 当创建一个项目web003并设置其项目路径/web003。
- 打开浏览器默认访问路径为:http://localhost:8080/web003/
4. 表单请求
表单访问规则:
绝对路径
/xxx:表示在8080端口下进行访问xxx
例如:当前目录为:http://localhost:8080/web003/index.jsp
在表单中form action = “/xxx”
访问结果为: http://localhost:8080/xxx
相对路径
xxx:表示在当前目录下再进行访问xxx
例如:当前目录为:http://localhost:8080/web003/index.jsp
在表单中form action = “xxx”
访问结果为: http://localhost:8080/web003/xxx
4.1 绝对请求
- 表单请求:/abs
<%--
Created by IntelliJ IDEA.
User: ming's
Date: 2023/8/10
Time: 23:10
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
$END$
<a href="index.jsp">a链接</a>
<form action="/abs">
<input type="submit"/>
</form>
</body>
</html>
- servlet响应请求
package servlet;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;
@WebServlet(value = "/abs")
public class AbsServlet extends javax.servlet.http.HttpServlet {
protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
//request.getRequestDispatcher("1.jsp").forward(request,response);
System.out