第6章 基于Struts的项目开发.ppt_第1页
第6章 基于Struts的项目开发.ppt_第2页
第6章 基于Struts的项目开发.ppt_第3页
第6章 基于Struts的项目开发.ppt_第4页
第6章 基于Struts的项目开发.ppt_第5页
已阅读5页,还剩83页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第六章基于Struts的项目开发,本章知识点,1、掌握需求分析的过程及方法 2、了解J2EE平台的搭建 3、掌握数据字典的设计方法 4、熟悉web.xml和Struts-config.xml配置文件中的标记含义 5、掌握Struts逻辑标记的使用方法 6、了解JSP视窗组建标记的含义及使用方法 7、掌握基于Struts的开发流程及功能的实现,6.1 需求分析,需求分析,6.1 需求分析,在系统工程及软件工程中,需求分析指的是在建立一个新的或改变一个现存的系统或产品时,确定新系统的目的、范围、定义和功能时所要做的所有工作。需求分析是软件工程中的一个关键过程。在这个过程中,系统分析员和软件工程师确

2、定顾客的需要。只有在确定了这些需要后他们才能够分析和寻求新系统的解决方法。 在软件工程的历史中,很长时间里人们一直认为需求分析是整个软件工程中最简单的一个步骤,但在过去十年中越来越多的人认识到它是整个过程中最关键的一个过程。假如在需求分析时,分析者们未能正确地认识到顾客的需要的话,那么最后的软件实际上不可能达到顾客的需要,或者软件无法在规定的时间里完工。,需求分析的过程,6.1 需求分析,1、问题识别 就是从系统角度来理解软件,确定对所开发系统的综合要求,并提出这些需求的实现条件,以及需求应该达到的标准。这些需求包括:功能需求,性能需求,环境需求,可靠性需求,安全保密需求,用户界面需求,资源使

3、用需求,软件成本消耗与开发进度需求,预先估计以后系统可能达到的目标。 2、分析与综合 逐步细化所有的软件功能,找出系统各元素间的联系,接口特性和设计上的限制,分析他们是否满足需求,剔除不合理部分,增加需要部分。最后,综合成系统的解决方案,给出要开发的系统的详细逻辑模型(做什么的模型)。 3、制订规格说明书 即编制文档,描述需求的文档称为软件需求规格说明书。请注意,需求分析阶段的成果是需求规格说明书,向下一阶段提交。 4、评审 对功能的正确性,完整性和清晰性,以及其它需求给予评价。评审通过才可进行下一阶段的工作,否则重新进行需求分析。,6.1 需求分析,需求分析的原型化方法,原型化方法就是尽可能

4、快地建造一个粗糙的系统,这系统实现了目标系统的某些或全部功能,但是这个系统可能在可靠性,界面的友好性或其他方面上存在缺陷。建造这样一个系统的目的是为了考察某一方面的可行性,如算法的可行性,技术的可行性,或考察是否满足用户的需求等。,探索型:目的是要弄清楚对目标系统的要求,确定所希望的特性,并探讨多种方案的可行性 实验型:用于大规模开发和实现前,考核方案是否合适,规格说明是否可靠 进化型:目的不在于改进规格说明,而是将系统建造得易于变化,在改进原型的过程中,逐步将原型进化成最终系统。,原型主要有三种类型:探索型,实验型,进化型,6.1 需求分析,需求分析的原型化方法,在使用原型化方法是有两种不同

5、的策略:废弃策略,追加策略。,追加策略:先构造一个功能简单而且质量要求不高的模型系统,作为最终系统的核心,然后通过不断地扩充修改,逐步追加新要求,发展成为最终系统。进化型属于这种策略。,废弃策略:先建造一个功能简单而且质量要求不高的模型系统,针对这个系统反复进行修改,形成比较好的思想,据此设计出较完整,准确,一致,可靠的最终系统。系统构造完成后,原来的模型系统就被废弃不用。探索型和实验型属于这种策略。,6.1 需求分析,案例:DIY电子相册需求分析,整体功能模块设计,6.1 需求分析,需求分析的原型化方法,DIY电子相册流程图,6.1 需求分析,(1)用户登陆模块 注册模块:在同意用户注册写意

6、之后,填写注册信息,注册信息包括用户名、用户密码及密码确认、电子邮件及相关可选注册信息项。点击提交,成为新用户。 登录模块:注册过的用户点击登录,填写用户名,密码。登录进入主页面。 (2)主功能模块 用户注册登陆后,即可设计属于自己的电子相册,在这里有两种设计模式: 套用模板 系统提供一系列模板供用户选择,模板分为以下几类:生日,爱情,友情,儿童,祝福,节日。模板按选择人气进行排序。用户选择满意的模板后,上传需要加入到相册中的相片,相片以一次性上传的方式。相片上传完后,用户只需在模板中对应位置放入相片并加入文字说明即可。对于模板而言,相片以及文字的位置,排版,样式都是固定的。用户只需加入自己的

