Struts1框架轻易入门,经典示例

article/2025/11/5 20:17:38

Struts1框架轻易入门,经典示例

版权申明:此文为作者原创,未经允许,请勿转载!

  • Struts工作原理及流程
  • 登录验证示例

Struts1 工作原理及流程

这是本人整理的一点材料,原理图为纯手工绘制,不喜勿喷,不足之处还望大家多多指点。

Struts工作原理

1、读取配置
Struts框架总控制器(ActionServlet)就是一个Servlet,需要在web.xml中进行配置,在服务器加载之前会先加载web.xml配置文件,加载的同时会初始化ModuleConfig对象(下面的示例中有注释说明)。

2、提起请求
提交表单或调用URL操作都会提起一个请求,服务器接收到该请求后会判断该请求信息,如果提交对象是*.do,则将请求转发到ActionServlet。

3、填充数据
如果请求被转发到ActionServlet总控制器中,ActionForm(示例中写的类)会被实例化,此时HTTP请求中所包含的数据会被一一对应地填充到实例对象的字段中(所以要求ActionForm中的字段名必须与表单的一致,否则无法获得提交的数据),填充的数据将被保存到ServletContext中。

4、分配Action处理该请求
数据填充后,控制器会根据配置文件(struts-config.xml)中的配置信息将该请求分配到相对应的Action类进行处理。

5、处理请求
Action中必须包含一个execute()方法,负责调用执行相应的业务逻辑操作(业务逻辑的具体操作一般会封装到其他类)。执行完毕后返回ActionForward。

6、响应请求(返回关键字)
负责处理该请求的Action根据业务处理的不同结果返回一个目标响应对象给总控制器。

7、响应处理(返回响应结果)
总控制器根据具体业务功能Action控制器返回来的响应(关键字)做出响应处理。(如果不好理解请参照示例中的注释)

8、HTTP响应
将最终的响应返回给JSP,将结果页面展现给用户。



登录验证示例


web.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee                      
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"><!-- 配置总控制器 --><servlet><servlet-name>Action</servlet-name><servlet-class>org.apache.struts.action.ActionServlet</servlet-class><!-- 配置初始化参数,内容为管理调度总控制器中Action的属性文件 --><init-param><param-name>config</param-name><param-value>/WEB-INF/struts-config.xml</param-value></init-param></servlet><!-- 配置总控制器对外的映射路径 --><servlet-mapping><servlet-name>Action</servlet-name><!-- 只有.do类型的请求才需要转到ActionServlet总控制器中 --><url-pattern>*.do</url-pattern></servlet-mapping></web-app>

struts-config.xml 框架配置文件

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts-config PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN""http://struts.apache.org/dtds/struts-config_1_3.dtd"><!-- Struts框架的配置文件 -->
<struts-config><form-beans><!-- 该标签作用是填充数据,type是指定接收表单提交数据的类全称 --><form-bean name="loginForm" type="com.bean.LoginForm"></form-bean></form-beans><!-- Action的映射 --><action-mappings><!-- 配置一个Action,该Action的作用就是验证登录信息 --><!-- path相当于该Action对外访问的虚拟路径 --><!-- type是该Action所对应的类(相当于一个真实路径)" --><!-- name的作用是指明总控制器跳转到指定Action所需携带的数据 --><action path="/login" type="com.action.LoginAction" name="loginForm"><!-- 用于Action处理接收到的"后台"响应 --><forward name="ok" path="/ok.jsp"></forward><forward name="fail" path="/failed.jsp"></forward></action></action-mappings></struts-config>

login.jsp 登录页面

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body><form action="login.do" method="POST">用户名:<input type="text" name="userName"  >密    码:<input type="password" name="password"><input type="submit" value="提交"></form>
</body>
</html>

LoginForm 表单数据填充类

package com.bean;import org.apache.struts.action.ActionForm;/*** @author zsh * @Title LoginForm.java* @Description: 用于给Action填充数据,必须继承ActionForm类,否则不能填充数据到Action* @date 2016年8月17日 下午9:20:53 * @version V1.0 */
public class LoginForm extends ActionForm{private static final long serialVersionUID = 1L;private String userName;//接收表单数据,字段名必须与表单一致private String password;private String msg;//返回错误信息public String getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;}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;}
}

LoginAction 登录验证Action

