- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章JavaWeb实现自动登录功能由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
本文实例为大家分享了JavaWeb实现自动登录功能的具体代码,供大家参考,具体内容如下 。
自动登录是通过存储cookie值来实现的.
工程目录如下:
login.jsp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<
html
>
<
head
>
<
meta
http-equiv
=
"Content-Type"
content
=
"text/html; charset=utf-8"
>
<
title
>登录</
title
>
</
head
>
<
body
>
<
form
action
=
"login"
method
=
"post"
>
用户名:<
input
name
=
"username"
type
=
"text"
><
br
>
密码:<
input
name
=
"password"
type
=
"password"
>
<
input
type
=
"checkbox"
name
=
"autoLogin"
value
=
"autoLogin"
>自动登录
<
input
type
=
"submit"
value
=
"提交"
>
</
form
>
</
body
>
</
html
>
|
success.jsp(主要用于测试是否储存成功)
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<
html
>
<
head
>
<
meta
http-equiv
=
"Content-Type"
content
=
"text/html; charset=utf-8"
>
<
title
>Insert title here</
title
>
</
head
>
<
body
>
${sessionScope.username }<
br
>
${sessionScope.password }
</
body
>
</
html
>
|
LoginServlet(用于登录逻辑处理)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
package
servletLogin;
import
java.io.IOException;
import
java.net.URLEncoder;
import
javax.servlet.ServletException;
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;
public
class
LoginServlet
extends
HttpServlet {
private
static
final
long
serialVersionUID = 1L;
protected
void
doGet(HttpServletRequest request, HttpServletResponse response)
throws
ServletException, IOException {
doPost(request,response);
}
protected
void
doPost(HttpServletRequest request, HttpServletResponse response)
throws
ServletException, IOException {
request.setCharacterEncoding(
"utf-8"
);
String username = request.getParameter(
"username"
);
String password = request.getParameter(
"password"
);
HttpSession session = request.getSession();
//登录成功,(在这应该是和数据库的值对比)
if
(username.equals(
"alan呵呵"
) && password.equals(
"123"
)){
String autoLogin = request.getParameter(
"autoLogin"
);
if
(autoLogin!=
null
){
//编码是为了在cookie中存储汉字
String usernameCode = URLEncoder.encode(username,
"utf-8"
);
Cookie usernameCookie =
new
Cookie(
"username"
,usernameCode);
Cookie passwordCookie =
new
Cookie(
"password"
,password);
//设置持久化时间
usernameCookie.setMaxAge(
60
*
60
);
passwordCookie.setMaxAge(
60
*
60
);
//设置cookie携带路径
usernameCookie.setPath(request.getContextPath());
passwordCookie.setPath(request.getContextPath());
//发送cookie
response.addCookie(usernameCookie);
response.addCookie(passwordCookie);
}
session.setAttribute(
"username"
, username);
session.setAttribute(
"password"
, password);
response.sendRedirect(
"success.jsp"
);
}
else
{
request.getRequestDispatcher(
"login.jsp"
).forward(request, response);
}
}
}
|
LoginFilter(用于自动登录的拦截器)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
package
filter;
import
java.io.IOException;
import
java.net.URLDecoder;
import
javax.servlet.Filter;
import
javax.servlet.FilterChain;
import
javax.servlet.FilterConfig;
import
javax.servlet.ServletException;
import
javax.servlet.ServletRequest;
import
javax.servlet.ServletResponse;
import
javax.servlet.http.Cookie;
import
javax.servlet.http.HttpServletRequest;
import
javax.servlet.http.HttpSession;
public
class
LoginFilter
implements
Filter {
public
void
doFilter(ServletRequest request, ServletResponse response,
FilterChain chain)
throws
IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
HttpSession session = req.getSession();
// 获得cookie中用户名和密码 进行登录的操作
// 定义cookie_username
String cookie_username =
null
;
// 定义cookie_password
String cookie_password =
null
;
// 获得cookie
Cookie[] cookies = req.getCookies();
if
(cookies !=
null
) {
for
(Cookie cookie : cookies) {
// 获得名字是cookie_username和cookie_password
if
(
"username"
.equals(cookie.getName())) {
cookie_username = cookie.getValue();
// 对cookie中的值解码
cookie_username = URLDecoder.decode(cookie_username,
"UTF-8"
);
}
if
(
"password"
.equals(cookie.getName())) {
cookie_password = cookie.getValue();
}
}
}
if
(cookie_username !=
null
&& cookie_password !=
null
){
if
(cookie_username.equals(
"alan呵呵"
) && cookie_password.equals(
"123"
)){
session.setAttribute(
"username"
, cookie_username);
session.setAttribute(
"password"
, cookie_password);
}
}
chain.doFilter(request, response);
}
public
void
destroy() {
}
public
void
init(FilterConfig fConfig)
throws
ServletException {
}
}
|
web.xml配置文件:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
<
web-app
xmlns:xsi
=
"http://www.w3.org/2001/XMLSchema-instance"
xmlns
=
"http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation
=
"http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id
=
"WebApp_ID"
version
=
"2.5"
>
<
display-name
>WEB24</
display-name
>
<!-- 自动登录的filter -->
<
filter
>
<
filter-name
>AutoLoginFilter</
filter-name
>
<
filter-class
>filter.LoginFilter</
filter-class
>
</
filter
>
<
filter-mapping
>
<
filter-name
>AutoLoginFilter</
filter-name
>
<
url-pattern
>/*</
url-pattern
>
</
filter-mapping
>
<
welcome-file-list
>
<
welcome-file
>login.jsp</
welcome-file
>
</
welcome-file-list
>
<
servlet
>
<
servlet-name
>LoginServlet</
servlet-name
>
<
servlet-class
>servletLogin.LoginServlet</
servlet-class
>
</
servlet
>
<
servlet-mapping
>
<
servlet-name
>LoginServlet</
servlet-name
>
<
url-pattern
>/login</
url-pattern
>
</
servlet-mapping
>
</
web-app
>
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.
原文链接:https://blog.csdn.net/Alan_TW/article/details/80535844 。
最后此篇关于JavaWeb实现自动登录功能的文章就讲到这里了,如果你想了解更多关于JavaWeb实现自动登录功能的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我正在尝试为我的用户提供使用 Google 或 Facebook 登录的选项。到目前为止,我找到了一个实现 Google 登录流程的示例,但如果我可以在同一 Activity 中实现类似的 Faceb
我有一个网页,它对用户是否登录很敏感。我使用的是 Google 登录 Javascript SDK。当用户到达此页面时,我想显示一个插页式广告(“正在加载...”),然后 1)如果用户已登录则呈现页面
我用 digitalocean 创建了一个 droplet,并使用 apt install mariadb-server 命令安装了 mariadb。现在我想使用 php 连接到我的服务器,我使用这个
这个问题在这里已经有了答案: Inno Setup - Signing fails with "Sign Tool failed with exit code 0x1" (2 个回答) 3年前关闭。
我正在尝试使用他们的新 API 实现 google 登录:https://developers.google.com/identity/sign-in/web/ 登录和注销工作正常。我的问题是我不知道
我的应用程序具有谷歌登录、Facebook 登录和 braintree 集成。 我已将以下代码放入 appdelegate.swift 中: func application(_ applicatio
我有一个 Flask 应用程序,最近在我的登录/退出表单中实现了 Flask-Login: @account.route('/sign-in', methods=['POST', 'GET']) de
friend 们,我是初学者级别的 ios swift 学习者。我一直在尝试在我的试用应用程序中进行谷歌登录。根据来自谷歌开发人员和其他教程的资源,我成功地使用 UIView 进行了登录。然后我试图在
我正在使用 Ionic 在 Codeigniter/Ion_Auth/codeigniter-restclient 之上构建登录系统,当我尝试从“ionic 服务器”登录时,登录可以正常工作,但对 L
在 Docker 文件中我有这个 FROM ubuntu RUN apt update && apt -y upgrade RUN apt install -y sudo # Setup ops us
对于 Java 开发,我使用 Slf4j 和 Logback。 Logger logger = LoggerFactory.getLogger(HelloWorld.class); logger.de
在 Scala 应用程序中进行日志记录的好方法是什么?与语言哲学一致的东西,不会使代码困惑,并且维护成本低且不引人注目。以下是基本要求列表: 简单 不会使代码困惑。 Scala 以其简洁而著称。我不希
我正在尝试将我的登录名转换为 Retrofit2 我的旧 LoginActivity: public class LoginActivity extends Activity { private st
我正在尝试让 google+ 登录在 android 上运行。我的问题是,每当我使用 eclipse 运行它时,google 开发站点上提供的示例都能完美运行。当我签署 apk 并在我的设备上手动安装
这个问题已经有答案了: JS Simple but Safe Login? [closed] (1 个回答) 已关闭 6 年前。 我正在尝试使用 JavaScript 创建登录页面。它实际上只是一个带
其他章节请看: react 高效高质量搭建后台系统 系列 登录 本篇将完成 登录模块 。效果和 spug 相同: 需求 如下:
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 1 年前。
我在使用 ReactJs 中的 facebook-login 组件时遇到问题,代码与文档中的完全一样,但仍然无法正常工作。你能帮我找出我做错了什么吗? import React, { Componen
我有一个项目,其中包含许多具有自己的日志记录的“工具”类。这些日志文件是在应用程序启动时创建的,但在使用之前一直为空。 是否可以告诉logback在启动时不应该创建空文件?但是仅在使用它们时? 不知何
我正在创建一个需要用户授权才能访问某些功能的网站。我目前正在研究用户如何创建帐户以及如何利用 session 来授权他们的登录。用户信息存储在名为 user 的 MySQL 表中,其中可能包括用户名和
我是一名优秀的程序员,十分优秀!