7、元素即可。 用户可随时将已上传的相片拖入到模板中,在模板中可调整相片的大小,位置。另外也可以继续新增上传相片。 用户设计完毕后,即可预览并保存自己设计的产品。该模式下流程如下图:,6.1 需求分析,套用模板流程,6.1 需求分析,自己DIY设计 用户选择该模式后,首先上传需要加入到相册中的相片,然后进入DIY设计页面。与模板不同的是,该方式下用户能更自由的发挥。不仅页面的背景,包括排版,文字的样式,都由用户自己确定。每一页均由用户自己设计,背景的设计包括:主题,心情,天气。用户选择主题后,系统提供相应主题的背景图片,心情的选择包括:开心,烦恼,生气,悲伤,平和。对应选项提供对应的色调饱和度。天

8、气的选择包括:晴朗,下雨,阴天,下雪。对应选项给背景加上对应天气的图标或者flash。,直接DIY页面设计,6.1 需求分析,上传照片,拖曳照片至 用户自定义页面,对于每一张照片的背景及说明文字的属性进行DIY设计:照片背景属性包含 文字属性包含,选择封面(分为自定义及网站提供) 自定义:用户自己上传图片或者从已上传照片中选择,然后填写书名,作者,日期等封面信息。 网站提供:网站对应不同主题提供相关封面,用户直接点选合适的封面。,预览,提交生成。,直接DIY流程,6.1 需求分析,(3)精品赏析模块 用户设计完成后可保存自己设计的产品,对于用户保存的产品,自动存入精品赏析中,供大家赏析,用户可

9、自由评价他人的设计成品并进行打分。精品赏析产品按浏览次数进行排序。使用户能看到自己设计的产品在大众眼中的看法及分数。 用户如想将自己设计的产品生产出来,可联系客服,按照流程填写订单并付款,由网站联系厂商进行产品的生产及销售。,6.1 需求分析,6.2 搭建开发平台,JDK,6.2 搭建开发平台 JDK安装及配置,工具准备: 1.JDK 1.5.0_05 下载地址: 2.Tomcat 5.5.9下载地址: /site/downloads/downloads_tomcat-5.cgi 3.MyEclipse 7.0 下载地址:,JDK的安装,JDK的

10、环境变量设置,首先右键点我的电脑。打开属性。然后选择“高级”里面的“环境变量”,在新的打开界面中的系统变量里需要设置三个属性“JAVA_HOME”、“path”、“classpath”,其中在没安装过jdk的环境下,path属性是本来存在的。而JAVA_HOME和classpath是不存在的。,6.2 搭建开发平台 JDK安装及配置,JDK的安装,JDK的环境变量设置,新建JAVA_HOME变量设置Java安装路径,然后根据JAVA_HOME变量添加path变量和设置classpath变量。path变量是为了设置Java编译和运行环境,classpath变量是为了设置Java加载类路径。,6.

11、2 搭建开发平台 JDK安装及配置,JDK的安装,JDK的环境变量设置,设置以上属性后,打开“开始”-“运行”,输入“cmd”,进入命令提示符界面,然后输入“java-version”,若安装成功,系统会显示Java的版本信息。,6.2 搭建开发平台 JDK安装及配置,JDK的安装,JDK的环境变量测试,新建一个文本文件,写入如下代码: public class HelloWorld public static void main(String args) System.out.println(Hello World!); 然后关闭编辑器,重命名本文件为HelloWorld.java。注意:如

12、果文件里的类名为helloworld,则本文件名也要改为helloworld.java,即文件名必须与类名相同,大小写也要必须一样。 打开命令提示符,如果刚才的HelloWorld.java 文件保存在f:中,则在该窗口中输入f:,然后回车,光标处为:F:。这时,输入javac HelloWorld.java,然后回车,再输入java HelloWorld,然后回车,如果一切正常的话,窗口中会显示Hello World!这一行文字。,6.2 搭建开发平台 JDK安装及配置,JDK的安装,测试环境变量过程中常见错误,错误1:javac 不是内部或外部命令,也不是可运行的程序或批处理文件。(jav

13、ac: Command not found) 产生的原因是没有设置好环境变量path。Win98下在autoexce.bat中加入path=%path%;c:jdk1.2 in,Win2000下则在控制面板-系统-高级-环境变量-系统变量,双击Path,在后面加上 c:jdk1.2in。当然我们假设JDK安装在了c:jdk1.2目录下。 * 错误2:HelloWorld is an invalid option or argument. java的源程序是一定要存成.java文件的,而且编译时要写全.java。,6.2 搭建开发平台 JDK安装及配置,JDK的安装,* 错误3:HelloWor

