利用session技术实现 用户登陆 功能

2023-11-05

首先利用jsp技术写出登陆页面

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>用户登录</title>
</head>
<body>
<h1>用户登录</h1>
<form action="/CookieProject/login" method="post">
	<table>
		<tr>
			<td><lable for="username_1">用户名</lable></td>
			<td><input type="text" name="username" id="username_1"></td>
		</tr>
		<tr>
			<td><lable for="passwoed_1">密码</lable></td>
			<td><input type="password" name="password" id="password_1"></td>
		</tr>
		<tr>
			<td><input type="submit" value="提交"></td>
			<td><input type="reset" value="重置"></td>
		</tr>
	</table>
</form>
</body>
</html>

然后利用Servlet编写出登陆之后服务端所做的工作

   1.获得用户的用户名和密码

   2.xml存放有用户名和密码  利用dom4j解析

   3.判断用户名和密码是否正确

   4.如果正确,服务器保存session

   5.如果错误,重新登录


package myTest;

import java.io.File;
import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


import javax.servlet.http.HttpSession;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class LoginServlet extends HttpServlet {

	//登陆用户
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");

		 response.setHeader("refresh", "5;url=/CookieProject/login.jsp");  
		//1.获得用户的用户名和密码
		String username=request.getParameter("username");
		String password=request.getParameter("password");
		//2.xml存放有用户名和密码  利用dom4j解析
		String filePath=getServletContext().getRealPath("/WEB-INF/UserInfo.xml");
		SAXReader reader=new SAXReader();
		try {
			Document document=reader.read(new File(filePath));
			Element root=document.getRootElement();
			List<Element>users=root.elements("user");
			//3.判断用户名和密码是否正确
			for (Element user : users) {
				String username_1=user.elementText("username");
				String password_1=user.elementText("password");
				//4.如果正确,服务器保存session
				if(username_1.equals(username)&&password_1.equals(password)){
					HttpSession session=request.getSession();
					session.setAttribute("username", username);
					response.sendRedirect("/CookieProject/welcome.jsp");
					return;
				}
			}
			//5.如果错误,重新登录
			response.getWriter().println("用户名密码错误,5秒后重新跳回登陆界面");
			
		} catch (DocumentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		doGet(request,response);
	}

}


然后还需要有储存用户数据的xml文档

<?xml version="1.0" encoding="UTF-8"?>
<users>
	<user>
		<username>张三</username>
		<password>123</password>
	</user>
	<user>
		<username>李四</username>
		<password>234</password>
	</user>
	<user>
		<username>王五</username>
		<password>345</password>
	</user>
	<user>
		<username>赵六</username>
		<password>456</password>
	</user>
	<user>
		<username>狗剩</username>
		<password>567</password>
	</user>
</users>

简单编写登陆成功的欢迎页面

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<h1>欢迎您的登陆,<%=session.getAttribute("username") %></h1> 
</body>
</html>


即可制作完成

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