package com.action;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;import com.bean.LoginForm;/*** @author zsh * @Title LoginAction.java* @Description: 用于验证用户登录的Action类(业务逻辑层)* @date 2016年8月17日 下午9:25:00 * @version V1.0 */
public class LoginAction extends Action{/*** Action类必须重写该方法*/@Overridepublic ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception {//将传进来的ActionForm对象向下转型,获得数据LoginForm user = (LoginForm) form;String userName = user.getUserName();String password = user.getPassword();//判断登录结果,并响应给Actionif("zhang".equals(userName) && "123".equals(password))return mapping.findForward("ok");elsereturn mapping.findForward("fail");}}

登录成功(ok.jsp)和失败(failed.jsp)的页面请自行编写


目录

  • Struts1框架轻易入门经典示例
    • Struts1 工作原理及流程
      • 登录验证示例
      • 目录


http://chatgpt.dhexx.cn/article/DshHcY0e.shtml

相关文章

struts1框架基本(笔记)

在阿帕奇官网下载合适的struts1框架文件。 应用在显示层框架。 struts1与struts2虽然是一脉相承&#xff0c;但它们用法完全不一样。 struts2是在struts1与webwork基础上&#xff0c;发展的全新框架。 注&#xff1a;本文是在MyEclipse下进行的操作&#xff0c;不是之前的E…

Struts1介绍

struts&#xff1a;[strʌts]支柱; 撑杆; 支杆; 支撑; 趾高气扬的步态; 高视阔步的样子; 引入struts Model1结构如图1所示&#xff1a; Model1是一个以JSP文件为中心的模式&#xff0c;在这种模式中JSP页面不仅负责表现逻辑&#xff0c;也负责控制逻辑。专业书籍上称之为逻辑…

入门Struts1第一讲——Struts1入门就这么简单

现在终于进入框架的学习中了&#xff0c;后面还有好几个框架等待着我们呢&#xff01;我们先来学习Struts1框架&#xff0c;然后再过渡到Struts2框架的学习中。下面我们开始学习Struts1框架之旅。 Struts1简介 Struts1是Apache开发的一个web层的框架&#xff0c;它主要用于简…

连接微软云的几种方式

1&#xff0c;通过管理portal连接微软云 需要使用liveId 2&#xff0c;通过visual web developer 直接更新 需要.cer(509)证书 3.通过远程登录管理 需要XXXXX-Staging-WebRole1_IN_0.rdp文件 PowerShell 需要管理证书

使用微软的OneDrive给别人分享大文件,非常方便

假设我想把这个40多MB的文件分享给一位同事&#xff1a; 在右键菜单里选share&#xff1a; 指定我要分享给谁&#xff1f; 假设我分享给这位姓丁的同事&#xff0c;OK了&#xff1a; 要获取更多Jerry的原创文章&#xff0c;请关注公众号"汪子熙":

谷歌云盘文件快速下载方法

最近看的论文附带的数据集在谷歌云盘里&#xff0c;每个文件都有十个G左右的大小&#xff0c;而直接从谷歌云盘下载速度过慢而且有可能中断&#xff0c;而multcloud是一个非常好的多云盘管理软件。他可以通过国内网直接登录操作&#xff0c;我们可以通过multcloud将谷歌云盘的文…

Win10安装OneDrive(微软云盘)后无法打开

https://jingyan.baidu.com/article/ce4366496a3ae73773afd3f8.html 这里为Win10系统正常下载OneDrive安装包安装成功后&#xff0c;打开或闪退或没反应的情况 工具/原料 OneDrive&#xff08;微软网盘&#xff09; Win10系统 方法/步骤 按住键盘上的Win&#xff08;就是左下…

开源网盘系统推荐 - 开源云盘 - 安装及开发教程

开源网盘系统推荐 - 开源云盘 - 安装及开发教程 云盘界面 介绍 本开源云盘致力于打造成一个优雅&#xff0c;好用&#xff0c;高效&#xff0c;克制的开源云盘。 在线体验 (账号demo/123456) 软件架构 本开源云盘采用前后端分离的模式开发。后端使用Golang语言&#xff0c;前…

onedrive php 上传文件,使用Aria2自动上传文件到onedrive教程

1、先在onedrive中建立一个upload文件夹来统一接收上传 2、然后开始建个环境 宝塔 或lnmp都可以&#xff0c;nginxphp(数据库用不到&#xff0c;装不装无所谓) 3、建立两个站点dl.example.com(下载用) pan.example.com(网盘用) 4、安装aria2&#xff0c;这里推荐逗比大佬的一键…

说说云盘背后的黑科技!

2019独角兽企业重金招聘Python工程师标准>>> ***当下&#xff0c;随着存储技术的飞速发展&#xff0c;各大公司都推出了云存储服务。但因为是免费面向大众的&#xff0c;无论微软的OneDrive还是百度的云网盘&#xff0c;好多人都难理解他们如何支撑起如此庞大的存储…

微软云 命令重启mysql_创建运行 MySQL 的经典 Azure VM - Azure Virtual Machines | Microsoft Docs...

在使用经典部署模型创建的运行 Windows Server 2016 的虚拟机上安装 MySQL 01/23/2017 本文内容 重要 经典 VM 将于 2023 年 3 月 1 日停用。 如果从 ASM 使用 IaaS 资源&#xff0c;请在 2023 年 3 月 1 日之前完成迁移。 我们建议你尽快进行切换&#xff0c;以利用 Azure 资源…

清除此计算机中wps云盘,教大家Win10系统删除WPS网盘的方法,爱纯净官网

Win10系统如何删除WPS网盘&#xff1f;现在使用Win10系统的朋友越来越多了&#xff0c;在Win10系统中如果安装了WPS办公软件&#xff0c;那么在电脑文件中就会看到一个名为WPS的网盘名称。有些用户想要将其卸载&#xff0c;那Win10怎么删除WPS网盘呢&#xff1f;所以接下来小编…

普通用户申请微软的OneDrive免费网盘,容量5T、5T、5T,重要事情说三遍!!!!!

注意&#xff1a;以下网站由于都懂得的原因打开速度较慢&#xff08;此问题可以通过添加代理方式解决&#xff09; 第一步 打开如下网址:https://t.odmail.cn/界面如下 该网址是一个临时邮箱接收地址&#xff08;后面用来接收验证码&#xff09;。 可以点击1处刷新系统自动生…

加速微软云服务在中国大陆的连接体验

由于种种原因&#xff0c;很多朋友在国内无法顺畅访问微软云服务&#xff08;包括登录Outlook邮箱、OneNote笔记、OneDrive网盘、Xbox在线游戏等等&#xff09;。对于那些了解计算机的朋友&#xff0c;可能会使用一些“魔法”来加速访问&#xff0c;但在境内使用未经登记的“魔…

微软云服务器登录不上去,云服务器登入不了怎么重启

云服务器登入不了怎么重启 内容精选 换一换 本节操作介绍Linux操作系统云服务器在单用户模式下重置密码的操作步骤。本文档适用于X86架构的弹性云服务器。进入单用户模式下重置root密码前请先做好数据备份。请根据操作系统类型选择操作步骤&#xff1a;CentOS 8系列CentOS 7/Eu…

微软OneDrive云盘5T大容量免费申请

博主分享一个亲测有效的OneDrive获取5T的方法&#xff0c; OneDrive云盘在国内的下载速度还是相当可以的&#xff0c;5T的大空间相信也能满足绝大部分人&#xff0c;教育版的子账号还是很稳的&#xff0c;欢迎上车&#xff0c;但是本人不提供任何技术支持&#xff0c;有需要还是…

最新免费申请微软OneDrive5TB云盘超详细教程!(已亲测!)

https://www.cnblogs.com/wangyunfei/p/9836580.html 18年10月份最新免费申请微软OneDrive5TB云盘超详细教程&#xff01;&#xff08;已亲测&#xff01;&#xff09; 本人已于今天10月23日亲测&#xff0c;成功获取微软OneDrive5T云盘&#xff01; 第一步&#xff1a;.打开…

微软云盘OneDrive和Dropbox云盘的比较分析

微软Office365和office 2013中都有OneDrive的身影&#xff0c;通过和SharePoint配合&#xff0c;能够显示出微软在云和端方面的巨大优势。如下图&#xff0c;在Windows 10操作系统中&#xff0c;安装Office2013后自带的OneDrive。 利用云存储进行多台电脑文件的同步&#xff0c…

微软e5服务器,微软发布Office 365 E5计划

微软的Office365正处在一个版本更替的频发期,我对此次新计划的出炉毫不为奇——在上周奥兰多的微软全球合作伙伴会议上,官方宣布Office 365的原E4计划将被誉为“黄金Office365企业套餐”(premium Office 365 Enterprise Suite)的E5计划所取代。 根据微软的官方说法新的计划“…

教你免费申请5T的微软OneDrive云盘

相信大家都受够了坑爹的某度云盘了&#xff0c;如果需要自己保存在里面的资料&#xff0c;那稍微大点的文件就要花时间等了&#xff0c;不开会员就限速&#xff0c;坑爹。最近&#xff0c;我偶然发现了可以免费申请5T大小的微软OneDrive&#xff0c;那么接下来&#xff0c;我就…