14、ld.java:1: Public class helloworld must be defined in a file called HelloWorld.java. public class helloworld 这个问题,是因为你的类的名字与文件的名字不一致。准确地说,一个Java源程序中可以定义多个类,但是,具有public属性的类只能有一个,而且要与文件名相一致。还有,main方法一定要放在这个public的类之中,这样才能java(运行)这个类。另外注意Java语言里面是严格区分大小写的。像上例中 helloworld 与 HelloWorld 就认为是不一样。,测试环境变量过程中

15、常见错误,6.2 搭建开发平台 JDK安装及配置,JDK的安装,* 错误4:Exception in thread main java.lang.NoClassDefFoundError: HelloWorld 这个就是著名的类路径(classpath)问题。实际上,类路径是在编译过程就涉及的Java中的概念。classpath就是指明去哪里找用到的类,就这么简单。由于我们的HelloWorld没用到其它的(非java.lang包中的)类,所以编译时没遇到这个问题。运行时,就要指明你的类在哪里了。解决方法,可以用下面的命令运行: java -classpath . HelloWorld“.”就

16、代表当前目录。当然这样做有点麻烦,我们可以在环境变量中设置默认的classpath。方法就照上述设置path那样。将classpath设为: classpath=.;c:jdk1.2libdt.jar;c:jdk1.2lib ools.jar * 错误5:Exception in thread main java.lang.NoSuchMethodError: main 看看你的代码,问题出在main方法的定义上,写对地方了吗,是不是和上述代码一模一样,包括大小写。,测试环境变量过程中常见错误,6.2 搭建开发平台 JDK安装及配置,tomcat的安装及配置,6.2 搭建开发平台 tomcat

17、安装及配置,第一步:安装Tomcat5.5.9。 第二步:接下来就是设置环境变量了,注意:tomcat的环境变量与jdk相关联,因此必须先安装好jdk并设置好其环境变量后,再开始安装tomcat。 在我的电脑-属性-高级-环境变量-系统变量中新建以下环境变量(假定你的tomcat安装在d:tomcat): CATALINA_HOME:d:tomcat CATALINA_BASE:d:tomcat TOMCAT_HOME: d:tomcat 在系统变量的path变量中加入以下值:D:tomcatbin;,tomcat的安装及配置,然后修改环境变量中的classpath(这一步与上面jdk相关联,

18、这里的classpath变量便是上面在安装jdk时所创建的环境变量):把 tomat安装目录下的commonlib下的servlet.jar追加到classpath中去,修改后的classpath如 下: classpath=.;%JAVA_HOME%libdt.jar;%JAVA_HOME%libtools.jar;%CATALINA_HOME%commonlibservlet-api.jar(注意:末尾最好别加分号)。双击打开classpath变量时,其值为jdk的相关值,即: .;%JAVA_HOME%libdt.jar;%JAVA_HOME%libtools.jar, 现在要追加tom

19、cat的该变量值,需要先在末尾添加一个分号(如果末尾有分号,就不必添加了),然后再添加tomcat的值: %CATALINA_HOME%commonlibservlet-api.jar。,6.2 搭建开发平台 tomcat安装及配置,tomcat的安装及配置,最后启动tomcat:在IE中访问http:/localhost:8080,如果看到tomcat的欢迎页面的话说明安装成功了。,6.2 搭建开发平台 tomcat安装及配置,MyEclipse的安装及配置,MyEclipse的安装相对简单,执行安装程序后,点击“下一步”,选用默认的安装地址。安装完成后,点击菜单栏MyEclipse per

20、eferences - MyEclipse Enterprise Workbench Services Tomcat Tomcat 5.x,配置好tomcat相应的地址。,6.2 搭建开发平台 tomcat安装及配置,Tomcat下JSP、Servlet和JavaBean的配置,6.2 搭建开发平台 Tomcat下JSP、Servlet和JavaBean的配置,第一步:建立自己的jsp app目录 1.到Tomcat的安装目录的webapps目录,可以看到ROOT,examples, tomcat-docs之类Tomcat自带的的目录; 2.在webapps目录下新建一个目录,起名叫myapp

21、; 3.myapp下新建一个目录WEB-INF,注意,目录名称是区分大小写的; 4.WEB-INF下新建一个文件web.xml,内容如下:, My Web Application A application for test. ,web.xml,6.2 搭建开发平台 Tomcat下JSP、Servlet和JavaBean的配置,5.在myapp下新建一个测试的jsp页面,文件名为index.jsp,文件内容如下: Now time is: 6.重启Tomcat 7.打开浏览器,输入http:/localhost:8080/myapp/index.jsp 看到当前时间的话说明就成功了。,6.2

