文件目录

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. laravel5.5+vue+Element-ui+vux环境搭建(webpack+laravelMix)(转)

    本教程例子可到GitHub 上下载 Laravel5.5-Vue-Element-ui-Vux 1.laravel5.5安装,详情请参考: https://laravelacademy.org/pos ...

  2. JavaScript Dom级别

  3. scrapy模拟登录

    对于scrapy来说,也是有两个方法模拟登陆: 直接携带cookie 找到发送post请求的url地址,带上信息,发送请求 scrapy模拟登陆之携带cookie 应用场景: cookie过期时间很长 ...

  4. jdbc的入门学习

    一.JDBC相关概念介绍 1.1.数据库驱动 这里的驱动的概念和平时听到的那种驱动的概念是一样的,比如平时购买的声卡,网卡直接插到计算机上面是不能用的,必须要安装相应的驱动程序之后才能够使用声卡和网卡 ...

  5. node 学习(二)

    写基础太麻烦了  我花了个基础知识的脑图

  6. 黑盒测试实践——day06

    一.任务进展情况 通过小组成员的共同努力,终于完成了此次“黑盒测试实践”任务.目前的主要任务将之前的文件汇总,整理出来.                             二.存在的问题 由于此 ...

  7. jmeter数据库连接配置

    一.实际试过的mysql配置 1.导入一个JDBC jar包(我是直接把jar包放在了jmeter的lib目录),包:mysql-connector-java-5.1.7-bin.jar 2.设置JD ...

  8. Vue学习记录第一天

    今天开始了Vue的学习,下面我就记录一下学习了什么. 1.什么是Vue? vue是一套基于javaScript的渐进式框架,是MVVM框架.View ——ViewModel——Model  其中Vie ...

  9. JSTL将number类型转化为String类型

    <c:set var="lm1"> <c:out value="${lm}" /> </c:set>

  10. vue中$refs、$slot、$nextTick相关的语法

    Vue 实例还暴露了一些有用的实例属性与方法.它们都有前缀 $,以便与用户定义的属性区分开来 1.$data和$el var data = { a: 1 } var vm = new Vue({ el ...