J2EE 实验一

实验一 基于Struts2的登录系统实现

一、目的与任务

目的:熟悉在集成开发平台上配置Struts2框架,学习Struts2编程

任务:在集成开发平台上创建Struts2项目,实现登录系统

二、内容、要求与安排方式

1、实验内容与要求:

  1. 下载Struts2软件包并了解Struts2软件包中主要文件;

  2. 学习在集成开发平台上配置Struts2框架,熟悉Struts2框架编程;

  3. 实现基于Struts2的登录系统,若正确页面跳转到成功页面,不正确页面跳转到登录页面。

可选题:修改登录系统连接数据库,访问数据库判断输入的用户名和密码是否存在。

2、 具体操作步骤:

  1. Intellij IDEA平台上创建Dynamic Web ProjectDynamic Web ProjectEclipse下的表述,在IDEA中应当选择Web Application,然后选择Struct2,如图所示:

  2. 添加Struts2框架常用jar包至项目lib文件夹,Struts2框架常用jar包有:commons-fileupload-1.2.2.jarcommons-io-2.0.1.jarfreemarker-2.3.16.jarjavassist-3.11.0.GA.jarognl-3.0.1.jarstruts2-core-2.2.3.1.jarxwork-core-2.2.3.1.jarcommons-lang3-3.1.jar、commons-logging-1.1.1.jar

    在下放选择Use Library -> create,导入已经下载完成的Struts2框架常用jar包。使用的Struct2版本是 2.5.22 2.5.22 2.5.22


    配置struct2 项目最终的整体结构如下


项目整体结构

  1. web.xml中配置核心控制器FilterDispatcher

    xml 复制代码
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app 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_4_0.xsd"
             version="4.0">
        <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>
        <welcome-file-list>
            <welcome-file>login.jsp</welcome-file>
        </welcome-file-list>
    </web-app>

    web.xml

  2. 编写视图组件login.jsp, success.jsp,fail.jsp

    html 复制代码
    <%--
      Created by IntelliJ IDEA.
      User: Lunatic
      Date: 2020/5/6
      Time: 9:03
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>基于Struts2的登录系统应用</title>
    </head>
    <body>
    <form method="post" action="login">
        用户名:<input name="userName" type="text" size="26">
        <br>
        密码:<input name="passWord" type="password" size="26">
        <br>
        <input type="submit" value="登录">
    </form>
    <hr>
    </body>
    </html>


    登录界面login.jsp

html 复制代码
<%--
  Created by IntelliJ IDEA.
  User: Lunatic
  Date: 2020/5/6
  Time: 9:08
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>登录成功页面</title>
</head>
<body>
<h1>你登录成功,欢迎你!!!</h1>
</body>
</html>


登录成功界面success.jsp

html 复制代码
<%--
  Created by IntelliJ IDEA.
  User: Lunatic
  Date: 2020/5/6
  Time: 15:20
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>抱歉,登陆失败</title>
</head>
<body>
<h1>请检查登录名或密码是否正确</h1>
</body>
</html>


登录失败界面fail.jsp

  1. 编写登录页面对应的业务逻辑组件LoginBean
java 复制代码
package LoginBean;

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("Lunatic") && passWord.equals("000000")) {
            b = true;
        }
        else {
            b = false;
        }
        return b;
    }
}

LoginBean.java

  1. 编写业务控制器LoginAction.java
java 复制代码
package LoginAction;
import LoginBean.LoginBean;

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";
        }
    }
}

LoginAction.java

  1. struts.xml中配置Action

    xml 复制代码
    <?xml version="1.0" encoding="UTF-8"?>
    
    <!DOCTYPE struts PUBLIC
            "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
            "http://struts.apache.org/dtds/struts-2.5.dtd">
    
    <struts>
        <package name="zzf" extends="struts-default" namespace="/">
            <action name="login" class="LoginAction.LoginAction">
                <result name="error">/fail.jsp</result>
                <result name="success">/login/success.jsp</result>
            </action>
        </package>
    </struts>

    struct.xml

  2. 启动服务器,运行页面即可。本地页面地址http://localhost:8080/First_Web_Project_war_exploded/_


    本地Tomcat服务器启动


    登录界面打开正常


输入正确的用户名和密码,登录成功


输入用户名、密码错误,登陆失败

相关推荐
西瓜籽@10 小时前
STM32——毕设基于单片机的多功能节能窗控制系统
stm32·单片机·课程设计
小飞鹰工程师1 天前
基于Multisim拔河比赛游戏+计分电路(含仿真和报告)
课程设计·数字电路·multisim·模拟电路·数字电子技术
工业互联网专业1 天前
Python毕业设计选题:基于Hadoop的租房数据分析系统的设计与实现
vue.js·hadoop·python·flask·毕业设计·源码·课程设计
B站计算机毕业设计超人2 天前
计算机毕业设计Hadoop+大模型地震预测系统 地震数据分析可视化 地震爬虫 大数据毕业设计 Spark 机器学习 深度学习 Flink 大数据
大数据·hadoop·爬虫·深度学习·机器学习·数据分析·课程设计
B站计算机毕业设计超人3 天前
计算机毕业设计Hadoop+PySpark深度学习游戏推荐系统 游戏可视化 游戏数据分析 游戏爬虫 Scrapy 机器学习 人工智能 大数据毕设
大数据·人工智能·爬虫·spark·课程设计·数据可视化·推荐算法
极客小张3 天前
基于STM32的实时监测环境系统设计:Flask、SQLite、Vue.js、HTTP/TCP技术
c语言·stm32·单片机·物联网·毕业设计·课程设计·python后端
工业互联网专业3 天前
Python毕业设计选题:基于大数据的旅游景区推荐系统_django
大数据·vue.js·python·django·毕业设计·源码·课程设计
程序媛96883 天前
计算机毕业设计——ssm基于JAVA的求职招聘网站的设计与实现演示录像 2021
java·开发语言·毕业设计·求职招聘·课程设计
毕业设计制作和分享3 天前
ssm校园二手交易管理系统+vue
开发语言·前端·javascript·vue.js·mybatis·课程设计
工业互联网专业3 天前
Python毕业设计选题:基于Web学生会网站的设计与实现-django
vue.js·python·django·毕业设计·源码·课程设计