22、搭建开发平台 Tomcat下JSP、Servlet和JavaBean的配置,第二步:建立自己的Servlet 接下来写入你的第一个Servlet: 在你新建的Application myapp/WEB-INF/classes/test目录下新建HelloWorld.java package test; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorld extends HttpServlet public void doGet(HttpServletRequ

23、est request, HttpServletResponse response) throws ServletException, IOException response.setContentType(text/html); PrintWriterout =response.getWriter(); out.println(); out.println(This is my first Servlet); out.println(); out.println(Hello,World!); out.println(); ,6.2 搭建开发平台 Tomcat下JSP、Servlet和Java

24、Bean的配置,然后照样用javac HelloWorld.java来编译这个文件,如果出现无法import javax.servlet.* 那么就是应该把d:Tomcatcommonlib里面的servlet-api.jar文件拷贝到d:JDKjrelibext中,再次编译,就没有问题了! 然后在Tomcat目录里面的d:Tomcatwebappsmyapp里面按如下的文件结构: myappindex.jsp myappWEB-INFclassestestHelloWorld.class(把上面生成的HelloWorld.class文件放在这个里面)接着用记事本打开web.xml文件, 在添

25、加下面这段程序: HelloWorld test.HelloWorld HelloWorld /HelloWorld 输入http:/localhost:8080/myapp/HelloWorld,如果正常显示Hello,World!就表示配置成功了。,6.2 搭建开发平台 Tomcat下JSP、Servlet和JavaBean的配置,指定包含servlet类,指定servlet映射到那一种 URL模式,第三步:建立自己java Bean 在你新建的Application myapp/WEB-INF/classes/test目录下新建TestBean.java package test; pu

26、blic classTestBean private String name=null; public TestBean(String nameInit) =nameInit; public void setName(String newName) =newName; public String getName() return ; 然后照样用javac TestBean.java来编译这个文件。,6.2 搭建开发平台 Tomcat下JSP、Servlet和JavaBean的配置,然后在你新建的应用程序目录myapp下新建一个新的jsp文件

27、: testBean.jsp Test Bean Java Bean Test: The authors blog address is ,6.2 搭建开发平台 Tomcat下JSP、Servlet和JavaBean的配置,6.2 搭建开发平台 Tomcat下JSP、Servlet和JavaBean的配置,3. 确定各个文件的位置: myappindex.jsp myapptestBean.jsp myappWEB-INFweb.xml myappWEB-INFclassestestHelloWorld.class myappWEB-INFclassestestTestBean.class 重

28、启Tomcat服务,在浏览器输入: http:/localhost:8080/myapp/testBean.jsp 如果能正常显示以下文字: Java Bean Test: The authors blog address isHttp:/ 就表示完成了整个Tomcat下的jsp、servlet和javabean的配置。 第六步:配置虚拟目录 打开 Tomcatconfserver.xml 文件,在 和 之间加入 ,6.3 数据库设计,6.3 数据库设计,数据库设计,数据库设计(Database Design)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有

29、效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。 数据库系统是一个复杂的系统,其中所包含的信息除了用户数据外,还有很多非用户数据信息。例如,模式和子模式的内容、文件间的联系、数据项的长度、类型、用户标识符、口令、索引等等。 数据字典是描述数据库中各数据属性与组成的数据集合,因此有人把它看做是关于数据库的数据库。,6.3 数据库设计,数据字典,数据字典是整个数据库环境的重要组成部分,是数据库环境管理的有力工具,在数据库的生命周期内起着重要作用。数据字典的用途是多方面的,它是一个管理有关数据库设计、实现、运行和扩充阶段的各种信息的工具。数据字典(Data dictionary,缩写为

30、DD) 是存放数据库各级模式结构的描述,也是访问数据库的接口。,6.3 数据库设计,数据字典的功能,1、描述数据库系统的所有对象,如属性、实体、记录类型、数据项、 用户标识、口令、物理文件名及其位置、文件组织方法等; 2、描述数据库系统各种对象之间的交叉联系,如哪个用户使用哪个子模式,哪个记录分配在哪个区域,存贮在哪个物理设备上; 3、登记所有对象在不同场合、不同视图中的名称对照表; 4、描述模式、子模式和物理模式的改动情况,6.3 数据库设计,数据字典的作用,1、管理系统数据资源数据字典提供了管理和收集数据的方法; 2、实现数据标准化在数据库中,数据的名称、格式和涵义等在不同的场合下容易混淆

