知识大全 用Struts框架开发Java应用

Posted

篇首语:古之立大事者,不惟有超世之才,亦必有坚忍不拔之志。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 用Struts框架开发Java应用相关的知识,希望对你有一定的参考价值。

用Struts框架开发Java应用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  Struts开始于 年 月 是采用Java Servlet/JavaServer Pages技术 开发Web应用程序的开放源码的框架 当前最新的正式版本是 本文内容就是针对这个版本的 采用Struts能开发出基于MVC(Model View Controller)设计模式的Java Web前端应用 通常MVC设计模式把一个系统划分为相互协作的三个部分    Model(模型) 模型用于封装系统的状态 比如业务数据    View(视图) 视图是模型的表示 提供用户交互界面 当模型状态发生变化时 视图应该得到通知 以便更新模型的变化    Controller(控制器) 接受来自视图的请求 修改模型的状态   但是 在基于JSP/Servlet的Web应用中要使用MVC模式 需要解决这样一个问题 就是HTTP的底层是TCP/IP协议 而TCP/IP是一种无状态连接的协议 如果我们的模型发生了变化 就无从通知视图 而Struts采用了在 JSP规范v 中就提出的MVC Model 这是对MVC在Web上应用的修订版 它可以解决这个问题 见图       图 MVC Model (FromMalcolm Davis)      图 Sturts工作机理(From Malcolm Davis)  Struts应用有 个主要部件 一个是使用Servlet实现的中心控制器(Controller Servlet 由Struts提供的 apache action ActionServlet类实现)及负责具体业务逻辑处理的Action( apache action Action的子类) 一个是用于显示的JSP页面(viewer) 另一个是用于封装系统状态的业务逻辑元件(Model) Struts 的中心控制器接受所有来自客户端的请求 并根据系统的配置(struts config xml)路由HTTP请求到其它Action对象(开发者实现的 apache struts action Action的子类) 在这些Action对象中会完成所有的业务操作 比如插入一条订单 修改一条记录等 处理完毕 由Struts的Controller Servlet根据配置转向到适当的JSP页面 将处理结果显示给用户 从这里可以看出 在Struts中Controller Servlet担任了重要的角色 它控制所有的程序流转 使MVC三个相对独立的部分协调工作 从而使系统的功能更加完善 从图 可见Struts是MVC Model 的一个典型应用   安装  你可以从 struts/release/下载Struts最新的二进制版本和源码 首先进入v 下载页面 下载jakarta struts zip( MB) 然后将jakarta struts zip解压 其中包含lib和webapps两个子目录 lib子目录中是使用Struts需要的Jar文件 标签库定义文件( tld) 以及对一个Struts Web应用的web xml和struts config xml配置文件的DTD定义( dtd) webapps子目录中包含了几个Struts的示例应用 都已打包为 war格式 这里主要介绍其中三个      struts example war 一个采用Struts框架的简单的示例程序Controller      struts documentation war Struts文档的war包      struts blank war 一个空白的Struts的应用 可以方便地修改 并且配置自己的应用     下面运行struts example这个示例程序 因为Struts是一个Web应用 所以要运行这个示例需要一个兼容Servlet JSP 以上规范的Web容器 本文以Tomcat a(对Tomcat 也适用)为例进行介绍 首先保证Tomcat可以正常运行 而运行struts example不需要其它特殊配置的 只要把struts example war拷入Tomcat下的webapps目录 Tomcat在启动时就会自动解压了 然后启动Tomcat 在浏览器中输//localhost: /struts example 如果能看到如图 页面 就说明已经运行成功     在图 中你可以点击 Register with the MailReader Demonstration Application 注册一个MailReader用户 或直接点击 Log on to the MailReader Demonstration Application 输入用户名和密码(示例程序已经预置了一个用户user/pass 配置在struts example下的WEB INF\\database xml文件中)登入   分析  web xml   在图 所示的页面中 点击 Log on to the MailReader Demonstration Application 链接 进入/logon jsp页面 输入预定义的用户名为user 密码为pass 然后提交就进入了图 的用户主页面       图 struts example主页面      图 用户主页面  大家可能已经注意到了 这里的URL的后缀是 do 那么它有什么意义?服务器又是怎样处理这样的请求呢?下面我们看看TOMCAT\\WEB INF\\web xml文件 就会非常清楚 在web xml中 你可以找到如下配置片断            action   * do     从上面配置代码中可以知道 以 do结尾的请求URL是由一个名为action的Servlet处理 实际上可以为应用取另一个后缀 只要修改就行了 但下面所有的讨论都以 do为例 我们再看一下这个Servlet的配置            action    apache struts action ActionServlet      

  application

  

   apache struts webapp example ApplicationResources  

  
     

  config

    
  ……     
  由此可见 action对应的类是 apache struts action ActionServlet 这是一个Struts提供的处于中心控制地位的Servlet 即图 中的Controller Servlet 正是用它监听所有的来自于用户的以 do为后缀的请求 在上面的配置中 为ActionServlet配置了一个名为config的初始化参数 值为 /WEB INF/struts config xml struts config xml是一个基于Struts应用的最重要的配置文件 其中包含了所有的Action请求(指以 do结尾的请求) 相应的Action处理类 Form Bean 以及页面的转向等信息的配置 struts config xml在应用启动时读入 然后根据这些配置进行响应 下面以示例程序中的LogonAction的配置为例 对struts config xml进行分析     struts config xml     下面是struts config xml中对LogonAction进行配置的部分代码      path= /logon    type= apache struts webapp example LogonAction    name= logonForm    scope= request    input= /logon jsp >    从上面可以看出 MailReader应用中对/logon do的请求是由 apache struts webapp example LogonAction类进行处理的 name属性指定的是这个请求对应的表单   logonForm也是在struts config xml中配置的 配置代码为:    bean name= logonForm type= apache struts webapp example LogonForm />   LogonForm类是一个普通的JavaBean 其中定义了几个属性及属性的读写方法 而且这些属性的名字要和页面表单中的输入域对应 比如LogonForm中定义了两个属性 代码如下     private String username = null;  private String password = null;  这两个属性分别对应于logon jsp表单中的两个输入域 代码如下    <:form action=" /logon focus= username >   <:text property=" username />   <:password property=" password redisplay= false />     注意 LogonForm中的属性名一定要和logon jsp中的表单域名完全对应起来 Struts就是由此从浏览器端抓取提交的数据 并填充到LogonForm对象中 再传送给LogonAction类进行处理的 Struts实现的表单验证和重填技术也是这样实现的 注意 在上面的页面代码中我们使用了Struts的HTML定制标签库 也可以直接使用类似 text name= username />的HTML代码 但这样就失去了自动回填的支持     Action     现在我们已经对Struts前端应用框架的整体结构 数据流转有了一定的认识 也知道了Struts是怎样从配置文件中获取配置信息的 即先启动 然后等待请求 再从前台抓取数据 根据配置信息调用(或生成)Action类进行处理 最后根据处理的结果转向到对应的页面响应用户 那么 现在就让我们看看LogonAction是怎样进行业务处理 并将处理结果显示给用户的 代码如下     package apache struts webapp example;   import apache struts action Action;      public final class LogonAction extends Action    public ActionForward perform(ActionMapping mapping    ActionForm form    HttpServletRequest request    HttpServletResponse response)  throws IOException ServletException      ActionErrors errors = new ActionErrors();  String username = ((LogonForm) form) getUsername();  String password = ((LogonForm) form) getPassword();     // 进行用户验证  // 如果不存在此用户 或密码错误 则将错误添加到errors中 cha138/Article/program/Java/ky/201311/28655

