使用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就是在这样一个场景下诞生. ...
随机推荐
- Pandora 生成 Token
生成 token 打数据到仓库 通过 api 签名工具实现 最后通过curl -XPOST -H "Content-Type: application/json" -H " ...
- Dynamics365 WebAPI ADFS token 获取
public class CrmAuth { ///<summary> /// Token /// </summary> public string access_token ...
- Robot Framework 1
about Robot, learnt from the following document, perfect document !!!! http://www.virtuousprogrammer ...
- Linux 的 date 日期的使用
解决的问题有: 1:查看当前日期和时间 2:查看前几天的日期,或者后几天的日期. 3:查看上周几的日期,或者下周几的日期. 4:查看前后几小时,分钟.时间 编写一个简单的shell: 输出下个星期二的 ...
- python中删除list元素的方法del()、pop()和remove()
del():根据下标进行删除 In [1]: a = [1, 2, 3, 4, 5] In [2]: del a[0] In [3]: a Out[4]: [2, 3, 4, 5] pop(): 删除 ...
- JAVA RPC (七) 手把手从零教你写一个生产级RPC之client请求
上节说了关于通用请求代理,实际上对spring的bean引用都是通过koalasClientProxy来实现的,那么在代理方法中才是我们实际的发送逻辑,咱们先看一下原生的thrift请求是什么样的. ...
- odoo按钮触发下载文件
测试环境:Odoo8.0 1.在你的模块中创建一个方法,返回url 举个例子, @api.multi def get_stock_file(self): return{'type':'ir.actio ...
- VUE-010-通过声明式导航 router-link 传递 params 参数(路由 name 识别,请求链接不显示参数传递)
在前端页面表单列表修改时,经常需要在页面切换的时候,传递需要修改的表单内容,除了通过路由进行表单参数的传递,也可通过声明式导航 router-link 进行页面跳转和参数传递. 首先,配置页面跳转路由 ...
- 使用Eclipse来操作HDFS的文件
一.常用类 1.Configuration Hadoop配置文件的管理类,该类的对象封装了客户端或者服务器的配置(配置集群时,所有的xml文件根节点都是configuration) 创建一个Confi ...
- ACL(Access Control List)
一.ACL的简介 ACL(Access Control List 访问控制列表)是路由器和交换机接口的指令列表,用来控制端口进出的数据包.ACL的定义也是基于每一种被动路由协议的,且适用于所有的被动路 ...