检验用户登录信息(没有Filter,比较麻烦)——1.0版

login.jsp


<?xml version="1.0" encoding="UTF-8" ?>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Insert title here</title>
</head>
<body>

<form action="login-process.jsp" method="post">
name: <input type="text" name="name" />
<input type="submit" value="Submit" />
</form>

</body>
</html>


login-process.jsp


<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>

<%

//处理用户登录的 JSP

//1. 获取用户的登录信息, name
String name = request.getParameter("name") ;

//2. 把登录信息存储 Session 中.
//需要判断用户是否直接访问当前页面或在 login.jsp 页面没有输入任何信息就登录
if(name != null && !name.trim().equals("")) {
//OK, 在 Session 中保存用户信息, 转发到 /login/articles.jsp
session.setAttribute("user", name) ;
request.getRequestDispatcher("/login/articles.jsp").forward(request, response) ;

}else {
//直接登录或没有输入登录信息, 重定向到 /login/login.jsp
response.sendRedirect(request.getContextPath() + "/login/login.jsp") ;
}

%>


articles.jsp


<?xml version="1.0" encoding="UTF-8" ?>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Insert title here</title>
</head>
<body>

<a href="article1.jsp">Article111 Page</a>
<br /><br />

<a href="article2.jsp">Article222 Page</a>
<br /><br />

<a href="article3.jsp">Article333 Page</a>
<br /><br />

<a href="article4.jsp">Article444 Page</a>
<br /><br />

<a href="logout.jsp">Logout</a>

</body>
</html>


article1.jsp


<?xml version="1.0" encoding="UTF-8" ?>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Insert title here</title>
</head>
<body>

<%
//判断用户是否登录: 即判断 Session 中有没有登录信息
Object obj = session.getAttribute("user") ;
//若没有登录信息, 则把页面重定向到 /login/login.jsp
if(null == obj) {
response.sendRedirect(request.getContextPath() + "/login/login.jsp") ;
}

//若有登录信息, OK, 可以访问当前页面
%>

Article 111

</body>
</html>


article2.jsp


<?xml version="1.0" encoding="UTF-8" ?>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Insert title here</title>
</head>
<body>

<%
//判断用户是否登录: 即判断 Session 中有没有登录信息
Object obj = session.getAttribute("user") ;
//若没有登录信息, 则把页面重定向到 /login/login.jsp
if(null == obj) {
response.sendRedirect(request.getContextPath() + "/login/login.jsp") ;
}

//若有登录信息, OK, 可以访问当前页面
%>

Article 222

</body>
</html>


article3.jsp


<?xml version="1.0" encoding="UTF-8" ?>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Insert title here</title>
</head>
<body>

<%
//判断用户是否登录: 即判断 Session 中有没有登录信息
Object obj = session.getAttribute("user") ;
//若没有登录信息, 则把页面重定向到 /login/login.jsp
if(null == obj) {
response.sendRedirect(request.getContextPath() + "/login/login.jsp") ;
}

//若有登录信息, OK, 可以访问当前页面
%>

Article 333

</body>
</html>


article4.jsp


<?xml version="1.0" encoding="UTF-8" ?>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Insert title here</title>
</head>
<body>

<%
//判断用户是否登录: 即判断 Session 中有没有登录信息
Object obj = session.getAttribute("user") ;
//若没有登录信息, 则把页面重定向到 /login/login.jsp
if(null == obj) {
response.sendRedirect(request.getContextPath() + "/login/login.jsp") ;
}

//若有登录信息, OK, 可以访问当前页面
%>

Article 444

</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现用户的自动登录功能需要在用户登录时,将用户的登录信息存储到本地浏览器的cookie或localStorage中。然后在每次用户访问网站时,通过检查本地存储的登录信息,判断用户是否已经登录,如果已经登录,则自动登录。 下面是使用filter实现用户的自动登录功能的步骤: 1. 创建一个filter类,并实现doFilter方法。 2. 在doFilter方法中获取用户的cookie或localStorage中的登录信息。 3. 如果存在登录信息,则将用户的登录状态设置为已登录。 4. 如果不存在登录信息,则将用户的登录状态设置为未登录。 5. 在web.xml文件中配置filter。 下面是一个示例代码: ```java public class AutoLoginFilter implements Filter { private static final String LOGIN_TOKEN = "login_token"; private static final String LOGIN_USER = "login_user"; @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest) request; HttpServletResponse res = (HttpServletResponse) response; HttpSession session = req.getSession(); String token = (String) session.getAttribute(LOGIN_TOKEN); if (token != null) { // 已经登录,设置登录状态 User user = getUserByToken(token); if (user != null) { session.setAttribute(LOGIN_USER, user); } } else { // 未登录,设置登录状态 session.setAttribute(LOGIN_USER, null); } chain.doFilter(req, res); } private User getUserByToken(String token) { // 根据token获取用户信息 // 如果token无效,返回null } // 初始化和销毁方法 @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void destroy() { } } ``` 在web.xml文件中配置filter: ```xml <filter> <filter-name>AutoLoginFilter</filter-name> <filter-class>com.example.AutoLoginFilter</filter-class> </filter> <filter-mapping> <filter-name>AutoLoginFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> ``` 这样,当用户访问网站时,filter会自动检查本地存储的登录信息,如果存在登录信息,则将用户的登录状态设置为已登录,并将用户信息存储到session中,以便后续使用。如果不存在登录信息,则将用户的登录状态设置为未登录。通过这种方式,就可以实现用户的自动登录功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值