java的tomcat源码的http的session
部署:
使用的是tomcat11





配置运行:



java 源码
代码:
package com.demo.main.utils;import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpSession;public class CommonUtil {public static boolean getIsLogin(HttpServletRequest request) {HttpSession session = request.getSession();Object login = session.getAttribute("isLogin");return login != null && (boolean) login;}public static void setLogin(HttpServletRequest request, boolean isLogin) {HttpSession session = request.getSession();session.setAttribute("isLogin", isLogin);}
}
package com.demo.main.utils;import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;/*** 一个简单的 HelloServlet 示例。* 访问路径:http://localhost:8080/你的项目名/hello?name=张三*/
//@WebServlet("/hello")
public class HelloServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {// 设置响应类型和编码resp.setContentType("text/html; charset=UTF-8");req.setCharacterEncoding("UTF-8");// 获取输出流PrintWriter out = resp.getWriter();// 获取请求参数 nameString name = req.getParameter("name");if (name == null || name.trim().isEmpty()) {name = "游客qq";}// 输出 HTML 页面out.println("<!DOCTYPE html>");out.println("<html>");out.println("<head><title>Hello Servlet</title></head>");out.println("<body>");out.println("<h2>你好," + name + "!</h2>");out.println("<p>来自 Java Servlet 的动态响应QQ问问。</p>");out.println("<a href='index.jsp'>返回主页</a>");out.println("</body>");out.println("</html>");}
}
index.jsp
<%@ page import="com.demo.main.utils.CommonUtil" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>简单JSP示例</title>
</head>
<body>
<%// 使用工具类判断是否登录boolean isLogin = CommonUtil.getIsLogin(request);if (isLogin) {out.print("<h2>欢迎回来,用户!</h2>");} else {out.print("<h2>您还没有登录,正在为您自动登录...</h2>");CommonUtil.setLogin(request, true);out.print("<p>登录状态已设置为 true。</p>");}
%><h2>Hello JSP 页面!</h2>
<p>当前时间:<%= new java.util.Date() %></p><form action="hello" method="get"><input type="text" name="name" placeholder="请输入你的名字"><input type="submit" value="提交">
</form>
</body>
</html>
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>test_classmate</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>19</maven.compiler.source><maven.compiler.target>19</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><!-- Servlet API --><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>4.0.1</version><scope>provided</scope></dependency><!-- JSP 支持 --><dependency><groupId>org.apache.tomcat.embed</groupId><artifactId>tomcat-embed-jasper</artifactId><version>10.1.20</version></dependency></dependencies></project>
框架如下:

运行的url链接:
http://localhost:8080/test_classmate_Web_exploded/
运行效果:
刷新第二次出现:

使用的是tomcat11
只有tomcat11适合这些导入的类:
比如jakarta.servlet。
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpSession;