31、,数据字典提供使之标准化的工具,它可以给这些内容予以统一的名称、格式和涵义; 3、使系统的描述文体化所有和系统有关的描述,都可以对数据字典中的信息进行查询、插入、删除和修改; 4、作为设计的工具由于数据字典中存放着与数据库有关的各种信息和原始资料,就为数据库设计提供了有力的工具; 5、为数据库提供存取控制和管理数据库在接受每一个对数据库的存取请求时,都要检查用户标识、口令、子模式、模式和物理模式等。所以从某种意义上讲,数据字典控制了数据库的运行; 6、供数据库管理员(DBA)进行各种查询,以便了解系统性能、空间使用状况和各种统计信息,及时掌握数据库的动态。所以数据字典是 DBA 观察数据库的眼

32、晴和窗口。,6.3 数据库设计,数据字典的组成,数据 字典,构成,内容,数据项,数据结构,数据流,数据存储,处理过程,数据库中所有模式对象的信息,如表、视图、簇、及索引等; 分配多少空间,当前使用了多少空间等; 列的缺省值; 约束信息的完整性; 用户名、用户及角色被授予的权限; 用户访问或使用的审计信息; 其它产生的数据库信息。,6.4 创建Struts项目,6.4 创建Struts项目,创建web项目,1、创建web工程 打开MyEclipse开发界面,File-New-web Projects,打开新建项目对话框,输入项目名称WebTest,其他采用默认值。注意这里的最下面有是否加入标签库

33、支持,我们选择JSTL1.1。然后,点击Finish按钮完成项目创建。,6.4 创建Struts项目,创建web项目,2、新建Hello类 选中工程项目WebTest下的src文件夹(注意是在Package Explorer下,Window-Show View-Package Explorer),右键菜单New-Package,新建一个包com.chenfeng。选中新建的包,右键菜单New -Class,Name中输入Hello,去掉public static void main选项,其他全部默认,点击Finish按钮完成类的创建。 编辑类的代码,如下所示: package com.chen

34、feng; publicclass Hello private String message = Hello World; public String getMessage() return message; public void setMessage(String message) this.message = message; ,6.4 创建Struts项目,创建web项目,3、创建JSP页面 在WebTest工程中,选中WebRoot文件夹,右键菜单New-JSP,File Name修改为index.jsp,其他默认,点击Finish按钮创建。 编辑JSP文件内容并保存。 4、配置To

35、mcat服务器 点击MyEclipse菜单,MyEclipse-Preference,打开Preference对话框,找到菜单树中MyEclips Enterprise WorkbenchServicesTomcatTomcat 5.x。在对话框中,选中Enable单选按钮,然后点击Tomcat Home Directory 输入框后的Browse按钮,选择Tomcat的安装根目录,这里是D:Tomcat5.5,其它的框会自动填充。点击Apply按钮。 选中Tomcat 5中的JDK一项,这里要特别注意,默认的是JRE的运行环境,这里要设定成JDK的,否则,MyEclipse无法正常部属Web

36、应用,也无法正常运行Tomcat服务器。我们点击Add按钮,JRE Name中写入JDK1.5.0_05,然后在Browse选择框中选择JDK的根目录,这里是D:jdk1.5.0_05,其他的默认,点击OK按钮。在Tomcat JDK Name中选择JDK1.5.0_05。点击Apply按钮,完成Tomcat的配置。,6.4 创建Struts项目,创建web项目,5、部属Web应用程序 选中WebTest工程的根目录,右键菜单MyEclipse-Add and Remove Projects Deployments,在打开的对话框中确保Projects为WebTest,点击Add按钮,在弹出对

37、话框的Server中选择Tomcat 5,使用目录部署方式。,6.4 创建Struts项目,创建web项目,6、运行调试程序 在MyEclipse的图形菜单栏找到 ,点击下拉按钮,选择Tomcat 5,然后点击Start菜单,启动Tomcat。等Consol窗口中提示Tomcat启动成功,我们就可以运行我们的程序了。打开一个IE浏览器窗口,输入http:/localhost:8080/WebTest/,我们可以看到如下信息: Hello World! This is my JSP page. 如果成功显示,则说明运行成功。一个简单的web项目就建立完成了。,6.4 创建Struts项目,加入S

38、truts框架,仍以上节的WebTest工程目录为例,右键WebTest,选择MyEclipseAdd Struts Capabilities。,6.4 创建Struts项目,加入Struts框架,在这里,选用默认的设置及版本,点击Finish。下载Struts所需jar包后,将jar包复制到WEB-INFlib文件夹中。 然后就是相应的类包。在src文件夹,右键菜单New-Package,分别建立以下包:com.action, com.actionform, com.dao, com.entity 四个包分别对应相关的Action、ActionForm、DAO、Entity,一个Struts