利用session技术实现 用户登陆 功能 的相关文章

  • 在应用程序启动时清除所有会话

    我注意到 当我重新启动 ASP Net 应用程序时 会记住已登录用户的凭据 并且他们可能会发现自己已自动登录 只要不保留在登录时设置的用户会话变量 这种行为就是不需要的 那么 我怎样才能 忘记 应用程序启动时的所有会话呢 我发现我无法使用S
  • ColdFusion SessionTracker 并强制会话结束

    我正在使用 ColdFusion 9coldfusion runtime SessionTracker使用以下代码监视当前登录的用户 app application getApplicationSettings name sessiontr
  • 为什么 ColdFusion SESSION 变量在前几行被引用后会“未定义”?

    在 Windows2003 IIS6 上运行 ColdFusion 8 01 Standard 应用程序 cfc
  • PHP 会话不工作

    我正在使用 wamp2 0 PHP 5 3 apache 2 2 11 但我的会话不存储数据 我有一个接受参数的页面 我想将其 简化版本 存储在会话中 所以当我来到 http www example com home php sessid
  • 函数 session_start() 出现问题(运行缓​​慢)

    我有一个问题session start 在主服务器上 当我第一次加载页面时 完成请求只需要不到 1 秒的时间 如果我等待大约 12 15 秒 然后重新加载页面 加载时间将是相同的 但是 当我尝试在初始加载后 3 或 5 秒后刷新页面时 服务
  • 无法登录 Magento 管理员

    我在登录我们的一个临时站点上的 Magento 管理面板时遇到问题 它在我们的 webdev 服务器上 100 工作 不久前在临时服务器上也工作得很好 我做了一些研究 大多数人认为这与在本地主机上运行 Magento 以及浏览器不为域名中没
  • setcookie() 和 session_set_cookie_params() 函数之间的区别

    我试图理解 PHP 函数 setcookie 和 session set cookie params 之间的区别 看起来两个函数都在执行相同类型的任务 但 setcookie 可用于创建具有名称和值的 cookie 我试图理解 PHP 手册
  • Magento - 检查管理员和客户是否登录

    我有一个安装了 Magento 1 4 0 1 的 Web 服务器 我有另一个与之共享凭据的网站 我已经设法检查客户是否登录 在更改 Magento 中的 cookie 位置之后 但是当我还尝试确定管理员是否登录时 事情变得复杂 我只能得到
  • 在sqlalchemy中跨不同模块访问相同的db.session

    我对 sqlalchemy 非常陌生 正在尝试找出如何让事情变得更干净和连接 我创建了一个 model base py 文档 在其中创建了一个会话并在表中建立了所有实体 以及关系等 我想创建另一个模块 在其中对 base py 中的实体 表
  • 使用 Spring 处理会话 ID

    我正在尝试为 GWT 构建一个 Spring 服务器 您可以将其视为 Javascript AJAX 客户端 但我无法决定架构的某一点 Session应该如何创建和使用 显然最简单的方法是使用 HTTP 会话 cookie 等 看起来不错
  • 如何让用户会话持续24小时?

    我搞乱了我的 apache 和 php ini 文件 我的网站的用户仍然抱怨网站在很短的时间后或每次关闭并打开同一个浏览器时都会将他们注销 我正在运行 Apache 和 PHP 我应该进行哪些设置才能使用户会话持续 24 小时 这样他们就不
  • 致命错误:无法在functions.php第25行中重新声明session_start()

    当我尝试让登录部分正常工作时遇到问题 我不断遇到的问题是 致命错误 无法在 public html login functions php 第 25 行重新声明 session start
  • 为什么我们提交表单时会生成一个新的令牌

    我正在努力理解回答SO https stackoverflow com questions 2133964 how to prevent multiple inserts when submitting a form in php 5159
  • 如何在会话自动加载的同时在 vim 中打开文件?

    我在 vimrc 中有以下代码 可以在 vim 启动时自动保存 加载会话 Session saving Automatically save rewrite the session when leaving Vim augroup leav
  • NodeJS + Express + Mongo 会话存储

    我目前在尝试在 MongoDb 中存储会话时遇到了很大的麻烦 我尝试过express session mongo和connect mongodb 当我尝试加载登录页面时 两者都给出了相同的 500内部服务器错误 这让我觉得也许在某个地方与
  • Rails:跟踪用户的 ID

    在我的 Rails 应用程序中 我有一个登录页面 该人登录后 我的应用程序继续跟踪已登录人员的最佳方式是什么 例如 如果用户移动到不同的页面 我的控制器 操作将失去对该用户的跟踪 除非我继续传递用户随后访问的每个页面之间的变量 有更好的方法
  • PHP 会话中的数据错误

    我对网上商店进行了以下设置 当用户登录时 通过 AJAX 调用脚本 该脚本根据 SOAP Web 服务验证用户数据 并返回用户数据 当用户登录时 用户数据保存在 PHP 会话中 用户数据 仅通过 SOAP 检索 而不由商店存储 我使用默认的
  • 使用 CDI+JSF 使会话失效不起作用

    我正在尝试在我的应用程序中实现注销 所以我这样做了 public String logout try FacesContext facesContext FacesContext getCurrentInstance ExternalCon
  • Codeigniter - 检查用户是否已登录并存在(它是真实用户)

    我正在尝试在用户登录我的网站时为他们设置会话数据 因此 如果用户存在于数据库中 我将设置一个会话数据 例如 this gt session gt set userdata user exists 1 现在 每次我想检查用户是否存在并已登录时
  • 会话过期后如何重定向到登录页面?

    我有三个 JSF 2 0 Web 模块 当会话过期时我需要重定向到登录页面 我已经尝试过使用HttpSessionListener 它正在调用sessionDestroyed 事件方法 但我无法在那里转发 重定向请求 我认为这是因为没有Ht

