java的用户登录怎样记住上次登录的用户名和密码?
2017-03-02 13:18
435 查看
Java实现,用户在登录登录界面时可以记住上一次登录的用户名。本人认为可以有两种解决方案:
第一:使用数据库实现;具体实现为,新建表login。最简单的设计为里面有两个字段,一个字段为用户名,另外一个为本机IP地址。
第二:可以使用Cookie技术来实现;具体的实现代码如下(注:代码实现的是记录上一次登录的时间,把时间改为用户名即可):
[java] view
plain copy
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/9e12f1d3e499fc949c886e7c9e0484f9)
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>
第一:使用数据库实现;具体实现为,新建表login。最简单的设计为里面有两个字段,一个字段为用户名,另外一个为本机IP地址。
第二:可以使用Cookie技术来实现;具体的实现代码如下(注:代码实现的是记录上一次登录的时间,把时间改为用户名即可):
[java] view
plain copy
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
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>
相关文章推荐
- java的用户登录怎样记住上次登录的用户名和密码?
- 公司局域网内访问其他电脑,为了方便,第一次登录时用户名和密码选择了记住,现在想更换用户登陆
- JavaWeb登录、注销、退出、记住用户名和密码-session
- 用户登录时的用户名密码加密解密问题和“记住密码”功能
- JavaWeb登录、注销、退出、记住用户名和密码
- ActionScript 实现用户登录时记住用户名和密码
- iOS 与Java 配合在用户登录的时候对用户名和密码进行RSA加密
- android开发,以记住用户登录密码为例说明SharedPreferences的简单应用
- 记一次登录程序的改进过程(改进记住密码功能、提高用户交互)
- 使用Jquery搭建最佳用户体验的登录页面 之 记住密码自动登录功能,(含后台代码)
- 记一次登录程序的改进过程(改进记住密码功能、提高用户交互)
- 用户登录 和 “记住密码”功能
- 让xp机器不记住登录用户名密码
- 记一次登录程序的改进过程(改进记住密码功能、提高用户交互)
- 使用Jquery搭建最佳用户体验的登录页面之记住密码自动登录功能(含后台代码)
- 记一次登录程序的改进过程(改进记住密码功能、提高用户交互)
- JAVA J2SE SWING AWT 登录界面 输入用户名和密码 登录器
- 记一次登录程序的改进过程(改进记住密码功能、提高用户交互)
- 记一次登录程序的改进过程(改进记住密码功能、提高用户交互)
- paip.提升用户体验----记住用户名与自动登录