39、的简单实现包含几个方面,一个是类HttpServlet,一个是Action,一个是ActionForm,,6.5 Struts配置文件,6.5 Struts配置文件,配置文件说明,Struts应用采用两个基于XML的配置文件来配置,分别是web.xml和Struts-config.xml文件。web.xml文件是配置所有web应用的而Struts-config.xml文件是Struts专用的配置文件,事实上也是可以根据需要给这个配置文件起其他名称的。,Web应用的发布描述文件 为Struts应用配置Web.xml文件 配置欢迎使用清单 配置错误处理 配置Struts标签库 Struts配置文件

40、 (Struts-config.xml),6.5 Struts配置文件,Struts标记库,Struts-bean.tld 使访问bean以及新bean的定义更容易,为了实现国际化,应使用不同的属性文件 Struts-html.tld 提供显示HTML对象(例如,表单、按钮和复选框)的简便方法 Struts-logic.tld 支持逻辑构造,以便可以有条件地显示文本或者作为处理循环的结果来显示文本 Struts-template.tld 支持使用在运行时可以修改的JSP模板,定制JSP标记,6.5 Struts配置文件,Struts标记库,在最简单的情况下,bean:message标记解析为存

41、储在根据属性文件创建的资源束中的字符串: 属性文件的名称是用来调用ActoinServlet的web.xml “application”参数的值。如: WEB-INFclassesApplicationRperties 消息标记中的key属性指向属性文件中的“键字符串”对;在本例中,指向下面的“键字符串”对: market. text.title=Current Market Conditions 可以采用各种方法来定制bean:message标记,以便(例如)JSP在运行时引用不同的属性文件。标记提供了一种方法来支持多种语言以及最多将四个替代值插入到字符串中来代替0、

42、1等等。,资源束,6.5 Struts配置文件 JSP视窗组建标记,JSP视窗组建标记,JSP视窗组件所使用的Struts标记库由四类标记组成: Bean标记:用来在JSP页中管理bean 逻辑标记:用来在JSP页中控制流程 HTML标记:用来生成HTML标记,在表单中显示数据,使用会话ID对URL进行编程 模板标记:使用动态模板构造普通格式的页,6.5 Struts配置文件 JSP视窗组建标记 Bean标记,Bean复制标记,可定义新bean,可复制现有bean,还可从现有bean复制属性。 标记用来: 定义新字符串常数 将现有的bean复制到新定义的bean对象 复制现有bean的属性来创

43、建新的bean,例如:定义一个bean: 源bean在页作用域中被拷贝请求作用域中的另一个bean: ,6.5 Struts配置文件 JSP视窗组建标记 Bean标记,定义脚本变量标记,从多种资源中定义和生成脚本变量,这些资源包括cookie,请求参数,HTTP标头等等。 例如: 脚本变量名称是myCookie,用来创建这个属性的cookie的名称是userName。 脚本变量名称是myHeader,请求标头的名称是Accept-Language. 脚本变量名称是myPatameter,它保存的请求参数的名称也是myParameter.,6.5 Struts配置文件 JSP视窗组建标记 Bea

44、n标记,定义脚本变量标记,标记将对一个资源的响应进行检索,并引入一个脚本变量和字符串类型的页作用域属性。这个资源可以是一个页,一个ActionForward或一个外部URL。与的不同是资源的响应被存储到一个页作用域的bean中,而不是写入到输出流。 例如: 脚本变量的名称是myInclude,要检索的响应来自资源MyJsp?x=1。,标记,6.5 Struts配置文件 JSP视窗组建标记 Bean标记,显示Bean属性,标记库中定义了标记,用来将bean的属性输送到封装的JSP页写入器。这个标记与类似。 例如: myBean的属性myProperty将会被显示,作用域为请求,如果发现任何HTM

45、L特殊字符都将被转化为相应的实体引用。,6.5 Struts配置文件 JSP视窗组建标记 Bean标记,消息标记和国际化,Struts框架支持国际化和本地化。用户在他们的计算机中定义自己所在的区域,当web应用程序需要输出一条消息时,它将引用一个资源文件,在这个文件中所有的消息都使用了适当的语言。一个应用程序可能提供了很多资源文件,每个文件提供了用不同语言编写的消息。如果没有找到所选语言的资源文件,就将使用默认的资源文件。,Struts框架对国际化的支持是使用标记。Java.text.MessageFormat类定义的技术可以支持消息的格式。利用此功能,开发人员不需了解这些类的细节就可进行国际

46、化和设置消息的格式。,6.5 Struts配置文件 JSP视窗组建标记 Bean标记,消息标记和国际化,第一步要定义资源文件的名称,这个文件会包含用默认语言编写的在程序中会出现的所有消息。这些消息以“关键字-值”的形式存储,如下: error.validation.location = The entered location is invalid 这个文件需要存储在类的路径下,而且它的路径要作为初始化参数传送给ActionServlet作为参数进行传递时,路径的格式要符合完整Java类的标准命名规范。 为了实现国际化,所有的资源文件必须都存储在基本资源文件所在的目录中。基本资源文件包含的是用

