Struts1.x —— 登录实验-无数据库版

  • 前言
  • 环境配置
    • Apache Tomcat 9.0.53 配置
      • 下载
      • 安装和配置
    • IDEA中配置Tomcat
    • Struts 1.3.10配置
      • 下载与安装
  • 实验步骤
    • 创建项目
    • 导入struts
    • 配置web服务器
    • 编写类
    • 编写jsp页面
    • 配置struts-config.xml
  • 运行测试

前言

本实验在 IDEA 2021.2.2(UItimate Edition) 下运行。
使用以下软件、开发包:
JDK-14.0.1
struts-1.3.10
Apache Tomcat 9.0.53
注:请使用Apache Tomcat 9.x版本,亲测使用10.x版本会导致出错。原因是Struts1.x中的servlet-api版本与Apache Tomcat 10.x不兼容。

注:本文仅作为学习,不考虑任何生产环境,谨以此文记录所学,造福后人

环境配置

Apache Tomcat 9.0.53 配置

下载

官方地址:https://tomcat.apache.org/download-90.cgi

安装和配置

解压即可完成“安装”
如图所示:

打开conf文件夹中的 logging.properties 文件,
java.util.logging.ConsoleHandler.encoding = UTF-8
修改为:java.util.logging.ConsoleHandler.encoding = GBK

运行bin目录下的 startup.bat
等待Tomcat服务器完成启动
浏览器访问:http://localhost:8080/
出现如下界面,表明启动成功:

然后运行bin目录下的 shutdown.bat关停Tomcat服务
注:请一定使用此方法关闭。即使关掉了之前的startup.bat窗口, 也请运行shutdown.bat关闭

IDEA中配置Tomcat

用IDEA打开任意工程,点击“运行”–>“编辑配置”

添加Tomcat服务器,选择本地服务器

然后按照如下步骤配置

配置部署工件:


创建新项目

选择Java EE8即可,其他的保持默认

创建成功后项目结构如下图:

直接运行进行测试

显示下图,即为成功

Struts 1.3.10配置

下载与安装

官网下载地址: https://archive.apache.org/dist/struts/1.3.10/struts-1.3.10-all.zip
解压即可。


实验步骤

创建项目

如上述测试Tomcat配置相同的方式创建项目
然后删除 HelloServlet.javaindex.jsp文件

导入struts

在WEB-INF目录下创建lib文件夹
将struts1.3.10中的lib文件夹下的所有文件拷贝至本工程下的lib文件夹
即,如图:

然后,在IDEA中右击lib文件夹,选择“添加为库”

到此,struts库导入完成

配置web服务器

在WEB-INF文件夹下的web.xml文件中添加

    <servlet><servlet-name>action</servlet-name><servlet-class>org.apache.struts.action.ActionServlet</servlet-class></servlet><servlet-mapping><servlet-name>action</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping>

在WEB-INF文件夹下创建struts-config.xml文件
注:web.xml配置的是Tomcat Web服务器对请求的响应(即,转发给struts管理),struts-config.xml配置的是struts如何管理请求

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 1.2//EN""http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">
<struts-config></struts-config>

struts初始配置完成

编写类

编写登录所用到的类
在main\java\com\example\strutsleaning 路径下
创建LoginActionForm.java文件

package com.example.strutsleaning;import org.apache.struts.action.ActionForm;public class LoginActionForm extends ActionForm {private String username;private String password;/*** @return Returns the password.*/public String getPassword() {return password;}/*** @param password The password to set.*/public void setPassword(String password) {this.password = password;}/*** @return Returns the username.*/public String getUsername() {return username;}/*** @param username The username to set.*/public void setUsername(String username) {this.username = username;}
}

创建LoginAction.java文件

