使用session和cookie实现用户登录:一个登录页面,一个servlet,一个登录成功页面
文件目录

1.登录页面
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>登录页面</title>
</head>
<body>
<%
//读取用户名为uname的cookie值,如果为空,就显示“”,
//不为空,就显示cookie值
Cookie[] cookies=request.getCookies();
//遍历cookie值,获取cookie名为uname的cookie
String uname="";
if(cookies != null){
for(Cookie c:cookies){
if("uname".equals(c.getName())){
uname=c.getValue();
}
}
} %> <%--本页面提供登录表单,还要显示错误信息 --%>
<%
String message="";
String msg=(String)request.getAttribute("msg");
if(msg != null){
message=msg;
}
%>
<font color="red" >
<b>
<%=message %>
</b>
</font> <h1>登录页面</h1>
<form action="/SessionDemo/LoginServlet" method="post">
<!-- 把cookie中的值放到文本框中-->
用户名:<input type="text" name="username" value=<%=uname %>/><br>
密 码:<input type="password" name="password"/><br>
<input type="submit" value="登录"/>
</form>
</body>
</html>
2.servlet类
package it.cn.ServletDemo; import java.io.IOException; import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession; /**
* Servlet implementation class LoginServlet
*/
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L; /**
* @see HttpServlet#HttpServlet()
*/
public LoginServlet() {
super();
// TODO Auto-generated constructor stub
} /**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //处理中文乱码的额问题
request.setCharacterEncoding("utf-8");
//获取数据
String name=request.getParameter("username");
String password=request.getParameter("password"); //效验用户名和密码是否正确
if(! "itcase".equals(name)) {
/*
* 附加项:创建一个cookie,保存用户名
* 下次访问login时,获取cookie中的值添加到用户名文本框中
*/
Cookie cookie=new Cookie("uname", name);
//设置cookie的命长
cookie.setMaxAge(60*60);
//保存cookie
response.addCookie(cookie); //如果成功,就把数据放到session中,并且重定向到succ1.jsp
HttpSession session=request.getSession();
//向session中
session.setAttribute("name", name);
response.sendRedirect("/SessionDemo/session2/succ1.jsp");
}else {//登录失败
//保存错误信息到request中
request.setAttribute("msg", "用户名错误!");
//创建转发器
RequestDispatcher qr=request.getRequestDispatcher("/session2/login.jsp");
qr.forward(request, response);
}
} /**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
} }
3.登录成功的页面
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
String name=(String)session.getAttribute("name");
if(name==null){
//如果没有登录,用户名为空,就返回登录页面
request.setAttribute("msg", "您还没有登录");
RequestDispatcher qr=request.getRequestDispatcher("/session2/login.jsp");
qr.forward(request, response);
}
%>
<p color="blue" align="center">
欢迎<%=session.getAttribute("name") %>来我校!
</p>
</body>
</html>
使用session和cookie实现用户登录:一个登录页面,一个servlet,一个登录成功页面的更多相关文章
- 使用cookie记录用户上次访问网页的时间,并返回到页面
package com.hopetesting.cookie;import javax.servlet.ServletException;import javax.servlet.annotation ...
- PHP——注册页面,审核页面,登录页面:加Session和Cookie
实现效果: 用户注册信息,管理员核对信息审核通过后,可实现注册的用户名和密码的成功登陆,利用session和cookie获取用户信息并且不能跳过登录页面直接进入主页面 1.Session存储在服务器可 ...
- 本地存储localStorage sessionStorage 以及 session 和cookie的对比和使用
cookie和session都是用来跟踪浏览器用户身份的会话方式. 1.验证当前服务中继续请求数据时,哪些缓存数据会随着发往服务器? 只有cookie中设置的缓存数据会发送到服务器端 2. 强调几点: ...
- Session和Cookie,以及用户登录验证问题。
参考 :https://blog.csdn.net/u010002184/article/details/79416199 https://www.bbsmax.com/A/RnJW72YJqY/ 首 ...
- YII用户注冊和用户登录(五)之进行session和cookie分析 ,并在前后区分session和cookie
5 进行session和cookie分析 ,并在前后区分session和cookie: 记住登录状态 这样下次再登录站点的时候.就不用反复输入username和password. 是浏览器的cooki ...
- Django 用Session和Cookie分别实现记住用户登录状态
简介 由于http协议的请求是无状态的.故为了让用户在浏览器中再次访问该服务端时,他的登录状态能够保留(也可翻译为该用户访问这个服务端其他网页时不需再重复进行用户认证).我们可以采用Cookie或Se ...
- C# 登录 存Session ,cookie并且验证只能一个人登录以及清session并且Cache
string id = ConvertHelper.GetString(ds.Tables[0].Rows[0]["Uid"]);//用户ID string struserid = ...
- session、cookie 记住登录状态的实现
Cookie的机制 Cookie是浏览器(User Agent)访问一些网站后,这些网站存放在客户端的一组数据,用于使网站等跟踪用户,实现用户自定义功能. Cookie的Domain和Path属性标识 ...
- COOKIE与SESSION、Django的用户认证、From表单
一.COOKIE 与 SESSION 1.简介 1.cookie不属于http协议范围,由于http协议无法保持状态,但实际情况,我们却又需要“保持状态”,因此cookie就是在这样一个场景下诞生. ...
随机推荐
- poj1207 3n+1 problem
The 3n + 1 problem Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 60496 Accepted: 19 ...
- p1257 平面上最接近点对---(分治法)
首先就是一维最接近点的情况... #include<iostream> #include<cstdio> #include<cstring> #include< ...
- css学习_css补充知识
1.渐进增强,优雅降级 2.浏览器前缀 3.背景渐变 4.css 验证工具 2种方式:第2种支持验证本地的css(推荐) 5.css压缩 ----(节约空间,节省带宽) 6.旋转轮播图 案例: ...
- jmeter 入门学习-通过代理录制测试脚本
通过jmeter代理录制脚本后,会产生大量的无用的请求,尽管在代理中已经过滤了一部分图片或者CSS.JS文件. 手动查看主要的请求:这里主要关注登陆请求,要确定有效的URL请求 删除除/Login.a ...
- tcpdump我的交叉编译(mips)
一.libpcap交叉编译 1.下载libpcap-1.8.1(http://www.tcpdump.org/) 2.解压 3.修改configure文件 a.注释掉 #if test -z &quo ...
- 用web技术写APP
_ 听说会写web的人也能写APP, 抱着尝试的心态踏上路体验一番 http://www.ionic.wang/start-index.html 0x00 框架环境介绍 ionic是什么? https ...
- js导航栏单击事件背景颜色变换
<head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8&quo ...
- IIS宿主WCF服务*.svc Mime类型映射
经常会遇到由于.net安装组件缺失,导致发布wcf服务后,访问wcf报.svc请求类型不支持 简单方法就是添加删除程序,修改.net组件安装选项,勾选http激活即可: 或者手工添加映射处理程序 1. ...
- 移动端适配--flexible.js
引言: H5适配一直是一个比较普遍的问题,很多文章都会讲,最近开发了一个H5的项目使用了一下淘宝的 flexible.js,写一篇文章自己总结一下. 一.背景介绍: Flexible.js是淘宝公开的 ...
- jQuery通过ajax请求php遍历json数组到table中的代码
html代码(test.html),js在html底部 具体代码如下所示: <!DOCTYPE html> <html lang="en"> <hea ...