model2就是mvc的应用,
model1的核心是jsp开发方式,model2从jsp中分离出了业务逻辑的代码.对其功能代码进行了抽取和分离.
mvc两种驱动方式:
面向请求驱动,面向事件驱动(jsf).
中央控制器,截获所有的请求,分析url,然后根据请求进行分发.
动态actionform的出现是为了防止标准actionform膨胀而设计的.他具备标准actionform的所有功能.
动态actionform就不用自己写form了,但是还是需要在struts-config.xml文件里进行配置,用form-bean标签.type是包装类
locale 读取国际化文件,由操作系统决定.
ResourceBundle 读取国际化资源文件.
转化有中文的国际化资源文件的时候需要保证本地的操作系统语言是中文的状态.
资源文件默认从src开始搜索.如果有目录层次,需要加上目录结构,之间只用.分隔即可.
硬编码是写在页面上相对固定的信息.除此之外还有动态生成的信息.
通过<bean:message标签来读取国际化资源消息.
是一个基于mvc模式的框架。
spring提供一些基础性的服务,提供了声明式事务
领域模型domain model,一个核心的内容。共同遵照的
要求或标准
DDD,领域驱动设计。只要状态没有行为称为贫血模型
模式,代码级的模式,单例模式。还有架构级上的模式
rbac基于角色管理的模式
框架,即一些基础性的设施,主要是给开发人员的使用的,增加了规范性
struts1处于UI层,即表示层。C/S以数据库为中心。b s结构可以称为瘦客户端
可以将业务逻辑放在存储过程里实现,性能比较好,
但是移植性不怎么好,因为数据库是不一样的。
spring提供了事物管理。
struts1比较简单和经典
新建web项目
整体改变jsp页面的默认编码
首先在webroot目录下建立index.jsp页面
webroot/a/a.jsp
复写service的时候,get或者post方法都可以提交过来
页面上的表单是为了获得服务器端的服务。也就是前台和后台因为此进行了交互。
在servlet里进行设置req.setAttribute();然后再转向
/a/b/c/c.jsp表示从根目录开始找。
根目录,就是web工程的webRoot目录
我们写的servlet必须通过web.xml文件的配置才能测试成功
model2在model1的jsp页面提取出了一个c。
通过一个类来获得所有请求,然后进行分发,这也是mvc实现的
基本原理
由中央控制器进行统一转换,action只是返回了一个字符串。
收集用户提交的数据时需要新建一个继承了ActionForm类的类
actionmapping存储了struts-config的相关配置信息
面向事件驱动的 jsf
struts标签是在服务器端运行的,单引号与双引号可以混用
软件工程还处于不断的发展阶段。没有统一的开发模式。
web项目开发的一般流程
1。需要确定
通过各种手段确定系统的功能与性能。
功能:购物,浏览,注册,搜索。。。。
性能:可同时支持多个并发访问,并且相应时间不能高于m毫秒
手段:头脑风暴,会议,询问(问问题的时候需要做最充分的准备),原型-界面原型、业务原型
记住,洁癖,很可能是一个人的缺点
本阶段是项目开发的最重要阶段。
在web项目中,通常界面设计会在本阶段进行。
2。分析与设计
架构分析与设计
业务逻辑分析
业务逻辑设计
界面设计
3。开发环境搭建
4。开发-测试-开发-测试
5。文档编撰
actionform 会自动进行数据类型的转换.收集数据的时候
标签代替了一些脚本.封装性较好,重复性也较好.利用分层开发.
<bean:write>
Myeclipse更改根路径名称.
Struts标签的配置和使用,和国际化紧密联系
首先在struts-config.xml文件中加入
<message-resources parameter="MessageProperties">
将src下的MessageProperties属性文件拷贝到struts-config.xml文件里.
超链接也可以配置struts的action请求.
struts已经布置好了标签,所以使用的时候需要使用taglib指令进行引入.<% taglib prefix="" uri=""%>
<bean:write name="设置过属性的key值">标签在服务器端运行,客户端拿到的是服务器端返回的值.
filter属性为true时表示html标签也按文本处理.
<bean:write name="today" format="yyyy-MM-dd">today是在request里set过的
format="###,###.###"
format="###,###.0000"不够位数就补零
<bean:write name="<bean:write name="user" property="username">">
继承Action,需要复写execute方法
<前缀:empty name="">相当于if
<logic:empty name="aa">
aa为空
</logic:empty>
<logic:present>存在的标签判定.
不存在,还是会进入为空的标签判断里.
action的path配置前必须有/
测试迭代:
shift在中英文输入法之间进行切换.
List l =new ArrayList();
for(;;){
l.add();
}
for(Iterator it =list.iterator();it.hasNext();){
user u = (user)it.next();
}
<logic:empty name="list">
<logic:iterater id="u" name="list">
</logic:empty>
action是业务控制器.actionservlet是中央控制器,负责获取所有配置的请求.struts主要实现了c.数据收集也是做了很多工作的.这里主要的作用就是取数,然后调用业务模型层.
底层的异常往外抛,在action层进行捕捉,转换成用户能识别的异常提示信息.比如密码不能为空,或不正确等.
el表达式只要求servlet2.4以上,不依赖框架.不依赖任何包.
jstl和struts没有任何关系. 和el表达式没有关系.
${hello}hello是设置过的属性的值.从page范围开始找,直到最高级.影响效率.我们可以直接指定搜索顺序.如sessionscope.hello
${aaa[2]}
${aa.key1}输出集合里的数据
${1+2}
${10/5}==${10 div 5}
jstl是另一套标签库的定义,不依赖其他框架.
struts有自己的页面显示标签.
jstl=jstl标签库+el表达式 sun制定标准.apache作了一个实现.
jstl必须支持j2ee1.4、jsp2.0以上.容器太低就需要在web.xml文件里配置.
使用jstl标签需要拷贝指定的jar文件到lib目录下.
标签库使用的时候需要使用taglib指令,并加入uri
<c:out value="${hello}"> 当为空值时可以输出默认值 通过default属性.
escapeXML属性表示是否原样输出.false则对html标签进行了解析.
<c:set value="123" var="temp">
<c:remove var="temp">
<c:if test="${v1 lt v2}" var="a">
页面直接输出${a}
可以有多个when,只能有一个otherwise
map里面是一些entiy.有get key 和get value方法
函数只能用在el表达式中
分享到:
相关推荐
### Struts1与Struts2的主要区别 #### 概述 Apache Struts 是一个用于构建企业级Java Web应用的开源框架。它分为两个版本:Struts1 和 Struts2。虽然两者都基于模型-视图-控制器(MVC)设计模式,但它们之间存在...
Struts 2整合Struts 1,允许开发者利用Struts 1已有的投资,同时享受Struts 2带来的优势,如增强的类型安全和更强大的拦截器机制。 在《Struts 2权威指南--基于WebWork核心的MVC开发》这本书中,作者李纲深入浅出地...
Struts1和Struts2是两个非常著名的Java Web框架,它们都由Apache软件基金会开发,用于构建MVC(Model-View-Controller)架构的应用程序。虽然它们在目标上相似,但在设计模式、功能特性和使用体验上存在显著差异。...
Struts1和Struts2是两个著名的MVC框架,它们都是Apache软件基金会的Apache Struts项目的一部分,用于构建基于Java的Web应用程序。然而,两者在设计和实现上有显著的差异。 1. **架构模式的区别** - **Struts1.x** ...
Struts1和Struts2是两个不同的版本,它们各自拥有独特的特性和功能,但在Java Web开发领域都扮演了重要角色。 **Struts1** Struts1是最早的版本,它在2001年发布,是基于ApacheJakarta项目的一个框架。Struts1的...
Struts 1.x 是一款基于模型-视图-控制器(MVC)设计模式的Java Web框架,它在早期的Web应用程序开发中占据了重要的地位。本教程主要针对初学者,旨在引导学习者掌握Struts 1.x的基础知识和使用方法。 在开始学习...
Struts1是一个经典的Java Web框架,它为开发者提供了一种结构化的MVC(Model-View-Controller)设计模式实现方式。然而,在Struts1的原生设计中,并没有内置拦截器(Interceptor)这一概念,这与后来的Struts2框架...
Struts1是一个经典的Java Web开发框架,由Apache软件基金会维护,它主要负责处理MVC(Model-View-Controller)架构中的控制器部分。本实验项目旨在帮助开发者深入理解Struts1的核心概念和工作流程,以便更好地在实际...
Struts1是一个经典的Java Web开发框架,由Apache软件基金会维护,它主要负责处理MVC(Model-View-Controller)架构中的Controller部分。Struts1在2000年代初期非常流行,为开发者提供了构建企业级应用程序的强大工具...
Struts1和Struts2是两个非常著名的Java Web框架,它们在设计模式、可测试性、输入处理和表现层等方面存在显著的区别。 首先,Action类的设计有所不同。在Struts1中,Action类需要继承一个抽象基类,这限制了Action...
### Struts1与Struts2的主要区别 #### 一、Action执行机制的不同 - **Struts1**: 在Struts1框架中,Action是基于单例模式的,这意味着所有的请求都会共享同一个Action实例。这就导致了如果在Action中保存实例变量...
这个压缩包包含了两个关键版本的Struts框架的电子书,即Struts1.x和Struts2.0的相关资料。 **Struts1.x** Struts1.x是最初的Struts版本,它极大地简化了Java Servlet和JSP的应用开发。Struts1的核心概念包括Action...
struts1 和 struts2所需jar包。主要包含以下内容: struts-1.3.10-all.zip struts-1.3.10-apps.zip struts-1.3.10-lib.zip struts-1.3.10-src.zip struts-2.3.4.1-all.zip struts.rar
Struts1是一个经典的Java Web开发框架,它引入了模型-视图-控制器(MVC)设计模式,使得开发者能够更有效地组织和管理Web应用程序。在本样例程序中,我们结合了Struts1与Maven,后者是一个项目管理和集成工具,能够...
Struts2是Struts1的升级版,它在Struts1的基础上引入了许多改进和新特性,提高了开发效率和应用性能。 Struts1是一个经典的MVC框架,它的核心组件包括Action、Form Bean、Action Mapping和Tiles等。Action是业务...
Struts1是一个经典的Java Web开发框架,由Apache软件基金会维护,它基于Model-View-Controller(MVC)设计模式,极大地简化了Java Servlet和JSP的开发。在本项目中,“struts1项目代码”提供了从头到尾的实现,包括...
Struts1是一个经典的Java Web开发框架,由Apache软件基金会维护,它主要负责处理MVC(Model-View-Controller)架构中的Controller部分。本实例旨在帮助初学者理解和掌握Struts1的基本用法,以及如何整合相关的jar包...
Struts1和Struts2是两个非常重要的Java Web框架,由Apache软件基金会开发,用于构建MVC(模型-视图-控制器)架构的应用程序。它们极大地简化了Web应用的开发,提高了代码的可维护性和组织性。 Struts1是早期的版本...
这里提到的"struts1和struts2相关jar包"分别指的是Struts框架的两个主要版本:Struts 1和Struts 2。 **Struts 1** Struts 1是最早的版本,于2000年发布。它是基于Java Servlet和JSP技术的,旨在解决在JSP应用中控制...