struts用了也一年了,基本的东西都会用,不过因为是在工作中边学边用,难免很多知识点都不系统,惭愧呀。这几天找本书梳理一下。---MVC---
V:多种视图共享一个后台模型
M:实现与界面独立,良好的封装
C:更好的维护程序流程
model1:JSP(V、C)+JavaBean(M)
只适用于小型程序,JSP的双重角色使HTML和Java混合,很难维护。
model2:JSP(V)+Servlet(C)+JavaBean(M)
Struts也是model2(用ActionServlet代替Servlet)。Struts的所有功能都是建立在已有的Java Web组件上,如Servlet,JSP,JavaBean,它只是利用一种方式将这些元素组织了起来,使它们协同工作。
---点滴---
在Struts应用程序中,所有的用户请求都由ActionServlet接收,然后根据struts-config.xml查找相应的子控制器。Web容器加载Struts应用程序后,struts-config.xml被首先读入内存成为一个ActionMapping对象。
基本流程:HttpRequest-->XxxForm-->validate()=true-->XxxAction-->execute()-->(return) ActionForward-->JSP
这其中的配置信息都存在于struts-config中
国际化:<bean:message key=""/> + ApplicationResources.properties
---web.xml---
<display-name> ApplicationContext name
<listener> 配置事件监听器
<session-config> --> <session-timeout> Session过期时间
<welcome-file-list> 根URL的默认页面:先找index文件,找不到再查找该list
<error-page> 制定在返回特定HTTP状态码,或者特定类型的异常被抛出时显示的页面。
<taglib> 对标记库描述符文件(Tag Library Descriptor File)指定别名
---struts-config.xml---
<data-source> 定义数据源
<global-exceptions> 定义全局异常
<global-forwards> 定义全局转发(名字相同时,局部转发优先)
<controller> 定义控制配置类,如TilesRequestProcessor
<message-resources> 指定消息资源文件,配合<bean:message key="" bundle="">使用
<plug-in> 插件
---Action们---
Action:线程安全的,所以都是singlon的。不应该在Action类中使用域变量保存用户特定信息,如状态信息(可以将一些与特定请求无关的变量定义为域变量,如Log变量)
ActionForward:可以是静态的从config文件中读,如mapping.findForward("success");也可以是动态的指定,如new ActionForward("success","/aaa/bbb.jsp",true)
预定义的Action
ForwardAction:类似<jsp:forward>
IncludeAction:类似<jsp:include>
以上两个Action,使Struts遵循MVC,避免直接调用JSP,可以充分利用控制器的预处理功能。
DispatchAction:以资源为中心,减少Action的数量。
通常可设置parameter="method",则调用的url为http://xxx/yyy?method=add
也可以设置parameter="add, update",则调用的url为http://xxx/yyy?add=true
LookupDispatchAction:DispatchAction的子类,通过反查资源绑定,找到类中对应的方法。
SwitchAction:Struts支持多应用程序模块(即multi-module),SwitchAction用来执行在不同应用程序模块间的切换操作。
posted on 2007-04-08 23:47
Jcat 阅读(420)
评论(1) 编辑 收藏 所属分类:
Java