当前位置: 首页 > news >正文

JAVA WEB学习2

编写登录页面(login.jsp)
在src/main/webapp下新建login.jsp(用于用户输入账号密码):
jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>

登录
账号:
密码:
步骤 2:编写登录处理 Servlet(LoginServlet.java) java 运行 package com.example.servlet;

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 javax.servlet.http.HttpSession;
import java.io.IOException;

@WebServlet("/login")
public class LoginServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 1. 解决请求参数中文乱码
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");

    // 2. 获取前端传入的账号密码String username = request.getParameter("username");String password = request.getParameter("password");// 3. 模拟登录校验(实际开发中查数据库)if ("admin".equals(username) && "123456".equals(password)) {// 登录成功:创建Session,存储用户信息HttpSession session = request.getSession();session.setAttribute("loginUser", username); // 存用户标识session.setMaxInactiveInterval(30 * 60); // 设置Session有效期:30分钟(无操作则失效)// 可选:创建Cookie存储用户名(简化下次登录)javax.servlet.http.Cookie cookie = new javax.servlet.http.Cookie("username", username);cookie.setMaxAge(7 * 24 * 60 * 60); // Cookie有效期:7天cookie.setPath("/"); // 整个项目都能访问该Cookieresponse.addCookie(cookie);// 跳转到首页response.sendRedirect(request.getContextPath() + "/index.jsp");} else {// 登录失败:返回登录页并提示response.getWriter().write("<script>alert('账号或密码错误');window.location.href='/first-web/login.jsp'</script>");}
}

}
步骤 3:编写首页(index.jsp)
jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>

首页<%// 获取Session中的用户信息String loginUser = (String) session.getAttribute("loginUser");if (loginUser == null) {// 未登录,跳转到登录页response.sendRedirect(request.getContextPath() + "/login.jsp");return;}%>

欢迎你,<%= loginUser %>!

退出登录步骤 4:编写退出登录 Servlet(LogoutServlet.java) java 运行 package com.example.servlet;

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 javax.servlet.http.HttpSession;
import java.io.IOException;

@WebServlet("/logout")
public class LogoutServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 1. 销毁Session(清除登录状态)
HttpSession session = request.getSession();
session.invalidate();

    // 2. 可选:清除Cookiejavax.servlet.http.Cookie cookie = new javax.servlet.http.Cookie("username", "");cookie.setMaxAge(0); // 设置为0表示删除该Cookiecookie.setPath("/");response.addCookie(cookie);// 3. 跳回登录页response.sendRedirect(request.getContextPath() + "/login.jsp");
}

}
运行测试
启动 Tomcat,访问 http://localhost:8080/first-web/login.jsp;
输入账号admin、密码123456,登录后跳转到首页,显示「欢迎你,admin!」;
点击「退出登录」,Session 被销毁,跳回登录页;
再次登录时,浏览器会自动携带 Cookie(可在浏览器开发者工具→Application→Cookies 中查看)。
二、核心进阶知识点 2:过滤器(Filter)
Filter 是 Java Web 的「拦截器」,可以在请求到达 Servlet 之前、响应返回浏览器之前做统一处理(比如登录校验、编码统一、日志记录)。

http://www.jsqmd.com/news/397415/

相关文章:

  • 单例模式:从经典实现到Vibe Coding时代的思考
  • Google Gemini 3.1 Pro 强势登场:AI 推理能力质变,开启程序员新纪元!
  • Gemini 3.1 Pro 大幅升级:复杂任务处理能力飙升,小白程序员必备,速收藏!
  • TensorRT-LLM:让你的大模型跑得更快更省!收藏这份性能优化秘籍(小白/程序员必备)
  • AI能10分钟完成你一个月工作?技术人转型“模型构建者“的必修课
  • 技能中文指南与教程:全网最好,轻松创造通用AI智能的垂直Agent应用(收藏版)
  • Google Gemini 3.1 Pro 大模型,复杂任务轻松搞定!
  • Spring事务管理:@Transactional注解深度解析
  • 读懂大模型:写给AI团队新人的技术指南,非常详细收藏这一篇就够了
  • 常用算法代码模板及代码技巧
  • 7大AI论文改写网站实测:排名与技巧一网打尽。
  • 6个角度彻底搞懂智能体,小白也能轻松入门大模型
  • Gemini 3.1 Pro 大模型学习指南,收藏这份进阶秘籍
  • 7款AI论文网站排名+改写技巧,科研党必看指南。
  • 高效论文写作:7款AI工具排名与核心技巧解析。
  • 从改写工具到网站排名:7款AI论文写作全攻略。
  • IDEA内置Maven的本地仓库路径说明
  • 代码智能分析:质量提升方案
  • AI总结日志,我的天把我都吓到了
  • 伦理量子信息学:九元原子的量子信息实现
  • 从春晚聚光灯到城市基本盘,NAVEE Commercial如何编织全球出行“路网”?
  • 精选7款AI论文写作网站,高效技巧与排名全解析!
  • 【超全】基于微信小程序的体育场管理系统【包括源码+文档+调试】
  • researchgate无法打开,这是什么原因?
  • 装了cl云之后,邮箱都无法显示了,为何?
  • 【超全】基于微信小程序的图书阅读平台【包括源码+文档+调试】
  • 7大AI论文工具实测:改写技巧与网站排名指南。
  • 7款AI论文工具深度评测:改写技巧与权威排名。
  • AI论文写作必备:7款网站排名与实用改写技巧。
  • 基于AI原生应用领域思维树的创新解决方案