package com.example.strutsleaning;import org.apache.struts.action.*;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class LoginAction extends Action {public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) throws Exception {//将ActionForm强制转换为LoginActionFormLoginActionForm loginForm = (LoginActionForm) form;//从LoginActionForm中提取从页面表单传递过来的参数String username = loginForm.getUsername();String password = loginForm.getPassword();//根据这些参数,执行业务逻辑操作if ("admin".equals(username) && "admin".equals(password)) {//如果用户名和密码均为admin,则转向登录成功页面return mapping.findForward("success");} else {//否则转向登录失败页面return mapping.findForward("error");}}
}

编写jsp页面

在webapp文件夹下
创建login.jsp登录主界面

<%@ page language="java" contentType="text/html; charset=GB18030"pageEncoding="GB18030" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=GB18030"><title>请登录</title>
</head>
<body>
<form action="login.do" method="post">请输入用户名:<input type="text" name="username"> <br/>请输入密码:<input type="password" name="password"> <br/><input type="submit" name="submit1" value="登录">
</form>
</body>
</html>

创建login_success.jsp登录成功界面

<%@ page language="java" contentType="text/html; charset=GB18030"pageEncoding="GB18030" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=GB18030"><title>登录成功</title>
</head>
<body>
欢迎您,您已经成功登录!您创建的第一个Struts应用程序已成功运行!!!
</body>
</html>

创建login_error登录失败界面

<%@ page language="java" contentType="text/html; charset=GB18030"pageEncoding="GB18030" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=GB18030"><title>登录失败</title>
</head>
<body>
您的登录失败了,可能原因是用户名或密码不正确,请返回重新输入
<a href="login.jsp">返回登录页面</a>
</body>
</html>

配置struts-config.xml

<struts-config></struts-config>内添加如下内容

    <form-beans><form-bean name="loginForm" type="com.example.strutsleaning.LoginActionForm"/></form-beans><action-mappings><action path="/login" type="com.example.strutsleaning.LoginAction" name="loginForm" scope="request"><forward name="success" path="/login_success.jsp"/><forward name="error" path="/login_error.jsp"/></action></action-mappings>

运行测试

点击运行

等待浏览器弹出
输入http://localhost:8080/Struts_leaning_war_exploded/login.jsp
返回页面:

输入账号:admin;密码:admin
成功登录!

若账号密码不正确

到此实验完成!
数据库版本,参见:Struts1.x 登录实验(数据库版)


感谢阅读!

有疑问或者认为有错误请留言,谢谢!

