jsp cookie+session实现简易自动登录

 更新时间:2020-11-19 02:01:31   作者:佚名   我要评论(0)

本文实例为大家分享了jsp cookie+session实现简易自动登录的具体代码,供大家参考,具体内容如下
关闭浏览器只会使存储在客户端浏览器内存中的session cookie失效,

本文实例为大家分享了jsp cookie+session实现简易自动登录的具体代码,供大家参考,具体内容如下

关闭浏览器只会使存储在客户端浏览器内存中的session cookie失效,不会使服务器端的session对象失效。
如果设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie依然有效直到超过设定的过期时间。

login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
 pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
 <head>
  <title>登录</title> 
 </head>
 
 <body> 
 <form action="sucess.jsp" method="post">
 用户名:<input name="username" /><br/>
 
 <%--<input type="checkbox" name="time" />记住用户名 --%>
   
   <input type="submit" name="submit" id="submit" value="登录"/>
 </form>
 <% 
 //读取session值
 String val= (String)session.getAttribute("name");
 //如果session不存在
 if(val==null){
  val ="不存在";
 }
 out.print("当前\""+val+"\"用户可自动登录");
 %>
 
 </body>
</html>

success.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
 pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>主不在乎</title>
</head>
<body>
<%
 //获取username
 String name = request.getParameter("username");
 //判断用户名是否存在
 if(name != null && !name.trim().equals("")){ 
 //String[] time = request.getParameterValues("time");
 
 //设置session值,(login页面可读取)
 session.setAttribute("name", name);
 
 //设置Cookie
 Cookie Cookie = new Cookie("name",name); 
 Cookie.setMaxAge(30*24*3600); //设置cookie有效期为30天   
 response.addCookie(Cookie); //在客户端保存Cookie
 
 out.println("welcome: " + name+"欢迎登录");
 } 
 else{
 response.sendRedirect("main.jsp");
 }
 
%>
<a href="login.jsp" >relogin</a>
</body>
</html>

main.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
 pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>主不在乎</title>
</head>
<body>

<%
String name=(String)session.getAttribute("username");

//获取cookie
Cookie[] cookies = request.getCookies();

//cookie存在
 if(cookies != null && cookies.length > 0){
 for(Cookie cookie:cookies){
  //获取cookie的名字
  String cookieName = cookie.getName();
  //判断是否与name相等
  if(cookieName.equals("name")){
  //获取cookie的值
  String value = cookie.getValue();
  name = value;
  }
  }
 out.println("welcome again: " + name+"欢迎登录");
 
//*************************
 // 另一种写法
 
 String v=null;
 for(int i=0;i<cookies.length;i++){
 if(cookies[i].getName().equals("name")){
 v=cookies[i].getValue();
 }
 }
 if(v!=null){
 out.println(" Hello World "+v);
 }
 
 }
//*************************
 else {
 response.sendRedirect("login.jsp");
 }

%>


<a href="login.jsp" >relogin</a>

</body>
</html>

运行login.jsp

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
  • JSP的Cookie在登录中的使用

相关文章

  • jsp cookie+session实现简易自动登录

    jsp cookie+session实现简易自动登录

    本文实例为大家分享了jsp cookie+session实现简易自动登录的具体代码,供大家参考,具体内容如下 关闭浏览器只会使存储在客户端浏览器内存中的session cookie失效,
    2020-11-19
  • python3访问字典里的值实例方法

    python3访问字典里的值实例方法

    如今,字典也是我们在学习python时候的一个热门话题,很多人都说,只要掌握了字典,就相当于掌握了python的半壁江山,事实上,为什么大家都会这么说呢?通常我们使用
    2020-11-19
  • 微信小程序自定义底部弹出框功能

    微信小程序自定义底部弹出框功能

    本文实例为大家分享了微信小程序自定义底部弹出框的具体代码,供大家参考,具体内容如下 实现这么一个功能,点击选项进行选择,效果是从底部弹出选项框(带滑出动画
    2020-11-19
  • 解决docker指定udp端口号的问题

    解决docker指定udp端口号的问题

    docker启动容器时会指定访问端口,可以通过多个-p指定多个端口映射。 udp在后台会有一个自己的端口号,区别于服务访问的端口号,这时就需要启动服务时候来指定一下了
    2020-11-19
  • 如何利用Python写个坦克大战

    如何利用Python写个坦克大战

    前言 坦克大战是一款策略类的平面射击游戏,于 1985 年由 Namco 游戏公司发布,尽管时至今日已经有了很多衍生类的游戏,但这款游戏仍然受到了相当一部分人的欢迎
    2020-11-19
  • docker nginx实现一个主机部署多个站点操作

    docker nginx实现一个主机部署多个站点操作

    在某站租赁的虚拟机快到期了,续费得花200多,想到在阿里云新买的服务器,不如把这个也转移过去。域名我就用真实的吧,大家别黑我网站就好了,谢谢各位了。 阿里云里
    2020-11-19
  • eclipse输出Hello World的实现方法

    eclipse输出Hello World的实现方法

    前言 本章内容: 在控制台输出“Hello World!” 开发工具:eclipse 创建Java项目 1.打开eclipse 打开后进入到这个页面(有的人是第一次打开,可能会
    2020-11-19
  • Windows安装Openssl并使用Openss生成公钥私钥

    Windows安装Openssl并使用Openss生成公钥私钥

    1. OpenSSL官网 官方下载地址: https://www.openssl.org/source/ 2. Windows安装方法 OpenSSL官网没有提供windows版本的安装包,可以选择其他开源平台提供的工具。
    2020-11-19
  • docker部署nginx并且挂载文件夹和文件操作

    docker部署nginx并且挂载文件夹和文件操作

    这段时间在研究docker,在部署nginx时遇到了坑,最主要的问题是在挂载文件和文件夹的时候不知道怎么挂载,经过反复实验以及查看网上的教程,先总结如下: 1首先pull
    2020-11-19
  • Android6.0获取动态权限代码示例

    Android6.0获取动态权限代码示例

    Android系统对所有的危险权限进行了分组,称为 权限组 。属于同一组的危险权限将自动合并授予,用户授予应用某个权限组的权限,则应用将获得该权限组下的所有权限(
    2020-11-19

最新评论