Java Web用户登录实例代码

 更新时间:2016年05月29日 11:11:59   作者:itfafa  
这篇文章主要介绍了Java Web用户登录实例代码的相关资料,非常不错具有参考借鉴价值,感兴趣的朋友一起看看吧

实现功能:

1、用户登陆、注销

2、利用session记录用户登陆信息

3、在JSP中展示已登陆用户信息

实现原理:

登陆后通过判断用户名和密码是否和存储的一致,如果一致,就把用户信息放到session中储存;如果不一致就提示信息,并且返回登陆页面。

显示信息页面上固定从session中找用户登陆信息,找到就显示用户信息,没找到就显示登陆框。

注销很简单,就是清空session信息。

主要文件:

1、LoginAction:struts2的Action类,用于处理JAVA端的主要登陆和登出逻辑。

2、login.jsp:用户登陆页面,用户输入用户名和密码,如果登陆失败显示失败信息。

3、page.jsp:登陆成功后显示用户信息。

4、struts.xml:struts的配置文件。

LoginAction:struts2的Action类,用于处理JAVA端的主要登陆和登出逻辑

package luju.me.teach.struts2.login; 
import javax.servlet.http.Cookie; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import javax.servlet.http.HttpSession; 
import org.apache.commons.lang.StringUtils; 
import org.apache.struts2.ServletActionContext; 
import com.opensymphony.xwork2.Action; 
/** 
* @author 鲁炬 http://luju.me 
* 
*/ 
public class LoginAction { 
private String loginname; 
private String password; 
private String msg; 
public String getMsg() { 
return msg; 
} 
public void setMsg(String msg) { 
this.msg = msg; 
} 
public String getLoginname() { 
return loginname; 
} 
public void setLoginname(String loginname) { 
this.loginname = loginname; 
} 
public String getPassword() { 
return password; 
} 
public void setPassword(String password) { 
this.password = password; 
} 
/** 用户登陆 */ 
public String login() { 
if(StringUtils.isBlank(this.loginname)) { 
return Action.INPUT; 
} 
/* 
这里写你自己通过用户名查找用户信息的业务逻辑 
比如:使用手机号登陆 
Citizen user = prmService.queryEGovCitizenByMobile(this.loginname); 
.... 
*/ 
if(user == null || user.getPwd() == null || !user.getPwd().getValue().equals(this.password)) { 
//登陆失败 
this.msg = "用户不存在或密码错误!"; 
return Action.INPUT; 
} else { 
//登陆成功 
//设置session 
this.getSession().setAttribute("_USER_INFO_LOGIN_NAME_", this.loginname); 
this.getSession().setAttribute("_USER_INFO_USER_ID_", user.getId().getValue()); 
this.getSession().setAttribute("_USER_INFO_USER_INFO_", user); 
//设置cookie 
this.getResponse().addCookie(new Cookie("_USER_INFO_LOGIN_NAME_", this.loginname)); 
this.getResponse().addCookie(new Cookie("_USER_INFO_USER_ID_", user.getId().getValue())); 
return Action.SUCCESS; 
} 
} 
/** 
* 注销 
*/ 
public String loginout() { 
//清空session 
this.getSession().invalidate(); 
return Action.SUCCESS; 
} 
public HttpSession getSession() { 
return ServletActionContext.getRequest().getSession(); 
} 
public HttpServletRequest getRequest() { 
return ServletActionContext.getRequest(); 
} 
public HttpServletResponse getResponse() { 
return ServletActionContext.getResponse(); 
} 
} 

struts.xml:struts的配置文件

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> 
<struts> 
<package name="common" namespace="/common"> 
<action name="login" class="luju.me.site.common.action.LoginAction" 
method="login"> 
<result name="input">login.jsp</result> 
<result name="success" type="redirect">/page.jsp</result> 
</action> 
<action name="loginout" class="luju.me.site.common.action.LoginAction" 
method="loginout"> 
<result name="success" type="redirect">login.action</result> 
</action> 
</package> 
</struts> 

login.jsp:用户登陆页面,用户输入用户名和密码,如果登陆失败显示失败信息。

<%@ page language="java" pageEncoding="UTF-8"%> 
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>欢迎登录</title> 
</head> 
<body> 
<div id="login"> 
<span>${msg}</span> 
<form name="form1" method="post" action="<c:url value="/common/login.action" />" > 
<span> 
<label>用户名:</label> 
<input name="loginname" id="loginname" type="text" value="admin" /> 
</span> 
<span> 
<label>密码:</label> 
<input type="password" name="password" id="password" value="123"/> 
</span> 
<span> 
<input type="submit" value="登陆" /> 
</span> 
</form> 
</div> 
</body> 
</html> 