随机推荐

  • 网络内安全试验场第三次CTF答题夺旗赛

    最近参加了网络内安全试验场第三次CTF答题夺旗赛 写wp 以后要做一个每次比赛完立马写wp的菜鸡 个人习惯 我做题一般喜欢从杂项 隐写开始 第一题 下载完成之后发现是个word 打开时需要密码 但是在题目中给提示了 所以直接输入密码 我以为
  • 自己手动搭建ssm框架实现增删改查、图片的上传、排序的移动所遇到问题的总结

    如图所示实现的增删改查 上移和下移 总结一下自己的不足之处 以前的公司都是自己有封装的框架而且有一段时间没做mvc了对此没有那么的熟悉 1 controller层返回的ModelAndView 后面希望能够改成String 然后再通过视图解
  • UTXO详解

    UTXO详解 https blog csdn net ztemt sw2 t 1 https blog csdn net yzpbright article details 82218759 比特币交易中的基础构建单元是交易输出 交易输出是
  • DBeaver连接clickhouse

    一 安装DBeaver 下载地址 Download DBeaver Community 1 选择自己电脑的安装包 2 安装完成之后 启动安装程序 3 选择语言及安装路径等 确认安装 4 安装成功 二 连接clickhouse 1 启动dbe
  • 一文带你梳理React面试题(2023年版本)

    前言 一 React18有哪些更新 setState自动批处理 在react17中 只有react事件会进行批处理 原生js事件 promise setTimeout setInterval不会 react18 将所有事件都进行批处理 即多
  • nginx 基础 域名、dns 、虚拟主机

    Nginx 基础应用实战 02 域名 dns与http协议 mashibing com server 相关配置 listen 80 监听端口 server name www mashibing com mashibing com 域名可以有
  • 16-3_Qt 5.9 C++开发指南_使用QStyle 设置界面外观_实现不同系统下的界面效果的匹配

    文章目录 1 QStyle的作用 实现不同系统下的界面效果的匹配 2 Qt内置样式的使用 3 源码 3 1 可视化UI设计 3 2 mainwindow cpp 1 QStyle的作用 实现不同系统下的界面效果的匹配 Qt 是一个跨平台的类
  • 主成分分析(principal component analysis, PCA)公式

    主成分分析 principal component analysis PCA 公式 主成分分析 摘要 什么是主成分 求解 PCA 的公式 数学证明 程序验证 参考文献 主成分分析 摘要 主成分分析作为一种常见的数据降维 dimension
  • Windows python发布

    发布代码包新建setup py文件 在要发布文件夹打开cmd python exe setup py sdist 构建发布 sudo python exe setup py install 将发布安装到本地副本 使用import 文件夹名导
  • flex布局 父元素属性之 flex-direction 设置主轴的方向

    flex布局 flex flexible box的缩写 意为 弹性布局 有很强的灵活性 任何一个容器都可以设置为flex布局 在使用flex布局时 必须给父元素添加flex属性 display flex 才能控制子元素的位置和排列方式 当为
  • 背包九讲--完全背包

    完全背包 问题描述 设有n种物品 每种物品有一个重量及一个价值 但每种物品的数量是无限的 同时有一个背包 最大载重量为M 今从n种物品中选取若干件 同一种物品可以多次选取 使其重量的和小于等于M 而价值的和为最大 输入格式 第一行 两个整数
  • 浏览器监听左上角返回按钮监听事件popstate 不起作用&使用History.back()页面后退刷新或者处理一些其他操作页面

    浏览器监听左上角返回按钮监听事件popstate 不起作用 需求 做法 问题 解决方案 补充知识 使用History back 页面后退刷新或者处理一些其他操作页面 需求 网站A 页面a page 转到网站B 页面b page 在b pag
  • SAP MM学习笔记31 - 已割当供给元的购买依赖

    上次学习了未割当供给元的购买依赖 未分配供应商采购申请 咱们本章来学习一下 已割当供给元的购买依赖如何处理 SAP MM学习笔记30 未割当供给元的购买依赖 东京老树根的博客 CSDN博客 如下图所示 利用 购买依赖割当一览 手动 从购买依
  • 大话数据结构3 - 串

    串是一种线性表的扩展 线性表关注一个个元素 串关注子串操作 串 是由零个或多个字符组成的有限序列 字符串string 空串 空格串 子串 主串 串的比较 通过编码进行的 相等串 串的大小判定 标准ASCII 扩展ASCII Unicode编
  • IndexError: too many indices for tensor of dimension 0

    源代码 import torch import torchvision import torch nn as nn from model import LeNet import torch optim as optim import tor
  • Vmware 如何开启CPU虚拟化

    首先要说明VMware workstation7桌面平台的配置情况 CPU 宿主机CPU 内存 设置数值为虚拟机最大可用内存 动态分配内存大小 主板芯片组 Intel 440BX 显卡 VMware SVGA IDE控制器 Intel 82
  • golang判断字符串是不是数字

    参考 Golang如何去判断字符串是数字还是字符 CSDN论坛 func IsNum s string bool err strconv ParseFloat s 64 return err nil
  • DataGrip创建MySQL数据库与使用

    打开DataGrip创建一个MySQL数据库 打开数据库的配置 会提示安装驱动 数据库的版本需要与驱动版本一致 自己在官网下载MySQL驱动 若不一致 需要下载驱动 http central maven org maven2 mysql m
  • 等保2.0:MySQL数据库测评

    身份鉴别 身份鉴别A 应对登录的用户进行身份标识和鉴别 身份标识具有唯一性 身份鉴别信息具有复杂度要求并定期更换 测评方法 1 执行mysql u root p命令 查看是否提示输入口令鉴别用户身份 mysql u root p 2 查询u
  • 利用session技术实现 用户登陆 功能

    首先 利用jsp技术写出登陆页面 h1 用户登录 h1