news 2026/2/22 20:05:26

IDEA(2020版)sevlet+session模拟用户登录

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
IDEA(2020版)sevlet+session模拟用户登录

查看全文:https://www.longkui.site/program/java/idea2020sevletsession2/7213/


【任务目标】

通过所学Session知识,使用Session技术模拟用户登录。

当用户访问某个网站的首页时,首先会判断用户是否登录,如果已经登录,则在首页中显示用户登录信息,否则进入登录页面,实现用户登录功能,然后显示用户登录信息。

1.创建实体类
右击entity文件夹,选择New—>Java Class,名字为User

代码参考如下:

package cn.itcast.session.entity;public class User{private String username;private String password;public StringgetUsername(){returnusername;}public void setUsername(String username){this.username=username;}public StringgetPassword(){returnpassword;}public void setPassword(String password){this.password=password;}}

2.创建Servlet
右击Servlet,选择New—>Create New Servlet,名字为IndexServlet

IndexServlet.java参考代码如下:

package cn.itcast.session.servlet;importcn.itcast.session.entity.User;importjava.io.IOException;importjavax.servlet.ServletException;importjavax.servlet.annotation.WebServlet;importjavax.servlet.http.*;@WebServlet(name="IndexServlet",urlPatterns="/IndexServlet")public class IndexServlet extends HttpServlet{public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException{// 解决乱码问题 response.setContentType("text/html;charset=utf-8");// 创建或者获取保存用户信息的Session对象 HttpSession session=request.getSession();User user=(User)session.getAttribute("user");if(user==null){response.getWriter().print("您还没有登录,请<a href='/chapter05/login.html'>登录</a>");}else{response.getWriter().print("您已登录,欢迎你,"+ user.getUsername()+"!");response.getWriter().print("<a href='/chapter05/LogoutServlet'>退出</a>");// 创建Cookie存放Session的标识号 Cookie cookie=new Cookie("JSESSIONID", session.getId());cookie.setMaxAge(60*30);cookie.setPath("/chapter05");response.addCookie(cookie);}}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException{doGet(request, response);}}

然后创建第二个LoginServlet,代码参考如下:

package cn.itcast.session.servlet;importcn.itcast.session.entity.User;importjava.io.*;importjavax.servlet.ServletException;importjavax.servlet.annotation.WebServlet;importjavax.servlet.http.*;@WebServlet(name="LoginServlet",urlPatterns="/LoginServlet")public class LoginServlet extends HttpServlet{public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException{response.setContentType("text/html;charset=utf-8");String username=request.getParameter("username");String password=request.getParameter("password");PrintWriter pw=response.getWriter();//假设正确的用户名 是itcast 密码是123if(("itcast").equals(username)&&("123").equals(password)){User user=new User();user.setUsername(username);user.setPassword(password);request.getSession().setAttribute("user", user);response.sendRedirect("/chapter05/IndexServlet");}else{pw.write("用户名或密码错误,登录失败");}}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException{doGet(request, response);}}

最后创建一个Servlet,名字为LogoutServlet,代码参考如下:

package cn.itcast.session.servlet;importjava.io.IOException;importjavax.servlet.ServletException;importjavax.servlet.annotation.WebServlet;importjavax.servlet.http.*;@WebServlet(name="LogoutServlet",urlPatterns="/LogoutServlet")public class LogoutServlet extends HttpServlet{public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException{// 将Session对象中的User对象移除 request.getSession().removeAttribute("user");response.sendRedirect("/chapter05/IndexServlet");}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException{doGet(request, response);}}

创建完的结构如下:


3.创建登录页面
右击web文件夹,选择New—>HTML File,名字为login.html


后续内容 查看全文:https://www.longkui.site/program/java/idea2020sevletsession2/7213/

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/20 18:04:07

CDN 配置避坑指南:关键要点与实战经验总结

&#x1f4a1; 前言&#xff1a; 很多开发者在第一次接入 CDN 时&#xff0c;往往认为“只要添加个域名”就万事大吉了。 但实际上&#xff0c;回源策略、缓存规则、HTTPS证书 等配置细节&#xff0c;直接决定了你的网站是“飞起来”还是“挂掉”。 本文结合真实踩坑经验&#…

作者头像 李华
网站建设 2026/2/20 16:37:37

GPU算力租赁推广:搭配PyTorch镜像实现极速接入

GPU算力租赁推广&#xff1a;搭配PyTorch镜像实现极速接入 在深度学习项目启动阶段&#xff0c;你是否曾为搭建环境耗费数小时甚至几天&#xff1f;明明代码写好了&#xff0c;却卡在“ImportError: CUDA not available”这种低级错误上&#xff1b;团队成员各自配置环境&#…

作者头像 李华
网站建设 2026/2/17 4:14:37

YOLOv5s模型训练实战:基于PyTorch-CUDA环境全流程演示

YOLOv5s模型训练实战&#xff1a;基于PyTorch-CUDA环境全流程演示 在自动驾驶的感知系统中&#xff0c;一帧图像需要在几十毫秒内完成车辆、行人和交通标志的识别&#xff1b;在工厂质检线上&#xff0c;每分钟数百个零件必须被实时检测缺陷。这些场景背后&#xff0c;都离不开…

作者头像 李华
网站建设 2026/2/19 5:05:52

深度学习入门必备:PyTorch GPU环境安装全攻略

深度学习环境搭建新范式&#xff1a;PyTorch-CUDA容器化实战指南 在人工智能实验室的深夜&#xff0c;你是否也曾面对这样的场景&#xff1a;刚下载好一个论文复现代码&#xff0c;满怀期待地运行 train.py&#xff0c;结果终端却无情地弹出一行红字——“CUDA not available”…

作者头像 李华
网站建设 2026/2/17 10:35:26

PyTorch-CUDA-v2.7镜像是否可用于工业质检场景

PyTorch-CUDA-v2.7镜像在工业质检中的适用性分析 在智能制造加速转型的今天&#xff0c;一条产线每分钟可能产出数百件产品&#xff0c;而微米级的表面划痕、气泡或装配偏差却不能被轻易放过。传统靠人工目检的方式早已不堪重负——疲劳、主观判断差异、漏检率波动等问题让质量…

作者头像 李华