page.jsp:登陆成功后显示用户信息。

<%@ page language="java" pageEncoding="UTF-8"%> 
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 
<% 
boolean isLogin = false; 
String loginName = (String)request.getSession().getAttribute("_USER_INFO_LOGIN_NAME_"); 
if(loginName != null && !"".equals(loginName)){ 
isLogin = true; 
} 
request.setAttribute("isLogin",isLogin); 
request.setAttribute("loginName",loginName); 
%> 
<c:if test="${isLogin}"> 
你好:${loginName} 
&nbsp;&nbsp; 
<a href="<c:url value="/common/loginout.action" />">注销</a> 
</c:if> 
<c:if test="${!isLogin}"> 
<form name="login_form" method="post" action="<c:url value="/common/login.action" />" > 
<span> 
<label>手机号:</label> 
<input name="loginname" id="loginname" type="text" value="" /> 
</span> 
<span> 
<label>密码:</label> 
<input type="password" name="password" id="password" value=""/> 
</span> 
<span> 
<input type="submit" value="登陆" /> 
</span> 
</form> 
</c:if> 

以上所述是小编给大家介绍的Java Web用户登录实例代码,希望对大家有所帮助!

相关文章

  • Spring Security添加二次认证的项目实践

    Spring Security添加二次认证的项目实践

    在用户自动登录后,可以通过对密码进行二次校验进而确保用户的真实性,本文就来介绍一下Spring Security添加二次认证的项目实践,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • Spring Boot结合IDEA自带Maven插件如何快速切换profile

    Spring Boot结合IDEA自带Maven插件如何快速切换profile

    IDEA是目前 Java 开发者中使用最多的开发工具,它有着简约的设计风格,强大的集成工具,便利的快捷键,这篇文章主要介绍了Spring Boot结合IDEA自带Maven插件快速切换profile,需要的朋友可以参考下
    2023-03-03
  • 关于Unsupported major.minor version 49.0的错误解决办法

    关于Unsupported major.minor version 49.0的错误解决办法

    这篇文章主要介绍了关于Unsupported major.minor version 49.0的错误解决办法的相关资料,需要的朋友可以参考下
    2015-11-11
  • 聊聊Spring Boot 如何集成多个 Kafka

    聊聊Spring Boot 如何集成多个 Kafka

    这篇文章主要介绍了Spring Boot 集成多个 Kafka的相关资料,包括配置文件,生成者和消费者配置过程,本文通过实例代码给大家介绍的非常详细,需要的朋友参考下吧
    2023-10-10
  • SpringMVC路径匹配中使用通配符问题

    SpringMVC路径匹配中使用通配符问题

    这篇文章主要介绍了SpringMVC路径匹配中使用通配符问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • JavaBean四个作用域范围的详解

    JavaBean四个作用域范围的详解

    这篇文章主要介绍了JavaBean四个作用域范围的详解的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下
    2017-10-10
  • 使用IDEA配置Tomcat和连接MySQL数据库(JDBC)详细步骤

    使用IDEA配置Tomcat和连接MySQL数据库(JDBC)详细步骤

    这篇文章主要介绍了使用IDEA配置Tomcat和连接MySQL数据库(JDBC)详细步骤,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • 在Java中如何比较两个对象浅析

    在Java中如何比较两个对象浅析

    在工作中我们经常会遇到这样的需求——比较两个对象是否相等,如果不相等的话,取出不相等的字段,这篇文章主要给大家介绍了关于在Java中如何比较两个对象的相关资料,需要的朋友可以参考下
    2021-11-11
  • Spring中@Value使用详解及SPEL表达式

    Spring中@Value使用详解及SPEL表达式

    这篇文章主要介绍了Spring中@Value使用详解及SPEL表达式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • Java中的IO流原理和流的分类详解

    Java中的IO流原理和流的分类详解

    这篇文章主要介绍了Java中的IO流原理和流的分类详解,Java io流是Java编程语言中用于输入和输出操作的一种机制。它提供了一组类和接口,用于处理不同类型的数据流,包括文件、网络连接、内存等,需要的朋友可以参考下
    2023-10-10

最新评论