zoukankan      html  css  js  c++  java
  • struts2简单登陆页面

    首先,先看一下该项目的目录结构,主要看左侧的导航栏的各个文件所属的包以及文件名及后缀!!

    下面我给出各个项的源码,再对这个登陆页面进行一些我的理解,希望我的讲解可以帮助你去理解这个工作的原理!

    web.xml文件源码:

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
        <filter>
            <filter-name>struts2</filter-name>
            <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
        </filter>
        <filter-mapping>
            <filter-name>struts2</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
        <session-config>
            <session-timeout>
                30
            </session-timeout>
        </session-config>
        <welcome-file-list>
            <welcome-file>login.jsp</welcome-file>
        </welcome-file-list>
    </web-app>

    struts.xml源码:

    <!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
    
    <struts>
        <include file="example.xml"/>
        <!-- Configuration for the default package. -->
        <package name="zzf" extends="struts-default">
            <action name="login" class="loginAction.LoginAction">
                <result name="error">/login/fail.jsp</result>
                <result name="success">/login/success.jsp</result>
            </action>
        </package>
    </struts>

    login.jsp文件源码:

    <%-- 
        Document   : login
        Created on : 2020-3-25, 09:02:38
        Author     : 刘标!
    --%>
    
    <%@page contentType="text/html" pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>基于Struts2的登陆系统应用</title>
        </head>
        <body>
            <form action="login" method="post">
                用户名:<input name="userName" type="text" size="26">
                <br>
                密 码 :<input name="passWord" type="password" size="26">
                <br>
                <input type="submit" value="登陆">
            </form>
            <hr>
        </body>
    </html>

    success.jsp文件源码:

    <%-- 
        Document   : success
        Created on : 2020-3-10, 22:10:47
        Author     : 标哥!
    --%>
    
    <%@page contentType="text/html" pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>登陆成功页面</title>
        </head>
        <body>
            <h1>你登陆成功,欢迎你!</h1>
        </body>
    </html>

    fail.jsp文件源码:

    <%-- 
        Document   : fail
        Created on : 2020-3-26, 21:03:08
        Author     : 标哥!
    --%>
    
    <%@page contentType="text/html" pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>登陆失败页面</title>
        </head>
        <body>
            <h1>登陆失败,用户名或密码错误!请返回,重新输入!</h1>
        </body>
    </html>

    LoginAction.java文件源码:

    /*
     * To change this license header, choose License Headers in Project Properties.
     * To change this template file, choose Tools | Templates
     * and open the template in the editor.
     */
    package loginAction;
    
    import loginBean.LoginBean;
    
    /**
     * Document:LoginAction
     * Created on : 2020-3-25, 09:02:02
     * @author 刘标!
     */
    public class LoginAction {
        private String userName;
        private String passWord;
    
        public String getUserName() {
            return userName;
        }
    
        public void setUserName(String userName) {
            this.userName = userName;
        }
    
        public String getPassWord() {
            return passWord;
        }
    
        public void setPassWord(String passWord) {
            this.passWord = passWord;
        }
        public String execute() throws Exception {
            LoginBean lb = new LoginBean();
            if(lb.login(userName,passWord)){
                return "success";
            } else {
                return "error";
            }
        }
    }

    LoginBean.java文件源码:

    /*
     * To change this license header, choose License Headers in Project Properties.
     * To change this template file, choose Tools | Templates
     * and open the template in the editor.
     */
    package loginBean;
    
    /**
     * Document:LoginBean
     * Created on : 2020-3-25, 09:07:11
     * @author 刘标!
     */
    public class LoginBean {
        private String userName;
        private String passWord;
    
        public String getUserName() {
            return userName;
        }
    
        public void setUserName(String userName) {
            this.userName = userName;
        }
    
        public String getPassWord() {
            return passWord;
        }
    
        public void setPassWord(String passWord) {
            this.passWord = passWord;
        }
        public boolean login(String userName,String passWord){
            boolean b = false;
            if(userName.equals("QQ") && passWord.equals("123")){
                b = true;
                return b;
            }
            else{
                b = false;
                return b;
            }
        }
    }

    首先,我们使用tomcat服务器来运行这个项目文件中的登陆首页,也就是login.jsp,运行他之后,成功的话会自动跳转到浏览器页面,显示的内容即为该jsp所定义的内容。如果想要各项文件起作用,必须要求用户点击登陆按钮,在用户输入完用户名和密码后,点击登陆这个事件驱动,这时,由于form表单中的action属性为login,这时候struts.xml文件响应,这是因为在struts文件里面有定义相应的action,该action的属性名与login.jsp中action属性名一致,处理该action,同时,在struts文件中,还设置了class属性(class="loginAction.LoginAction"),他将执行loginAction包下的LoginAction这个文件,即为loginAction.java文件,在这个文件中,定义了两个私有类,包括他们两个的set、get方法外,仅额外增加了一个execute方法,该方法调用了另外一个java类文件,即loginBean文件下的LoginBean.java文件,将其实例化后进行调用它里面的login方法。而在LoginAction.java文件中,同样是定义了两个私有变量和set、get方法,其中的login方法类型为boolean型,由于该项目过于简单,没有引入数据库,就将用户名和密码设置为一个定量,如果用户输入的内容与其匹配则返回相应的布尔值,反之亦然。接着将布尔值返回给LoginAction.java中的调用者,这时,LoginAction.java再返回相应的字符串给调用者,即为struts.xml文件,这时相应用户的事件已经处理完成,再struts文件中的action标签下的result标签开始匹配返回的字符串,如果匹配的字符串为error则将页面跳转到login文件下的fail.jsp给用户,告知用户输入的结果,反之将页面跳转到success.jsp页面。这个登陆界面的基本过程就是这样的了,希望对你有所帮助。

  • 相关阅读:
    C# 冒泡排序
    C# IO流 File.Exists,Directory.Exists, File.Create,Directory.CreateDirectory
    UGUI 哪些显示在前方的问题
    UGUI Image血条或者进度条效果
    Unity 切换场景的时候让某个游戏对象不消失
    C# string型的转换成float型的
    Json 解析Json
    logging模块

    模块和包
  • 原文地址:https://www.cnblogs.com/biaobiao88/p/12577558.html
Copyright © 2011-2022 走看看