相关参考

知识大全 用struts+spring+hibernate组装web应用

  其实就算用Java建造一个不是很烦琐的web应用程序也不是件轻松的事情当为一个应用程序建造一个构架时有许多事情需要考虑从高层来说开发者需要考虑怎样建立用户接口(userinterfaces)?在哪

知识大全 Java框架研究——JSF与Struts的异同

Java框架研究——JSF与Struts的异同  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  S

知识大全 spring struts2 ibatis框架整合开发

这里主要介绍一下spring+struts+ibatis所需要的jar包文件spring所需包  以上包为spring配置基本包ibatis所需包  有解决方法的朋友们希望能回复  与struts整合

知识大全 用Struts实现模板

用Struts实现模板  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  如果不用框架来开发一个门户

知识大全 struts国际化程序尝试

  struts是一个MVC框架像Java和其他Java框架一样struts可以轻松实现国际化于是根据网上的资料做了一个尝试因为第一次做多语言程序还是拐了很多弯路但所幸经过不断的尝试终于成功的实现多语

知识大全 关于Java组件开发:一个概念框架(组图)

关于Java组件开发:一个概念框架(组图)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  我先介

知识大全 破解java Struts Web Application开发工具 scioworks Camin

破解javaStrutsWebApplication开发工具scioworksCamin  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发

知识大全 现在企业流行的java框架技术

  我将简短分析被用于支持这些框架的企业开发环境或工具箱例如BorlandJBuilderEclipse以及BEAWorkbench请记住市场上有许多有关这些开发框架的图书;然而在任何一篇文章中要对它

知识大全 用PL/SQL和Java开发Oracle8 i应用程序

用PL/SQL和Java开发Oracle8i应用程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 进行Struts应用程序单元测试开发

进行Struts应用程序单元测试开发  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一引言  测