java的用户登录怎样记住上次登录的用户名和密码?

java实现,用户在登录登录界面时可以记住上一次登录的用户名。本人认为可以有两种解决方案


第一:使用数据库实现;具体实现为,新建表login。最简单的设计为里面有两个字段,一个字段为用户名,另外一个为本机IP地址。


第二:可以使用Cookie技术来实现;具体的实现代码如下(注:代码实现的是记录上一次登录的时间,把时间改为用户名即可):

package com.fenuang.sevlvet;  
  
import java.io.IOException;  
import java.text.SimpleDateFormat;  
import java.util.Date;  
  
import javax.servlet.ServletException;  
import javax.servlet.http.Cookie;  
import javax.servlet.http.HttpServlet;  
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpServletResponse;  
  
public class firstservlet extends HttpServlet {  
    @Override  
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {  
        // 设置界面编码方式  
        resp.setContentType("text/html;charset=utf-8");  
        resp.getWriter().write("程序开启");  
  
        // 设置时间格式  
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");  
  
        // 获取当前时间  
        String cutTime = sdf.format(new Date());  
  
        /** 
         * 先把所有的cookie放入数组 
         */  
  
        Cookie[] cookies = req.getCookies();  
  
        String lastTime = null;  
        /** 
         * 查询数组是否有lastTime的cookie 
         */  
  
        if (cookies != null) {  
            for (Cookie cookie : cookies) {  
  
                // 如果有上次的登陆痕迹  
                if (cookie.getName().equals("lastTime")) {  
  
                    // 把时间显示在浏览器  
                    lastTime = cookie.getValue();  
                    resp.getWriter().write("欢迎回来! 您上次登录是在:" + lastTime);  
                    // 更新cookie  
                    cookie.setValue(cutTime);  
                    // 设置过期时间一个月  
                    cookie.setMaxAge(1 * 30 * 24 * 60 * 60);  
                    // 把更新的数据发送到浏览器储存起来  
                    resp.addCookie(cookie);  
                    break;  
                }  
  
            }  
        }  
  
        if (cookies == null || lastTime == null) {  
  
            // 没有cookie 创建对象  
            // 显示当前时间  
  
            resp.getWriter().write("你好,欢迎登录 这是您的第一次" + cutTime);  
            // 把数据存储到cookie中  
            Cookie cookie = new Cookie("lastTime", cutTime);  
            // 设置过期时间  
            cookie.setMaxAge(1 * 30 * 60 * 24 * 60);  
            // 存储到服务器  
            resp.addCookie(cookie);  
        }  
  
    }  
}  

配置的xml文件



<?xml version="1.0" encoding="UTF-8"?>  
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  
    <!-- 配置servlet -->  
    <!-- servlet配置 -->  
    <servlet>  
        <!--内部名称 -->  
        <servlet-name>firstservlet</servlet-name>  
        <!-- 全名 /first/src/firstservlet/firstservlet.java -->  
        <servlet-class>com.fenuang.sevlvet.firstservlet</servlet-class>  
        <!-- 让servlet对象自动加载 -->  
        <load-on-startup>1</load-on-startup>  
    </servlet>  
    <servlet-mapping>  
        <servlet-name>firstservlet</servlet-name>  
        <!-- servlet映射 路径 访问servlet的名称 -->  
        <url-pattern>/first</url-pattern>  
    </servlet-mapping>  
</web-app>  


  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李晓LOVE向阳

你的鼓励是我持续的不断动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值