Struts1.x 登录实验-无数据库版相关推荐

  1. php极速链,php PHP极速链 战群源码系列(全自动采集更新+引流神器无数据库版) WEB(ASP,PHP,...) 261万源代码下载- www.pudn.com...

    文件名称: php下载  收藏√  [ 5  4  3  2  1 ] 开发工具: PHP 文件大小: 15699 KB 上传时间: 2015-08-10 下载次数: 5 提 供 者: 田维莉 详细说 ...

  2. JSP 登陆系统 登陆界面/处理界面/成功界面/失败界面/注销界面(无数据库版) 包含源文件分享

    陆系统设计 1.程序要求: 完成用户登陆功能. 用户名及密码保存在程序之中完成验证,通过则表示用户为合法用户,跳转到登陆成功页,否则表示用户名或密码不正确,跳转到登陆失败页. 2.输出页面: 2.1. ...

  3. 数据库原理实验三 数据库综合设计实验 实验报告

    实验三 数据库系统设计综合实验 1.实验目的通过实验,使学生掌握数据库系统设计和开发的一般方法,能够设计并实现简单的数据库系统. 2.实验要求熟悉实验室实验环境,掌握实验预备知识,了解实验中故障排除的 ...

  4. 友盟朋友圈社区使用详解-(无UI版)

    (如果你down下来sdk是懵比的 那么你可以看一看. 希望能有帮助.) 今天开始做朋友圈功能,本来是自己自定义.突然发现友盟有这个api   秉着不去重复造轮子的思想. 决定用造好的轮子.  友盟的 ...

  5. 数据库实验:数据库和表、查询、视图与安全性、存储过程及游标、触发器、综合实验-水果商店进阶

    数据库实验:数据库和表.查询.视图与安全性.存储过程及游标.触发器.综合实验-水果商店进阶 实验一.数据库和表 源码1: 源码2: 小结 实验二.查询 源码 小结 实验三.视图.安全性 源码: 小结 ...

  6. 计算机组成与结 读写数据实验,计算机组成与结构实验报告现实版.doc

    计算机组成与结构实验报告现实版.doc 计算机组织与结构 课程实验报告 姓名: 学号: 班级: 指导教师: 实验一:算术逻辑运算单元ALU设计实验 实验内容 算术逻辑运算单元ALU设计实验 实验原理 ...

  7. 实验1 数据库操作

    实验1 数据库操作 一.实验目的 1.掌握管理工具.T-SQL创建数据库的方法. 2.掌握管理工具.T-SQL修改和查看数据库的方法. 3.掌握管理工具.T-SQL删除数据库的方法. 4.掌握数据库的 ...

  8. SQL SERVER 服务器登录名、数据库用户名、服务器角色、数据库角色、DENY、sp_addlogin ETC.

    数据库用户:隶属于服务器登录名:属于某组数据库角色以获取操作数据库的权限 如果,添加登录名的时候,用户映射那里,同时选择了一个数据库.并且该数据库的角色,勾选了db_ower或更高权限.那么SqlSe ...

  9. sqlserver 登录名与数据库用户

    2.2 登录名 2.2.1 登录名 登录名是服务器级别的一个实体,用于登录到 SQL Server 实例.登录名的元数据保存在 master 数据库的 syslogins 表. 登录名包括以下2类: ...

最新文章

  1. 利用蒙特卡罗法,国外老哥成功制造出 100% 投篮命中的篮板!
  2. 构造函数中的虚拟成员调用
  3. Design Pattern - Builder(C#)
  4. C语言经典例99-文件内容合并和排序
  5. php如何在mysql数据库里创建表_php创建mysql数据库以及数据表
  6. rocketmq 消息指定_SpringBoot 整合 RocketMQ 如何实现消息生产消费?
  7. 2020游戏直播行业数据报告
  8. 西门子opc服务器注册,《西门子opc服务器的说明》.pdf
  9. Codeforces Round #503 (by SIS, Div. 2) C. Elections
  10. 自学python免费教材-最好的Python入门教材是哪本?
  11. 【微信小程序学习】小程序API
  12. spss分析方法-聚类分析
  13. 在命令行英雄的浏览器大战中,JavaScript令人惊讶地崛起
  14. python迭代法求极值_4计算函数零点和极值点的迭代法
  15. K线形态分析交易系统
  16. 微信视频聊天怎么美颜?以下方法可以帮到你!
  17. laravel 的 scout elasticsearch ik laravel-scout-elastic 之间的关系与安装
  18. 羡慕寻龙分金闯古墓?心动何不行动
  19. 【C++学习笔记】特殊用途语言特性
  20. 【成神之路】开放设计编程相关面试题

热门文章

  1. 国货美妆下半场:拼研发,开线下店与扎堆出海
  2. opencv与python环境搭建
  3. K8S集群Pod资源自动扩缩容方案
  4. 『已解决』0/1 nodes are available: 1 node(s) had taints that the pod didn‘t tolerate.
  5. 苹果自带测试卡路里的软件,‎App Store 上的“h-Tracker:卡路里计算器”
  6. 【英语六级】【仔细阅读】(1)
  7. 记忆枕产品上市如何通过新闻来打造品牌曝光量?
  8. 用python画漂亮的图案-使用 Python Turtle 设计简单而又美丽的图形
  9. 微信扫一扫功能扫描二维码调用外部浏览器打开指定页面实现微信中下载APP的功能
  10. 张超 计算机 清华 论文,张超-清华大学航天航空学院