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


    登录界面打开正常


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


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

相关推荐
我命由我123453 小时前
Photoshop - Photoshop 工具栏(24)磁性套索工具
学习·ui·职场和发展·求职招聘·职场发展·课程设计·美工
清风6666664 小时前
基于单片机的智能高温消毒与烘干系统设计
数据库·单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
点灯小铭13 小时前
基于单片机的超声波自动泥浆回收系统
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
点灯小铭1 天前
基于单片机的交流功率测量仪设计与实现
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
爱好读书2 天前
一键生成系统架构图
系统架构·毕业设计·课程设计
李白的粉2 天前
基于springboot的新闻资讯系统
java·spring boot·毕业设计·课程设计·源代码·新闻资讯系统
程序猿_极客2 天前
【期末网页设计作业】HTML+CSS+JavaScript 猫咪主题网站开发(附源码与效果演示)
前端·css·html·课程设计·网页设计作业
毕设源码-林学长4 天前
计算机毕业设计java和Vue的安全教育科普平台设计与实现 安全知识普及与教育平台 安全教育信息化管理平台
java·开发语言·课程设计
Mr.Aholic5 天前
分享几个开源的系统,包括小程序、商城系统、二手交易等常见的系统、很容易进行二次开发 【可以参考学习】
微信小程序·小程序·毕业设计·课程设计
IT学长编程6 天前
计算机毕业设计 基于Python的热门游戏推荐系统的设计与实现 Django 大数据毕业设计 Hadoop毕业设计选题【附源码+文档报告+安装调试】
大数据·python·django·毕业设计·课程设计·毕业论文