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 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

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

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    登录界面打开正常

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

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

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/302490.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C盘突然满了,怎么清理

方法一 winr 输入%tem%按回车键&#xff0c;出现的这些都是缓存文件可以按删除键删掉 方法二 winr 输入cleanmgr按回车键&#xff0c;选择清理的盘符&#xff0c;这里选择C盘&#xff0c;点击确定删除 方法三 在系统设置里手动删除 找到电脑里面的设置选项&#xff0c;找…

第九节HarmonyOS 常用基础组件12-TextTimer

1、描述 通过文本显示计时信息并控制其计时器状态的组件。 2、接口 TextTimer(options?: {isCountDown?: boolean, count?: number, controller?: TextTimerController}) 3、参数 参数名称 参数类型 必填 描述 isCountDown boolean 否 是否倒计时。默认值&#…

LeetCode刷题--- 珠宝的最高价值

个人主页&#xff1a;元清加油_【C】,【C语言】,【数据结构与算法】-CSDN博客 个人专栏 力扣递归算法题 http://t.csdnimg.cn/yUl2I 【C】 ​​​​​​http://t.csdnimg.cn/6AbpV 数据结构与算法 ​​​http://t.csdnimg.cn/hKh2l 前言&#xff1a;这个专栏主要讲述动…

如何启用Windows电脑的内置Administrator账户

前言 不知道从什么时候开始&#xff0c;新电脑或者新系统开机之后都会出现一个界面让你创建一个账户&#xff0c;但这个账户有可能是本地账户&#xff08;Windows10&#xff09;还有强制你登录微软账户的&#xff08;Windows11&#xff09;。 好像曾经熟悉的电脑Administrator…

750ml离心瓶进口国产离心机通用750ml离心杯高低速离心机瓶

750ml低速离心瓶系列&#xff1a; 产品货号&#xff1a;ZY1136222 材质&#xff1a;PPCO 容量&#xff08;ml&#xff09;&#xff1a;750 尺寸&#xff08;O.DxH,mm&#xff09;&#xff1a;98.5x147 最大离心力&#xff08;xg&#xff09;&#xff1a;6000 产品货号&…

Vue2:通过props给组件传数据

一、业务场景 我们在使用Vue组件时&#xff0c;常常会复用Vue组件&#xff0c;那么&#xff0c;问题来了&#xff0c;复用的时候&#xff0c;业务数据不相同&#xff0c;怎么办了&#xff1f; 这里我们就需要学习新的属性&#xff1a;props来实现这个功能。 这样&#xff0c;组…

代码随想录day23 二叉岁终章

669. 修剪二叉搜索树 题目 给定一个二叉搜索树&#xff0c;同时给定最小边界L 和最大边界 R。通过修剪二叉搜索树&#xff0c;使得所有节点的值在[L, R]中 (R>L) 。你可能需要改变树的根节点&#xff0c;所以结果应当返回修剪好的二叉搜索树的新的根节点。 思考 这题有个…

ComfyUI报错AttributeError: module ‘cv2.gapi.wip.draw‘ has no attribute ‘Text‘

ComfyUI在安装comfyui-reactor-node插件,然后启动之后突然报错: AttributeError: module cv2.gapi.wip.draw has no attribute Text 这是怎么回事呢? 于是四处搜寻答案。 总之就是opencv-python版本的问题导致的。 我将有可能解决办法的方法进行了总结。 下面列出所有解…

数字人源码部署新机遇,预测2024年AI应用将出现爆发式增长

近日&#xff0c;钉钉联合IDC发布《2024 AIGC应用层十大趋势白皮书》&#xff0c;其中&#xff0c;IDC预测到&#xff0c;2024年AI应用将出现爆发式增长&#xff0c;到2024年全球将涌现出超过5亿个新应用&#xff0c;到2026年&#xff0c;2/3的云应用将使用AI。 看来&#xff…

selenium如何使用隧道代理请求目标地址?

使用Selenium结合隧道代理IP可以通过以下步骤实现&#xff1a; 获取代理IP&#xff1a; 首先&#xff0c;你需要获得一个可用的隧道代理IP。你可以使用代理服务提供商&#xff08;巨量IP平台提供免费隧道代理测试&#xff09; 安装Selenium&#xff1a; 如果你还没有安装Selen…

