文件目录

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,一个登录成功页面的更多相关文章

  1. 使用cookie记录用户上次访问网页的时间,并返回到页面

    package com.hopetesting.cookie;import javax.servlet.ServletException;import javax.servlet.annotation ...

  2. PHP——注册页面,审核页面,登录页面:加Session和Cookie

    实现效果: 用户注册信息,管理员核对信息审核通过后,可实现注册的用户名和密码的成功登陆,利用session和cookie获取用户信息并且不能跳过登录页面直接进入主页面 1.Session存储在服务器可 ...

  3. 本地存储localStorage sessionStorage 以及 session 和cookie的对比和使用

    cookie和session都是用来跟踪浏览器用户身份的会话方式. 1.验证当前服务中继续请求数据时,哪些缓存数据会随着发往服务器? 只有cookie中设置的缓存数据会发送到服务器端 2. 强调几点: ...

  4. Session和Cookie,以及用户登录验证问题。

    参考 :https://blog.csdn.net/u010002184/article/details/79416199 https://www.bbsmax.com/A/RnJW72YJqY/ 首 ...

  5. YII用户注冊和用户登录(五)之进行session和cookie分析 ,并在前后区分session和cookie

    5 进行session和cookie分析 ,并在前后区分session和cookie: 记住登录状态 这样下次再登录站点的时候.就不用反复输入username和password. 是浏览器的cooki ...

  6. Django 用Session和Cookie分别实现记住用户登录状态

    简介 由于http协议的请求是无状态的.故为了让用户在浏览器中再次访问该服务端时,他的登录状态能够保留(也可翻译为该用户访问这个服务端其他网页时不需再重复进行用户认证).我们可以采用Cookie或Se ...

  7. C# 登录 存Session ,cookie并且验证只能一个人登录以及清session并且Cache

    string id = ConvertHelper.GetString(ds.Tables[0].Rows[0]["Uid"]);//用户ID string struserid = ...

  8. session、cookie 记住登录状态的实现

    Cookie的机制 Cookie是浏览器(User Agent)访问一些网站后,这些网站存放在客户端的一组数据,用于使网站等跟踪用户,实现用户自定义功能. Cookie的Domain和Path属性标识 ...

  9. COOKIE与SESSION、Django的用户认证、From表单

    一.COOKIE 与 SESSION 1.简介 1.cookie不属于http协议范围,由于http协议无法保持状态,但实际情况,我们却又需要“保持状态”,因此cookie就是在这样一个场景下诞生. ...

随机推荐

  1. float和double的最大值和最小值

  2. php 二维数组根据值进行排序

    // 先获取要排序的值 $createTime = array_column($data, 'create_time'); // 排序成功 array_multisort($createTime, S ...

  3. 20175320 2018-2019-2 《Java程序设计》第6周学习总结

    20175320 2018-2019-2 <Java程序设计>第6周学习总结 教材学习内容总结 本周学习了教材的第七及第十章的内容.在这两章中介绍了接内部类与异常类以及输入.输出流,第七章 ...

  4. Cmake用法

    目录 1,Cmake introduce 1.1 常用的目录结构 2,CMakeLists.txt文件的写法 Cmake 常用命令 Scripting Commands set include Pro ...

  5. .net开发COM组件之组件签名&注册

    基于.net的COM组件开发时,若采用vs强命名方式,则完成后试图将组件注册到XP系统(确切的说是.net4.0以下版本的系统) REGASM c:\libcom\dotnet\myCom.dll / ...

  6. CST2017 安装问题

    1.需要修改破解文件license 中的电脑名称 2.若lincense 中有时间限制  需要把时间都修改   比如  到期为  1-jan-2018   则修改为1-jan-2019   所有的都需 ...

  7. 2019春第六周作业Compile Summarize

    这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 在这里 我在这个课程的目标是 能够熟练掌握指针的用法 这个作业在那个具体方面帮助我实现目标 对指针的使用更加得心应手 参考文献与网址 C语 ...

  8. CentOS配置apache多站点设置

    配置文件目录: /etc/httpd/conf.d /etc/httpd/conf/httpd.conf 错误日志文件在哪里? 网站文件目录: /var/www/html (Ubuntu/Centos ...

  9. Leetcode: Number Complement

    Given a positive integer, output its complement number. The complement strategy is to flip the bits ...

  10. 扎实学Java之数组与方法

    什么是数组? 数组是一个容器,用来存储多个数据(数据类型相同) 声明一个数组就是在内存中开辟一串连续的空间 数组的结构和基本要素 标识符:数组的名称,用于区分不同的数组 数组元素:向数组中存放的数据 ...