47、默认地区语言-本地语言编写的消息。如果基本资源文件的名称是ApplicationRperties,那么用其他特定语言编写的资源文件的名称就应该是ApplicationResources_perties(xx为ISO编码,如英语是en)。因此这些文件应包含相同的关键字,但关键字的值是用特定语言编写的。,6.5 Struts配置文件 JSP视窗组建标记 逻辑标记,逻辑标记,逻辑库的标记能够用来处理外观逻辑而不需要使用scriptlet。Struts逻辑标签库包含的标记能够有条件地产生输出文本,在对象集合中循环从而重复地产生输出文本,以及应用程序流程控制。它也提供

48、了一组在JSP页中处理流程控制的标记。这些标记封装在文件名为Struts-logic.tld的标记包中。逻辑标记库定义的标记能够执行下列三个功能: 条件逻辑 重复 转发/重定向响应,6.5 Struts配置文件 JSP视窗组建标记 逻辑标记,条件逻辑,Struts有三类条件逻辑。第一类可以比较下列实体与一个常数的大小: cookie;求参数;bean或bean的参数;请求标头 第二类条件标记定义了两个标记: 它们的功能是在计算标记体之前判断特定的项目是否存在。标记的属性和属性值决定了要进行检查的项目。 第三类条件标记比较复杂,这些标记根据模板匹配的结果检查标记体的内容。换句话说,这些标记判断一

49、个指定项目的值是否是一个特定常数的子字符串: ,6.5 Struts配置文件 JSP视窗组建标记 逻辑标记,重复标记,在逻辑标记库中定义了标记,它能够根据特定集合中元素的数目对标记体的内容进行重复的检查。集合的类型可以是java.util.Iterator,java.util.Collect ion,java.util.Map或是一个数组。有三种方法可以定义这个集合: 使用运行时间表达式来返回一个属性集合的集合 将集合定义为bean,并且使用name属性指定存储属性的名称 使用name属性定义一个bean,并且使用property属性定义一个返回集合的bean属性,6.5 Struts配置文件

50、 JSP视窗组建标记 逻辑标记,重复标记,例如: ” type=”java.lang.Integer” offset=”1” length=”2” 代码将从列表中的第一个元素开始重复两个元素并且能够让当前元素作为页作用域和java.lang.Integer类型的脚本变量来使用。也就是说,如果myList包含元素1,2,3,4等,代码将会打印1和2。,6.5 Struts配置文件 JSP视窗组建标记 逻辑标记,转发标记和重定向标记,标记能够将响应转发给重定向到特定的全局ActionForward上。ActionForward的类型决定了是使用PageContext转发响应,还是使用sendRed

51、irect将响应进行重定向。此标记只有一个”name”属性,用来指定全局ActionForward的名称,例如: ,标记是一个能够执行HTTP重定向的强大工具。根据指定的不同属性,它能够通过不同的方式实现重定向。它还允许开发人员指定重定向URL的查询参数。,6.5 Struts配置文件 JSP视窗组建标记 HTML标记,HTML标记,Struts HTML标记可以大致地分为以下几个功能: 显示表单元素和输入控件 显示错误信息 显示其他HTML元素,6.5 Struts配置文件 JSP视窗组建标记 HTML标记,HTML标记,Struts将HTML表单与为表单操作而定义的ActionForm b

52、ean紧密联系在一起。表单输入字段的名称与ActionForm bean里定义的属性名称是对应的。当第一次显示表单时,表单的输入字段是从ActionForm bean中移植过来的,当表单被提交时,请求参数将移植到ActionForm bean实例。 标记用来显示HTML标记,可以指定AcitonForm bean的名称和它的类名。如果没有设置这些属性,就需要有配置文件来指定ActionMapping以表明当前输入的是哪个JSP页,以及从映射中检索的bean名和类。如果在ActionMapping指定的作用域中没有找到指定的名称,就会创建并存储一个新的bean,否则将使用找到的bean。 标记能

53、够包含与各种HTML输入字段相对应的子标记。,显示表单元素和输入控件,6.5 Struts配置文件 JSP视窗组建标记 HTML标记,HTML标记,以下标记必须嵌套在标记里 按钮和取消标记 标记显示一个按钮控件;标记显示一个取消按钮。 复位和提交标记 和标记分别能够显示HTML复位按钮和提交按钮。 文本和文本区标记 和标记分别HTML文本框和文本区。 检查框和复选框标记 标记能够显示检查框控件。标记能够显示HTML复选框控件,请求对象在传递检查框名称时使用的getParameterValues()调用将返回一个字符串数组。,显示表单元素和输入控件,6.5 Struts配置文件 JSP视窗组建标

