`

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>


分享到:
评论
2 楼 code_xiaoke 2016-06-26  
session可是有30分钟有效期的
还有如果在分布式的环境下  用户信息保存在哪里呢?
1 楼 xul0038 2015-11-28  

相关推荐

    java WEB登录实例

    Java Web登录实例是一个...通过阅读和运行这些代码,你可以加深对Java Web登录机制的理解,为后续的Web开发打下坚实基础。同时,这也是实践和提升编程技能的好机会,因为理论学习总是需要结合实际操作才能真正掌握。

    webservices示例代码

    本示例代码是关于如何创建和使用Web服务的一个简明教程,旨在帮助开发者理解Web服务的基本概念、配置和实现。 一、Web服务基础 Web服务的核心技术包括SOAP(Simple Object Access Protocol)、WSDL(Web Services ...

    java代码规范示例

    "java代码规范示例" Java 代码规范示例中,涵盖了 Java 项目中包、类、方法、注释等多个方面的规范。 首先,从文件头的注释部分可以看到,这个 Java 文件是一个 FTP 帮助类,负责实现 FTP 的上传和下载功能。这个...

    Java Web开发范例源代码

    8. **文件上传和下载**:在Java Web应用中,源代码可能会包含处理文件上传和下载的示例,使用诸如Commons FileUpload等库。 9. **安全机制**:例如,登录认证、权限控制等,你可能会看到基于HTTP基本认证、表单认证...

    JavaServlet示例代码

    JavaServlet是一种用于构建动态Web应用...以上就是关于"JavaServlet示例代码"的关键知识点,涵盖了Servlet的基本用法、用户注册登录流程以及常见的安全性考虑。理解和掌握这些内容对于深入学习Java Web开发至关重要。

    基于Spring Boot开发的java web 仓库管理系统 CRUD(增删查改)web系统操作示例代码

    系统功能模块包括: 仓库列表展示:展示所有仓库的姓名和邮箱信息; 仓库添加:提供输入界面,允许添加新仓库;...基于Spring Boot开发的java web 用户管理系统 CRUD(增删查改)web系统操作示例代码

    Java完整的Web Service示例代码,学会做web service程序

    Web服务是一种基于标准...总的来说,这个Java Web Service示例代码是一个很好的起点,它涵盖了服务端开发和客户端调用的基本流程。深入学习和实践,你将能够熟练地创建和使用各种Web服务,实现不同系统间的无缝集成。

    java web开发教程全部代码

    这个"java web开发教程全部代码"压缩包提供了全面的学习资源,旨在帮助初学者和进阶者深入理解Java Web开发的核心概念与实践技巧。 首先,Java Web开发的基础是Java Servlet和JavaServer Pages (JSP)。Servlet是...

    Java Web开发详解 源代码

    孙鑫老师的"Java Web开发详解"是一本深入解析这个领域的书籍,提供了丰富的示例代码来帮助读者理解并实践相关概念。在这个压缩包中,你将找到书中所有示例代码的源文件,这对于学习和参考是非常宝贵的资源。 Java ...

    java web接口开发demo

    本示例"java web接口开发demo"可能是提供了一个简单的Java Web接口的实现,帮助开发者理解如何构建和使用这样的接口。 首先,让我们了解一下Servlet,它是Java Web应用的核心组件之一,用于接收HTTP请求并返回响应...

    Java web程序下的图书管理系统源代码

    这个“图书管理系统”是利用Java Web技术实现的一个典型示例,它包含了数据库的增删改查功能,非常适合初学者学习和参考。 1. **Java Web基础** - **Servlet**:Java Web应用程序的核心组件,用于处理HTTP请求并...

    java web 购物车代码

    这个"java web 购物车代码"项目显然是一个实现这一功能的示例。以下是这个项目可能涉及的关键知识点和详细说明: 1. **Servlet与JSP**:在Java Web应用中,Servlet用于处理HTTP请求,而JSP(JavaServer Pages)用于...

    java web开发详解源代码

    这是一种常见的Java Web应用架构,它将业务逻辑(Model)、用户界面(View)和控制逻辑(Controller)分离,提高了代码的可维护性和可扩展性。在源代码中,可能会看到Controller类用于处理请求,Model类用于封装数据...

    Web Services示例Java代码.zip

    示例代码可能包括如何使用JAX-WS的`Service`类或者Apache CXF等第三方库来创建Web服务客户端,调用服务接口并处理返回的数据。 7. **测试Web服务** 开发者通常使用`wsimport`工具生成Java客户端代理类,或者使用...

    经典 java web例子

    Java Web是一种基于Java技术构建Web应用程序的框架和标准,它结合了Java服务器页面(JSP)、Servlet、JavaServer Faces(JSF)等组件,为开发人员提供了强大的后端支持和丰富的用户界面创建工具。本教程将围绕“经典...

    JAVA WEB 选课系统源代码

    【JAVA WEB 选课系统源代码】是一个典型的Java Web应用程序示例,对于初学者和有经验的开发者来说,都是一个宝贵的资源。这个项目的核心是利用Java语言和Web技术来构建一个能够实现学生选课功能的系统。下面我们将...

    Java Web编程宝典源代码

    源代码提供了书本理论知识的具体实践示例,帮助读者更直观地理解Java Web编程的核心概念和技术。这里我们将详细解析其中涉及的关键知识点。 1. **Servlet与JSP**:Servlet是Java Web应用的基础,它是一个Java类,...

    Qrcode生成二维码(Java web项目方法示例)

    本示例将介绍如何在Java Web环境中实现二维码生成,并提供了一个具体的目录结构和代码实现。 首先,我们需要了解生成二维码的核心库——`qrcode-gen`或者`zbar`等。这些库提供了将文本数据编码为图像的功能,使得...

    深入体验Java Web开发内幕 源代码

    2. **MVC设计模式**:Model-View-Controller模式在Java Web应用中广泛使用,用于分离业务逻辑、数据模型和用户界面。源代码可能会展示如何组织这些组件,如使用DispatcherServlet作为入口点,控制请求分发,并结合...

    零点起飞学Java Web随书源代码

    "零点起飞学Java Web随书源代码"是一个学习资源,旨在帮助初学者理解和实践Java Web开发。这本书可能详细讲解了Java Web的基础概念、核心技术以及实际应用案例,并附带了这些源代码,以便读者可以亲手运行和调试。 ...

Global site tag (gtag.js) - Google Analytics