基于CNC车间的复合机器人柔性上下料系统改造方案

在制造业中&#xff0c;CNC车间一直面临着提高生产效率、降低人工成本和提升柔性生产能力的挑战。针对这些行业痛点&#xff0c;富唯智能为您提供一种创新的解决方案&#xff1a;复合机器人柔性上下料系统。本方案结合了先进的机器人技术和自动化系统&#xff0c;旨在提高生产效…

Qt 6之五:创建菜单

Qt 6之五&#xff1a;创建菜单 Qt是一种跨平台的C应用程序开发框架&#xff0c;它提供了一套丰富的工具和库&#xff0c;可以帮助开发者快速构建跨平台的应用程序&#xff0c;用于开发图形用户界面&#xff08;GUI&#xff09;和非GUI应用程序。 Qt 6之一&#xff1a;简介、安…

LabVIEW开发分布式光纤油气管道泄漏检测及预警系统

LabVIEW开发分布式光纤油气管道泄漏检测及预警系统 随着油气工业的发展&#xff0c;管道泄漏成为一个严峻的安全问题。本文介绍了一种基于LabVIEW的分布式光纤油气管道泄漏检测及预警系统的设计思路和组成结构。系统包括硬件和软件两部分&#xff0c;其中硬件部分详细阐述了分…

【python】爬取知乎热榜Top50保存到Excel文件中【附源码】

欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 一、导入必要的模块&#xff1a; 这篇博客将介绍如何使用Python编写一个爬虫程序&#xff0c;从斗鱼直播网站上获取图片信息并保存到本地。我们将使用requests模块发送HTTP请求和接收响应&#xff0c;以及os模块处理文件…

一口气搞懂【Linux内存管理】,就靠这60张图、59个问题了

按&#xff1a;基于x86处理器上&#xff0c;以系统启动过程中内存管理的逐步构建为主轴&#xff0c;分析内存的管理方式与其相关的安全防护功能。 1、如何知道计算机内存布局&#xff1f;内存空间有多少&#xff1f; 春江水暖鸭先知&#xff0c;计算机上电启动的时候&#xf…

微信预约小程序制作指南:从小白到专家

在当今的数字时代&#xff0c;微信小程序已经成为了一种非常流行的应用方式。预约功能更是成为了许多小程序的核心功能之一。如果你也想为你的小程序添加预约功能&#xff0c;以下步骤将会对你有所帮助。 一、进入乔拓云网后台 乔拓云网是一个在线小程序开发平台&#xff0c;你…

.pings勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复

导言&#xff1a; 随着科技的发展&#xff0c;网络空间中的威胁也日益猖獗&#xff0c;其中之一就是勒索病毒&#xff0c;而.pings 勒索病毒则是其中的一种。本文将深入介绍.pings 勒索病毒的特征、恢复被其加密的数据文件的方法&#xff0c;并提供预防措施&#xff0c;以保障…

【redis】Redis中的字典类型:数据结构与使用方法

文章目录 Redis中的字典类型&#xff1a;数据结构与使用方法简介如何提高哈希表性能如何使用 Redis中的字典类型&#xff1a;数据结构与使用方法 简介 Redis中的字典类型的底层实现是哈希表&#xff08;Hash Table&#xff09;。 Redis的字典使用哈希表作为底层实现&#xf…

理解 Node.js 中的事件循环

你已经使用 Node.js 一段时间了&#xff0c;构建了一些应用程序&#xff0c;尝试了不同的模块&#xff0c;甚至对异步编程感到很舒适。但是有些事情一直在困扰着你——事件循环&#xff08;Event Loop&#xff09;。 如果你像我一样&#xff0c;花费了无数个小时阅读文档和观看…

Linux--好玩的进度条

前言 先来看看我们想要达到的进度条效果&#xff0c;具体代码会在文章最后面放出。 一、创建文件及Makefile 我们需要实现声明的定义的分离&#xff0c;因此创建如下三个文件。 process.h prcess.c main.c。 touch process.h process.c main.c 同时还需要创建Makefi…