0

0

Jakarta Struts学习之应用实践

黄舟

黄舟

发布时间:2016-12-17 10:41:38

|

1304人浏览过

|

来源于php中文网

原创

  本文是三篇学习struts框架系列文章的第二篇。在本系列的的第一篇中,我们大致浏览了struts框架,框架的功能以及框架中应用到的各个模块。而本文,我将利用struts 1.0为大家演示建立一个简单的应用;在第三篇文章中将介绍如何利用struts的标签在jsp中访问applicationresource文件中的信息。 我们在这篇文章将会一步一步的讲解struts的应用,以这样的形式打开struts一道道神秘的大门,通过这样的过程,相信也能激起你在应用开发中如何应用struts的灵感。假如你对struts的一些术语不是很清楚的话,可以参考本系列前一篇对struts作大体介绍的文章。 
  
  再次重复一遍,本文需要读者有如下几方面的知识和经验:jsp,servlets,自定义标签库(custom tag libraries)和xml。此外,在本文中,我还会用到jakarta项目组其他一些好东东,比如tomcathttp://jakarta.apache.org/tomcat/index.html(实现java servlet和jsp官方标准的servlet容器,通俗的讲就是一个jsp的web server啦)和anthttp://jakarta.apache.org/ant/index.html(基于java的自动编译发布工具,这可是好东东啊)。 
  
  作为一名一直使用前沿技术开发了诸多应用的技术人员,我一直坚信把握新技术,理解该技术开发的逻辑是至关重要的。但这往往就是陷住我们学习步伐的泥潭,正因如此,我打算将利用struts开发的一套完整流程作为我们教学的案例。该流程的这个案例可谓“麻雀虽小、五脏据全”,你完全可以将这个流程应用到你手头那些复杂庞大的项目中,至少在我们的大项目中应用这个流程效果不错。 
  
  有开发复杂商业应用的开发人员都知道,客户的需求总是在不停变幻,所以假如有一套规范的开发流程来遵循,当客户提出新的需求时,我们至少可以明确哪些“无理”需求其实是合理可行的。好,接下里我将在我的这个例子中向各位展示和应用整个流程。 
  
  本文中的示例代码是strutssample应用中的一部分,包括build.xml的完整代码可以到此处http://www.onjava.com/onjava/2001/10/31/examples/strutspartii.jar下载。 
  
  struts开发过程
  从struts发布的版本号可以看出,struts是个新玩意,她有好几个部分组成,明智的你假如搞清楚了何时该开发完成合适的部分,那将会更好的利用我们的开发时间。从我所开发的几个利用struts应用中,我大致总结出如下这个比较有效的开发步骤: 
  
  1,明确应用需求; 
  
  2,由用户输入和获取数据的角度出发,明确和设计出每一个用户界面; 
  
  3,确定用户界面的进入路径; 
  
  4,由应用逻辑信息确定动作映射表(actionmapping); 
  
  5,由设计完成的用户界面开发其所用到的类和应用函数; 
  
  6,由用户界面中的数据信息开发actionform和相应的数据校验方法; 
  
  7,actionmapping中将会被调用相应的action或转到相应的jsp页面,这一步我们先开发这些action; 
  
  8,开发商业应用逻辑,就是相应的javabean、ejb或其他东东; 
  
  9,开发由actionmapping定义的系统工作流程完成对应的jsp页面; 
  
  10,完成系统配置文件:struts-config.xml和web.xml; 
  
  11,编译/测试/发布。 
  
  明确应用需求
  开发任何应用系统的第一步就是收集用户需求信息。不管一个用户逻辑初看上去多么合理,但总有可能在开发时才发现它比看上去要难得多。所以,建议拟一份明确的用户需求列表,这不只是出于开发的目的,还能通过该表分析用户需求以确定哪些地方可能需要花更多的精力。 
  
  在我们这个strutssample项目中,应用需求就是: 
  
  作为一个展示struts框架应用的完整例子,本示例完成的功能是用户登录。目的只为明确struts的应用,本示例将不会涉及到一般复杂应用系统中可能应用的安全、数据库、ejb开发等等相关技术。 
  
  设计用户界面
  这个应用中,包括如下三个用户界面: 
  
  1)登录界面,用于用户名和密码输入; 
  
  2)当登录用户为合法用户时的欢迎界面; 
  
  3)当登录失败时的错误提示界面。 
  
  确定用户界面的进入路径
  1)登录界面作为这个应用的默认页面; 
  
  2)欢迎界面只有当成功登录后才能进入; 
  
  3)任何可能发生错误的页面能可以进入错误提示界面; 
  
  由应用逻辑信息确定actionmapping actionmap昀三篇学????本文是三篇学习struts框架系列文章的第二篇。在本系列的的第一篇中,我们大致浏览了struts框架,框架的功能以及框架中应用到的各个模块。而本文,我将利用struts 1.0为大家演示建立一个简单的应用;在第三篇文章中将介绍如何利用struts的标签在jsp中访问applicationresource文件中的信息。 我们在这篇文章将会一步一步的讲解struts的应用,以这样的形式打开struts一道道神秘的大门,通过这样的过程,相信也能激起你在应用开发中如何应用struts的灵感。假如你对struts的一些术语不是很清楚的话,可以参考本系列前一篇对struts作大体介绍的文章。
  
  再次重复一遍,本文需要读者有如下几方面的知识和经验:jsp,servlets,自定义标签库(custom tag libraries)和xml。此外,在本文中,我还会用到jakarta项目组其他一些好东东,比如tomcathttp://jakarta.apache.org/tomcat/index.html(实现java servlet和jsp官方标准的servlet容ping为整个应用确定的“线路图”,在配置文件struts-config.xml对actionmapping进行定义,通过转发请求(forward)来理顺应用的处理流程,确定应用中每个用户请求对应的动作。 通常我们在开发过程中就逐步确定了actionmapping所需的信息,开发代码的过程就是在由草稿开始一步步完善struts-config.xml的过程。当action类处理完用户请求后,其返回的的forward就是在actionmapping中定义的一个。一个action返回的forward完全有多种可能,尽管一个action一般只定义其相关的几个forward。那么,假如有多个action都可能返回的同一个forward,那么就可以将其定义为全局转发(global forward)。这类似于c中的头文件中全局变量,假如在struts-config.xml描述信息中,某一个forward并不是在当前action描述中定义的而是全局定义的,那么这个全局的将起作用,同样,一个action中当前定义的forward将覆盖全局定义。在我们所给的这个简单实例中,我们定义了全局forward――“error”,当某action返回的forward是“error”这个映射,那么errorpage.jsp页面将会显示给用户,尽管当前action并没有对其定义。 我们继续不断的开发,项目日渐完善,项目相关的配置文件也会越来越具体。在下面的例子中,我们将以strutssample中用到的struts-confug.xml文件为例,学习global forward和一个action中相关映射的定义。下面定义了一个名为“login”的action,其为com.oreilly.actions.loginaction的实例,当action处理用户登录成功后将一个名为"success"的forward返回,用户也就会看到welcome.jsp页面,假如登录失败,action将返回对应的forward以再显示login.jsp给用户,而假如处理过程中发生其他错误,action将返回全局定义的forward――“error”,用户也就会看到错误提示页面errorpage.jsp。 
  
  
  
  
  
  

  
  
  
  
  
  
  
   
    type="com.oreilly.actions.loginaction"
  name="loginform"
  scope="request"
  input="/login.jsp">
  

