Struts1.0

本文深入解析Struts框架的基本概念、运行原理及快速入门案例,涵盖手动配置方式开发项目、Struts配置文件详解、动态表单使用及文件上传下载等功能,同时对比jstl标签技术,阐述Struts标签在实际开发中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Struts的几个基本概念

  1. struts是一个框架
  2. struts是一个web框架
  3. 框架提高了程序的规范的同时,也约束了程序员的自由
  4. struts是一个开源的框架

Struts为什么有?

因为我们对mvc的理解不同,可能造成不同公司写程序的时候,规范不统一,这样不利于程序的维护和拓展/效率…,所以我们有必要用一个统一的规范来开发项目–>框架struts

Struts的运行原理

在这里插入图片描述
小队长本质上就是servlet
表单类需要继承ActionForm类,才是一个表单

Struts的快速入门案例(以用户登录验证来演示)

我们使用手动配置的方式来开发第一个struts项目
步骤:
1.先创建一个web工程
在这里插入图片描述
2.把struts的开发包引入到web工程
struts1.0jar包下载地址:
在这里插入图片描述
3.编写login.jsp页面
在这里插入图片描述
设置首页跳转
在这里插入图片描述
4.编写ActionForm(用户表单)和Action(小队长->登陆小队长)
UserForm.java
在这里插入图片描述
LoginAction.java
在这里插入图片描述
5.编写struts-config.xml文件,该文件用于配置action actionform,对应关系,跳转位置…,一般我们放在/WEB-INF目录下
在这里插入图片描述
6.编写welcome.jsp和err.jsp页面
在这里插入图片描述
在这里插入图片描述
7.在web.xml中配置总控制器ActionServlet
在这里插入图片描述
8.测试,ok

下面我们一起来看看struts细节的东西:

  1. 请求发出请求,转发给总控制器,总控制器根据struts-config.xml找到对应action节点,根据节点的name属性找到对应的form-bean节点
  2. 然后ActionServlet使用反射机制把表单类实例化,通时调用setter方法注入表单数据
  3. ActionServlet使用反射机制实例化并调用指定的action实例同时把表单实例传入execute方法

增加1.在登陆成功的页面西安市,登录成功后的人名
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2.使用filter配合struts解决中文乱码
步骤如下:开发一个过滤器,并设置request.setCharacterEncoding(“utf-8”);
在这里插入图片描述
在web.xml中配置过滤器
在这里插入图片描述
3.struts-config.xml
scope指定ActionForm Bean的存在范围,可选取为request和session,默认为session
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4.每个action都是单态,包括ActionServlet
单态是指:在整个程序运行过程中,始终是一个对象,
5.struts-config文件路径,不一定非放在/WEB-INF,可以自己放
6.问在一个项目中,可不可以有多个struts配置文件/
在这里插入图片描述
7.增加到数据库去验证该用户是否合法的功能
在这里插入图片描述
在mysql数据库中,增加一个用户表
创建domain对象
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

使用工具开发struts项目

1.用工具导入struts包,自动完成相关设置,我们手工配置struts-config.xml文件即可,这里我们还是使用登录验证系统来学习
开发步骤;
1.建立web工程
在这里插入图片描述
2.导入struts开发包
在这里插入图片描述
在这里插入图片描述
点击finish,就会自动的引入struts开发包和自动生成struts-config.xml和web.xml文件并完成一些配置
3.开发login.jsp
在这里插入图片描述
4.开发action和actionForm
在这里插入图片描述
在这里插入图片描述
5.手动配置struts-config.xml
在这里插入图片描述
6.开发ok.jsp和err.jsp
在这里插入图片描述

7.测试
从上面的开发过程,可以提高我们的开发效率

完全依赖myeclipse开发struts还是以用户登录验证来讲解

1.创建web工程
在这里插入图片描述
2.引入struts开发包(步骤同上)
在这里插入图片描述
3.开发login.jsp
在这里插入图片描述
4.开发action和actionForm
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
编写ok.jsp和err.jsp
编写业务逻辑测试

struts标签技术

jstl标签技术

Jstl(jsp standard tag library)jsp 标签库
为什么有?
以前的jsp文件有大量的<% %>java片段,jsp中有html标签+jsp标签+java片段->jsp很乱
提出:能不能把<%%>java片段用标签来替换->jsp页面就简结
解决之道–jstl
在这里插入图片描述
目前软件公司用不用jstl标签?
不同的公司要求可能不一样:一类公司要求jsp页面不能有任何java代码,还有一类公司没有必须的要求
jstl标签讲解
在这里插入图片描述
在这里插入图片描述
如果我们的域对象中有相同的属性名,c:out优先级是pageContext>request>session>application
导入jstl很简单
Apache Tomcat安装JSTL 库步骤如下:

从Apache的标准标签库中下载的二进包(jakarta-taglibs-standard-current.zip)。

官方下载地址:http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/
菜鸟下载地址
下载 jakarta-taglibs-standard-1.1.2.zip 包并解压,将 jakarta-taglibs-standard-1.1.2/lib/ 下的两个 jar 文件:standard.jar 和 jstl.jar 文件拷贝到 /WEB-INF/lib/ 下。
然后选中两个jar包右键点击添加为库
然后在jsp头部引入要使用的任何库的 标签就可以了,现在可以开始使用jstl标签了。
在这里插入图片描述在这里插入图片描述
以下附上jstl使用手册
jstl使用手册

在java ee规范中,存在三种标签

  1. 自定义标签
  2. jstl标签
  3. struts标签
    jstl标签实际上可以独立完成标签任务
    当struts设计者,在提供struts框架后,同时提供一套标签库,命名为struts标签
    在实际开发中,jstl标签可以和struts混合使用
    mvc结构->jstl
    struts框架->推荐使用struts标签完成jsp页面
    但是实际上两种标签可以相互补充

struts标签

struts框架提供一组非常丰富的框架组件,同时也提供了一组标签库用于和这些组件交互,主要包括六大类。
使用struts标签可以提高我们开发往回走那的效率和规范
struts标签手册
html标签
bean标签
logic标签
这类标签实际上就是普通html标签,struts设计者主要是为了和struts框架统一,对普通的html标签做了一个封装,本质仍然是html标签
说明:*.tld文件叫标签描述文件tag library description
引入struts的html标签库
<%@ taglib uri=“http://struts.apache.org/tags-html” prefix=“html”%>

struts第4讲

  • 1.DispatchAction-分派action
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述
全局跳转
在这里插入图片描述

  • 2.DynamicForm-动态表单
    使用动态表单可以更加灵活的使用表单,在某些不能确定表单类属性个数和类型的情况下,可以使用动态表单来解决问题
    • 1)普通表单actionForm是首先你需要定义这样一个类,然后配置到struts-config.xml中
    • 2)动态表单完全依赖反射机制创建,所以不需要去定义表单类,直接在struts-config.xml中配置即可
      快速入门
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
  1. Struts中的文件上传下载
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  2. 内部留言板小项目
  3. mvc中如何上传文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值