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服务器启动


    登录界面打开正常


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


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

相关推荐
点灯小铭11 小时前
基于STM32单片机智能RFID刷卡汽车位锁桩设计
stm32·单片机·汽车·毕业设计·课程设计
IT毕设实战小研1 天前
基于Spring Boot 4s店车辆管理系统 租车管理系统 停车位管理系统 智慧车辆管理系统
java·开发语言·spring boot·后端·spring·毕业设计·课程设计
清风6666662 天前
基于51单片机的手机蓝牙控制8位LED灯亮灭设计
单片机·嵌入式硬件·智能手机·毕业设计·51单片机·课程设计
IT毕设实战小研3 天前
基于Spring Boot校园二手交易平台系统设计与实现 二手交易系统 交易平台小程序
java·数据库·vue.js·spring boot·后端·小程序·课程设计
IT毕设实战小研3 天前
Java毕业设计选题推荐 |基于SpringBoot的健身爱好线上互动与打卡社交平台系统 互动打卡小程序系统
java·开发语言·vue.js·spring boot·vue·毕业设计·课程设计
IT毕设实战小研3 天前
基于SpringBoot的救援物资管理系统 受灾应急物资管理系统 物资管理小程序
java·开发语言·vue.js·spring boot·小程序·毕业设计·课程设计
计算机毕业设计木哥4 天前
计算机毕设大数据选题推荐 基于spark+Hadoop+python的贵州茅台股票数据分析系统【源码+文档+调试】
大数据·hadoop·python·计算机网络·spark·课程设计
计算机毕业设计木哥4 天前
基于大数据spark的医用消耗选品采集数据可视化分析系统【Hadoop、spark、python】
大数据·hadoop·python·信息可视化·spark·课程设计
点灯小铭5 天前
基于K210的车牌识别设计
单片机·毕业设计·课程设计
IT毕设实战小研5 天前
Java毕业设计选题推荐 |基于SpringBoot的水产养殖管理系统 智能水产养殖监测系统 水产养殖小程序
java·开发语言·vue.js·spring boot·毕业设计·课程设计