您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 跟我学Java_Web--Struts2技术详解
286跟我学JavaWebStruts2是目前最为流行的开发模式,被广泛应用于各个领域,通过Struts2来开发程序非常方便快捷,现在的应用框架主要是MVC模式,其中就包含Struts2。287Struts2技术详解10◎Struts2的安装与环境搭建。◎编写和运行Struts2的过程。◎Struts2的校验框架的使用。◎Struts2拦截器的使用。◎Struts2使用国际化资源文件的方法。◎Struts2标签的介绍和使用。Struts2介绍10.1Struts2是Apache基金组织的一个开源项目,它是对经典设计模式MVC的一种实现。在使用Struts2时,主要是对大型的项目进行开发,Struts2为Web应用提供了通用的框架技术,这对于开发人员来说,可以帮助他们解决实际的业务逻辑,采用Struts2还可以很好地实现代码重用,使开发人员从繁杂的工作中解放出来,这样就可以使开发的效率大大提高,并对Web应用程序有很强的扩展性,Struts2框架一经推出,就受到开发人员的广泛重视。到目前为止,Struts2已经成为Web开发中MVC模式的事实标准,大量的Web应用开发中都选择使用Struts2实现MVC模式。下面就对Struts2的基本概念及应用,结合实例进行讲解。Struts2的环境配置10.2在使用Struts2开发时,需要对其进行相关的配置。其中需要把Struts2的类库和所需要的288跟我学JavaWeb包放到项目WEB-INF/lib文件夹下,而且要把Struts2的TLD标签库表述文件放到WEB-INF目录下,然后还需要在web.xml中配置ActionServlet这个控制器,从而保证所有的用户请求都能被Struts2框架接收并处理。10.2.1下载Struts2(1)Struts2的包文件可以从官方网站下载,并将下载的压缩包放到指定的文件夹中,官方下载地址:。下载的页面如图10-1所示。图10-1Apache的Struts主页面(2)进入主页面后,单击structs2,便可进入structs2的下载页面,如图10-2所示。图10-2进入下载Struts2的页面(3)进入下载页面后,单击DownloadNow按钮,便进入选择structs2版本和资源的页面,在这里笔者选择的是structs2的最新版本structs2.1.6,如图10-3所示。289Struts2技术详解10图10-3选择下载源在下载过程中,对Struts2的包文件不要解压,直接将压缩包放到相应的文件夹中,接下来就可以对它进行环境的搭建。10.2.2搭建Struts2的开发运行环境在深入学习Struts2之前,我们要讲述一下开发环境的搭建。在这里,笔者着重声明一下:Struts2必须在Tomcat5.5以上,JDK1.5以上版本才能运行。在本章中,笔者使用的Tomcat6.0,JDK1.6。接下来就具体介绍一下如何搭建Struts2的开发运行环境。下面的所有Struts2示例都会运行在这个开发环境中。(1)解压下载完毕的struts-2.1.6-all.zip,将其解压后的Struts2目录结构,如图10-4所示。图10-4Struts2目录结构图目录中的4个文件夹中存放的具体内容如下:¾apps:包括了Struts2的示例应用。¾docs:包括Struts2的快速入门、Struts2的文档,以及API文档等Struts2的相关文档290跟我学JavaWeb¾lib:包括Struts2框架的核心类库,以及Struts2的第三方插件类库。¾src:包括Struts2框架的全部源代码。(2)打开MyEclipse,单击file|new|Project命令,在弹出的对话框中选择WebProject项,如图10-5所示。图10-5建立webProject项目(3)单击Next按钮,填写项目的名称Struts2Demo,然后单击finish按钮完成项目的创建,如图10-6所示。图10-6填写项目名称(4)项目建立之后,就可以在Eclipse的左侧看到,如图10-7所示。291Struts2技术详解10图10-7项目建立完成(5)选中创建好的Struts2Demo工程,单击鼠标右键,选择BuildPath|configureBuildPath,在弹出来的对话框中,选择所需选项,如图10-8所示。图10-8JavaBuildPath界面(6)单击AddExternalJARs按钮,将Struts2解压后目录中的lib文件夹下的commons-fileupload-1.2.1.jar、commons-io-1.3.2.jar、commons-logging-1.0.4.jar、freemarker-2.3.13.jar、freemarker-2.3.8.jar、ognl-2.6.11.jar、struts2-core-2.1.6.jar和xwork-2.1.2.jar这些jar包导入。单击OK按钮,完成Struts2的开发环境的搭建,如图10-9所示。292跟我学JavaWeb图10-9导入Struts2的相关jar包Struts2入门示例10.3在10.2节中对Struts2进行了配置及测试程序,下面就进入Struts2的编程环境,体会Struts2框架给开发者带来的快捷和方便。为了能让开发者快速掌握Struts2的技术,作者根据自己的开发经验将实例讲解与实际分析结合在一起,引领大家学习Struts2。下面给出一个用Struts2模仿用户登录时对用户名和密码的输入情况进行验证,例如:不输入用户名或密码则分别给出相应的信息提示,用户名和密码都不输入则给出操作错误的提示。只有当用户名和密码全都输入才给出登录成功的提示。接下来介绍这个示例程序的具体开发过程。开发这个示例程序一般需要以下几个步骤。(1)创建JSP页面,用于接收用户信息的录入与信息的提示。(2)创建控制器Action,处理页面中输入的信息,并把处理的结果返回给JSP。(3)创建struts.xml配置文件,其作用是描述JSP页面与Action之间的映射关系。(4)创建struts.properties资源文件,其作用提供了一种更改Struts2默认行为的机制,例如:字符集的设定。(5)web.xml中配置servlet过滤器。10.3.1编写消息输出的JSP页面下面编写用户录入信息的的userlogin.jsp页面,在该页面中的第22行和第28行的设置可以录入用户名和密码的输入框,在第32行和34行设置了可以提交和重置信息的按钮。其具体293Struts2技术详解10代码如下:程序10-1(a)userlogin.jsp01%@pagelanguage=javaimport=java.util.*pageEncoding=GBK%02%03Stringpath=request.getContextPath();04StringbasePath=request.getScheme()+://05+request.getServerName()+:+request.getServerPort()06+path+/;07%08!DOCTYPEHTMLPUBLIC-//W3C//DTDHTML4.01Transitional//EN09html10head11basehref=%=basePath%12titlestruts2-用户登录示例/title13/head14body15formid=form1name=form1method=postaction=%=path%/user/check16pstyle=margin-left:90px;font-size:25px;color:#F36;17用户登录18/p19p20fontsize=+1color=#6633FF姓名:/font21label22inputtype=textname=nameid=name/23/label24/p25p26fontsize=+1color=#6633FF密码:/font27label28inputtype=passwordname=passwordid=password/29/label30/p31pstyle=margin-left:80px32inputtype=submitname=subid=subvalue=提交/33 34inputtype=resetname=resetid=resetvalue=重置/35/p36/form37/body38/htmlsuccess.jsp的主要作用是获取Action中处理后的结果,并把结果显示在该页面中。在本程序的第13和第14行获取用户输入的用户名和密码,并且只有当用户名与密码全部输入时,才可以跳转到该页面。其具体代码如下:程序10-1(b)success.jsp01%@pagelanguage=javaimport=java.util.*pageEncoding=UTF-8%02%03Stringpath=request.getContextPath();294跟我学JavaWeb04StringbasePath=request.getScheme()+://+request.getServerName()+:+request.getServerPort()+path+/;05%06html07head08basehref=%=basePath%09titlesuccess.jsp/title10/head11body12%13Stringname=(String)request.getAttribute(name);//获取属性名为name的值14Stringdate=(String)request.getAttribute(date);//获取属性名为date的值15%16fontsize=+1color=orange%=name%/fontbrfontcolor=blue欢迎您的到来,您本次登录时间为:%=date%/font17/body18/htmlfail.jsp的主要作用是在Action处理过程中对一些错误操作的信息提示。在本程序的第11行判断用户名是否为空,第17行判断密码是否为空。其具体代码如下:程序10-1(c)fail.jsp01%@pagelanguage=javapageEncoding=UTF-8%02html03head04titlefail.jsp/title05/head06body07center08%09Stringname=(String)request.getAttribute(name);10Stringpassword=(String)request.getAttribute(password);11if(name.equals()&&!password.equals()){12%13h214用户名输入不正确,请重新输入!!!!15/h216%17}elseif(password.equals()&&!name.equals()){18%19h220密码输入不正确,请重新输入!!!!21/h222%23}else{24%25h226您的操作有误!!!!27/h228%29}295Struts2技术详解1030%31/center32/body33/html10.3.2编写控制器UserAction.java在Struts应用框架中,Action是一个最基本的概念,也是与用户发出的HTTP请求相关联的最小的工
本文标题:跟我学Java_Web--Struts2技术详解
链接地址:https://www.777doc.com/doc-4473553 .html