- 浏览: 1507439 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (595)
- Java咖啡厅 (208)
- IT杂侃 (23)
- 程序员笑话 (7)
- 我的后现代文学 (1)
- WEB编程 (116)
- 软件评测 (8)
- 操作系统 (3)
- 炫目Ruby (2)
- 行业知识 (7)
- 我的动漫情结 (6)
- 其他 (8)
- Window DIY (6)
- 古文学 (3)
- 转载文章 (2)
- IT百科 (7)
- 动态网页Active (1)
- 文档 (1)
- 设计理论 (11)
- .NET 快速开发 (18)
- 英语学习 (6)
- 网站分析 (2)
- 开源软件 (4)
- 数据库 (28)
- 笔记 (4)
- 源代码共享 (8)
- IT人物 (2)
- 软件管理 (10)
- 小说创作 (0)
- 大众软件 (12)
- 网站评论 (3)
- 小虾乱说 (10)
- 游戏 (8)
- 心情 (3)
- 娱乐休闲 (2)
- Delphi编程 (1)
- PHP编程 (4)
- 中间件 (2)
- 移动开发 (2)
- Office应用 (2)
- Photoshop (1)
- Eclipse (5)
- 面试题 (1)
- 手机评测 (0)
- VBScript (1)
- WEB前端-EXT (3)
- 吐槽 (1)
- Java咖啡厅 Ibatis (1)
- javascript Ext (1)
- jquery ui (1)
- require (1)
- WEB编程 Javascript (1)
- jquery (1)
- Swing (1)
- 分布式 (1)
最新评论
-
zhangjihao:
28. 下面哪个Set是排序的? A. LinkedHas ...
Java面试题(选择题) -
zhangthe9:
ICMP报文被封装在IP包里,也就是说他是由IP协议承载的,从 ...
Java面试题(选择题) -
zhunengfei:
真的假的?
自已写的jquery ui框架 -
white_crucifix:
少年,发烫是所有智能手机的特点,而莫名发烫是所有安卓手机的特点 ...
【吐槽】三星手机的OS是一砣屎 -
suzu88:
试了一下,可以用。如果美化一下控件和窗体更有意思。
一个用XML构建Swing视图的框架
Struts controller基本功能是
1. 截获用户的Http请求
2. 把这个请求映射到一个定义好的业务操作上
3. 获取业务操作结果,提供给客户端
4. 决定下一步应该显示哪一个页面 有几个部分共同组成了Struts 的Controller,用户的请求发送到ActionServlet中,ActionServlet调用RequestProssor开始处理用户请求的流程,在这个流程中,会查找ApplicationConfig,得到用户请求对应的Action,调用相应的Action来具体执行用户的请求,最后返回ActionForward,转向相应的流程。
================ org.apache.struts.action.ActionServlet 是Struts Controller中最主要的部分,所有用户请求都会被发送到这里,所有的其它处理也必须从这里经过。ActionServlet是从HttpServlet中继承过来的。 当ActionServlet接收到HTTP request的时候,不管是doGet()或者doPost()方法,都会调用process()方法。 protected void process(HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException { RequestUtils.selectApplication( request, getServletContext() ); getApplicationConfig(request).getProcessor().process( request, response );} 一般情况下,我们不需要自己实现或者修改ActionServlet类,仅仅使用就可以了。某些情况下,我们可以自己扩展ActionServlet类,从ActionServlet继承,实现自己的MyActionServlet类。覆盖其中的一些方法来达到你的特殊处理的需要。ActionServlet继承自javax.servlet.http.HttpServlet,所以在本质上它和一个普通的servlet没有区别,你完全可以把它当做一个servlet来看待,只是在其中完成的功能不同罢了。 ================ RequestProssor具体处理用户的request,作为一个request handler存在。同样,处理request的时候,会执行RequestProcessor类中的process(execute)方法。 process中调用的方法都是可以重载的, 如果有需要,可以实现为自己特定的方法。比如,对于Locale问题,通常都是在系统最一开始加载的时候读取的,如果用户想在任何时刻都可以切换或者选择自己的Locale,我们就可以重载processLocale()方法。然后只需要在配置文件中加入段就可以了 ================ Action类是实现整个体系的核心部分,它在客户请求、界面表示和业务逻辑之间起到一个桥梁的作用。每一个Action都用来处理某一项任务,或者进行一个业务操作。当然了,我们说一项任务不是说Action只实现一个业务操作方法,而是集中实现某一个功能单元。比如登录用的LogonAction、查找用的SearchAction等等。Action是在RequestProcessor中,由processActionPerform方法调用的 非常重要的一点:不要在Action中包含任何业务逻辑操作,而是应该调用一个Model层的JavaBean来实现你的业务逻辑操作。在某些情况下,可能包含少许表现逻辑。这样,就可以充分进行代码重用,比如上例中调用的IStorefrontService接口,这个接口在实现时完全可以不用考虑客户端的事情,所以它可以被其它部分或者其它系统所使用。否则的话,Action会变得非常难于理解,难于维护,代码也不能重用。 struts-example工程的设计就是一个bug,它把业务逻辑封装到了Action类中 =================== 在Action的execute方法中,返回一个ActionForward类。ActionForward把配置文件中forward部分的信息包装起来,减少了应用程序和物理资源信息之间的耦合性。通过ActionMapping类,可以在配置文件中查找相应的forward信息。例如,对于一个LoginAction,它的配置信息可能是这样的: 返回的ActionForward就会包含段中的信息。在ActionMapping类的findForward方法中,首先会根据查找forward的name查找是否有相应的forward段,如果没有,则在配置文件中的段中进行查找,如果还没有就会抛出一个例外。 ===================== 以前,页面上的输入数据都通过HTTP request提交,服务方检索出输入的数据,进行验证,然后将这些数据传递给其它组件进行业务处理。一切基本都需要手工编写代码进行操作,比较麻烦,也使代码变得复杂。 ActionForm[org.apache.struts.action.ActionForm]用来收集用户的输入,并且把这些信息传递给Action对象,然后,在Action对象中,ActionForm中的数据被取出来传递给业务逻辑层进行处理。 ActionForm一方面作为一个缓冲区,临时存储用户输入的数据;另一方面,可以把ActionForm当成是HTTP和Action之间的一个防火墙,它可以验证输入数据的正确性,如果验证不通过,这个request是不会发送给Action进行处理的。 ActionForm可以有两种Scope,request或者session。request就是只能在rquest到response,之后ActionForm就不可见了;session可以保存时间长一点。 ================== 在ActionForm的Validate方法中返回的是ActionErrors对象。这个对象可以将错误信息都封装起来,并且自动把它们显示给用户。 在相应JSP页面上添加,可以自动将ActionErrors中的错误信息显示出来。包括,每一个具体的,通过add添加的错误信息,和一个ErrorHeader和一个ErrorFooter,这些都可以通过配置文件指定,并且可以包含HTML语法。 ========================== Struts提供了四种自定义Tag库: bean:struts-bean taglib包含在访问bean和bean属性时使用的tag,也包含一些消息显示的tag。 html:struts-html taglib包含用来创建struts输入表单的tag,和其它通常用来创建基于HTML用户界面的tag。 logic:struts-logic taglib包含的tag用来管理根据条件生成输出文本,和其它一些用来控制的信息。 template:struts-template taglib包含的tag用来定义模板机制。
发表评论
-
原创程序- Web版数据库管理
2017-11-15 00:39 1177这是我自已写的Web版的数据库管理工具,主要是依赖于JDBC ... -
Eclipse创建Web项目
2017-07-29 10:53 7751. 打开创建Web项目的对话框 2 ... -
Ant常用的命令
2016-06-16 13:31 13481. 使用Ant生成War包: <war ... -
在Eclipse上使用Ant发布项目
2015-10-17 15:03 1370这里笔者使用是Eclip ... -
Resin中增加一个虚拟目录的方法
2015-09-13 12:53 1113打开resin.config 找到到<h ... -
一个用XML构建Swing视图的框架
2015-09-06 23:12 2600平常想用Java写一些 ... -
Eclipse常见问题
2015-08-24 19:41 738如果Eclipse被强制关闭时,Tomcat可能没有 ... -
Spring Tools Suite 入门教程
2015-05-09 09:15 0Spring Tools Suit,这里简称STS,是 ... -
使用FTP的方法
2015-03-01 17:49 10011. FlashFXP 收费的软件,但是比较好 ... -
关于Spring
2015-02-16 14:46 1998Spring是一个轻量级J2EE框架。 Sp ... -
用Java实现发送邮件到163
2014-12-28 14:50 3851/* 在java版经常看到有人问如何用javamai ... -
Hibernate入门
2014-12-27 01:34 925前言 使用面向对象的语言和关系型的数据库,开 ... -
修改date.toLocaleString()的警告
2014-10-15 11:31 2546我们在写程序的时候,经常要查看时间,所以我们经常会用到 ... -
Java基础题 -- 简述题
2014-04-26 13:44 726(1)简述Java的运行机制 答案:Java语言根 ... -
Java基础题 -- 填空题
2014-04-26 10:00 18861. ______是一个抽象的计算机,和实际的计算机一样, ... -
FreeMaker入门
2014-04-07 19:51 1010第一章 简介 1 什么是FreeMaker ... -
jdk8 新语法
2014-04-01 23:32 1279import java.util.*; public ... -
MyBatis 入门
2014-03-27 23:31 1721每个MyBatis的中心是SqlSessionFact ... -
Jetty入门
2014-02-26 23:48 1577Jetty是一个简易的WebServer框架,使用 ... -
用Swing做的H2管理器
2014-02-24 23:07 1566MainFrame 继承了 JFrame , 增加c ...
相关推荐
本资源"**Eclipse从入门到精通(第二版)----源码**"提供了书籍《Eclipse从入门到精通(第二版)》的配套源代码,涵盖了从基础使用到高级开发的多个关键章节。这份源码旨在帮助读者更深入地理解Eclipse的工作原理,...
第二章重点介绍了Struts框架的基础知识及其在J2EE项目中的应用。 - **2.1 MVC模式概述** - **2.1.1 MVC设计模式**:这部分阐述了MVC(Model-View-Controller)设计模式的概念,它如何帮助分离业务逻辑和用户界面。...
本资源包含"JAVA WEB从入门到精通"这本书随书附带的第2到第10章的源代码,这些章节通常涵盖了Web开发的基础到进阶内容。 1. **基础概念**:Java Web开发首先涉及Servlet和JSP(JavaServer Pages),它们是构建动态...
JAVA WEB从入门到精通随书光盘源码11到20章,其余章节在另一个链接,太大一次性传不上来,适合J2EE、WEB开发参考,源码详细。由浅入深,分五篇介绍了Struts、Hibernate和Spring框架。第一篇为J2EE开发的基础知识,...
### J2EE电子商务系统开发从入门到精通 #### 一、J2EE概论 - **双层(C/S)软件架构设计**:早期的客户端/服务器架构将应用程序分为两个部分,一部分安装在客户端计算机上,另一部分安装在服务器端。这种架构下,...
《Eclipse Web开发从入门到精通(实例版)...通过以上知识点的梳理,《Eclipse Web开发从入门到精通(实例版)》无疑是一部全面而实用的指南,无论是初学者还是有一定经验的开发者,都能从中获得丰富的知识和实践经验。
共24章,其中,第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e技术入门、...
- **第2章Struts2下的HelloWorld**:通过一个简单的示例展示如何搭建Struts2环境并运行第一个程序。 - **第3章Struts2基础**:涵盖Struts2的核心组件、配置文件、请求处理流程等基础知识。 - **第4章深入Struts2**:...