54、记 HTML标记,HTML标记,以下标记必须嵌套在标记里 文件标记 标记可以显示HTML文件控件。 单选钮标记 标记用来显示HTML单选钮控件。 隐藏标记 标记能够显示HTML隐藏输入元素。 密码标记 标记能够显示HTML密码控件。 选择及选项标记 标记能够显示HTML选择控件,标记用来显示HTML选项元素集合。,显示表单元素和输入控件,6.5 Struts配置文件 JSP视窗组建标记 HTML标记,HTML标记,标记能够与ActionErrors结合在一起来显示错误信息。这个标记首先要从当前区域的资源文件中读取消息关键字errors.header,然后显示消息的文本。接下去它会在Action

55、Errors对象寻找单个ActionError对象的消息关键字,从当前区域的资源文件中读取并格式化相应的消息,并且显示它们。,显示错误信息,6.5 Struts配置文件 JSP视窗组建标记 HTML标记,HTML标记,Struts HTML标记还定义了下列标记来显示其他HTML元素: : 显示HTML元素 : 显示图象标记 : 显示HTML链接或锚点 : 创建没有锚点标记的URI 这些标记的详细内容请参照Struts文档。,其他HTML标记,6.5 Struts配置文件 JSP视窗组建标记 模板标记,模板标记,动态模板是模块化WEB页布局设计的强大手段。Struts模板标记库定义了自定义标记来

56、实现动态模板。 (1) 插入标记 标记能够在应用程序的JSP页中插入动态模板。这个标记只有一个template属性,用来定义模板JSP页。要插入到模板的页是有多个标记来指定的,而这些标记被定义为标记的主体内容。 (2) 放置标记 标记是标记内部使用的,用来指定插入到模板的资源。 (3) 获得标记 在模板JSP页中使用标记能够检索由标记插入到JSP页的资源。,6.6 编写登陆应用,6.6 编写登陆应用,编写登陆应用,了解了Struts的基础知识,接下来我们就可以开发实际的应用了。本节以简单的登陆应用的开发为例。首先打开MyEclips创建一个web项目,然后运用前面所学到的知识,导入Struts

57、框架。在这里,我们创建的项目名为“diy”。 编写流程: 1、创建DB类 2、创建DAO类 3、创建ActionForm 4、创建Action 5、配置Struts-config.xml文件 6、创建JSP页面,6.7 编写文件上传应用,6.7 编写文件上传应用,文件上传的简单知识说明,文件上传是WEB应用经常需要面对的问题,在大部分的时候用户请求的参数是在表单域输入的字符串,但如果为表单元素设置enctype=multipart/form-data属性,则提交表单时不再以字符串方式提交请求参数,而是以二进制编码的方式提交请求(这就是为什么实现文件上传时,JSP页面的表单元素必须设置encty

58、pe=multipart/form-data属性的原因),此时可以直接通过HttpServletRequest的getParameter方法无法正常获取请求参数,我们可以通过二进制流来获取请求内容通过这种方式,就可以取得希望上传文件的内容,从而实现文件的上传。,6.7 编写文件上传应用,文件上传的原理,表单的enctype属性指定的是表单数据的编码方式,该属性有如下3个值: 1.application/x-www-form-urlencoded:这是默认的编码方式,它只处理表单域里的value值,采用这种编码方式的表单会将表单域的值处理成URL编码方式。 2.multipart/form-da

59、ta:这种编码方式会以二进制流的方式来处理表单数据,它把文件域指定文件的内容也封装到请求参数里。一旦设置了这种方式,就无法通过HttpServletRequest.getParameter()访求获取请求参数。 3.text/plain:这种编码方式当表单的action属性为mailto:URL的形式时比较方便,这种方式主要适用于直接通过表单发送邮件的方式。,6.7 编写文件上传应用,常见文件上传方式 - SmartUpload,JspSmartUpload是由网站开发的一个可免费使用的全功能的文件上传下载组件,适于嵌入执行下载操作的JSP文件中。该组件有以下几个特点: (1)使用简单。在JSP文件中书写少量JAVA代码就可以实现文件的上传或下载。 (2)能全程控制上传。利用jspSmartUpload组件提供的对象及操作方法,可以获得全部上传文件的信息(包括文件名、大小、类型、扩展名、文件数据等),方便存取。 (3)能对上传的文件在大小、类型等方面做出限制,以过滤不符合要求的文件。 (4)能将文件上传到数据库中,也能将数据库中的数据下载下来。这种功能针对的是MySQL数据库。,6.7 编写文件上传应用,常

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论