相关专题

更多
php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

7

2025.12.31

php网站源码教程大全
php网站源码教程大全

本专题整合了php网站源码相关教程,阅读专题下面的文章了解更多详细内容。

4

2025.12.31

视频文件格式
视频文件格式

本专题整合了视频文件格式相关内容,阅读专题下面的文章了解更多详细内容。

7

2025.12.31

不受国内限制的浏览器大全
不受国内限制的浏览器大全

想找真正自由、无限制的上网体验?本合集精选2025年最开放、隐私强、访问无阻的浏览器App,涵盖Tor、Brave、Via、X浏览器、Mullvad等高自由度工具。支持自定义搜索引擎、广告拦截、隐身模式及全球网站无障碍访问,部分更具备防追踪、去谷歌化、双内核切换等高级功能。无论日常浏览、隐私保护还是突破地域限制,总有一款适合你!

7

2025.12.31

出现404解决方法大全
出现404解决方法大全

本专题整合了404错误解决方法大全,阅读专题下面的文章了解更多详细内容。

42

2025.12.31

html5怎么播放视频
html5怎么播放视频

想让网页流畅播放视频?本合集详解HTML5视频播放核心方法!涵盖<video>标签基础用法、多格式兼容(MP4/WebM/OGV)、自定义播放控件、响应式适配及常见浏览器兼容问题解决方案。无需插件,纯前端实现高清视频嵌入,助你快速打造现代化网页视频体验。

4

2025.12.31

关闭win10系统自动更新教程大全
关闭win10系统自动更新教程大全

本专题整合了关闭win10系统自动更新教程大全,阅读专题下面的文章了解更多详细内容。

3

2025.12.31

阻止电脑自动安装软件教程
阻止电脑自动安装软件教程

本专题整合了阻止电脑自动安装软件教程,阅读专题下面的文章了解更多详细教程。

3

2025.12.31

html5怎么使用
html5怎么使用

想快速上手HTML5开发?本合集为你整理最实用的HTML5使用指南!涵盖HTML5基础语法、主流框架(如Bootstrap、Vue、React)集成方法,以及无需安装、直接在线编辑运行的平台推荐(如CodePen、JSFiddle)。无论你是新手还是进阶开发者,都能轻松掌握HTML5网页制作、响应式布局与交互功能开发,零配置开启高效前端编程之旅!

2

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Tomcat核心原理解析
Tomcat核心原理解析

共57课时 | 6.8万人学习

ThinkPHP开发大型商城项目实战视频
ThinkPHP开发大型商城项目实战视频

共54课时 | 21.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号