1.准备安装文件以下为需要准备的文件清单,从相应网址下载到本地,表格中列出的版本号是截止到2012年5月6日的最新版本。序号库类型版本文件名下载地址1Struts22.3.3struts-2.3.3-all.gz://springframework.org/3Mybatis3.1.1mybatis-3.1.1-bundle.zipmybatis-spring-1.1.1-bundle.zipmybatis-generator-core-1.3.1-bundle.zip://jquery.com/4EclipseEclipseIDEforJavaEEDevelopers,eclipse-jee-indigo-SR2-win32.zip://tomcat.apache.org/Struts2下载包含了库和代码、例子的全包:struts-2.3.3-all.gz,大约在76m,文件较大,但其中的空应用例程可作为直接拷贝的参考。Spring下载包含了库和代码、例子的全包:spring-framework-3.1.1.RELEASE-with-docs.zipMyBatis2.新建WEB工程选择WEB下DynamicWebProject类型的工程:工程命名为EMS,其它选项保持默认。文件夹名保持默认勾上生成web.xml选项,其它保持默认。最后得到一个如下组织的WEB工程.补充:在JavaResources/src目录上通过右键菜单将JAVA代码下编译输出目录修改至WebContent/WEB-INF/classes目录,与myEclipse的默认方式保持一致,便于实时发布,如果不做这一步class等文件不会自动输出到WEB-INF下。3.配置Tomcat服务器切换Servers页签:※建议不采用eclipse的应用发布功能,改用修改Tomcat配置文件的方式来实现发布,因此这里暂时不作选择。在Eclipse中测试启动Tomcat服务器:采用修改Tomcat配置的方式来发布应用(建议采用,这是相对快捷的发布1、双击tomcat服务器,打开配置选项,将ServerLocation选项置为第二个:2、用文本编辑器打开:D:\tomcat\apache-tomcat-7.0.27\conf\server.xml文件,在Host节点之上增加虚拟目录描述:…!--Accesslogprocessesallexample.Documentationat:/docs/config/valve.htmlNote:Thepatternusedisequivalenttousingpattern=common--ValveclassName=org.apache.catalina.valves.AccessLogValvedirectory=logspattern=%h%l%u%t"%r"%s%bprefix=localhost_access_log.suffix=.txt/Contextpath=/emsdocBase=E:\workspace\EMS\WebContentreloadable=true//Host/Engine/Service/Server3、在WebContent目录下新建一个默认JSP页面:NewFile.jsp,打印一行信息:HelloWorld!htmlheadmetahttp-equiv=Content-Typecontent=text/html;charset=UTF-8titleInserttitlehere/title/headbodyHelloWorld!/body/html4、在eclipse中重启tomcat,在浏览器中敲入URL:验证是否看到正确的输出信息。配置TOMCAT管理界面打开:D:\tomcat\apache-tomcat-7.0.27\conf\tomcat-users.xml文件,加入:tomcat-usersrolerolename=manager-gui/rolerolename=admin-gui/userusername=adminpassword=adminroles=manager-gui,admin-gui//tomcat-users之后通过admin/admin即可登陆管理界面。4.配置Structs2搭建环境从已下载的struts-2.3.3-all.gz文件中解压出自带的一个空例程:struts2-blank,直接从展开的文件夹中复制内容过来:1)复制struts2-blank\WEB-INF\lib目录下的所有JAR包到该工程的WEB-INF/lib目录下(注意:这里指的是空例程里面的JAR包,是一些最基本的包,不能直接把structs2里面的所有的包都一下子导进来,那样会出错的!)2)打开struts2-blank\WEB-INF\web.xml,复制其中过滤器到该工程相同目录下web.xml,,让struts2在tomcat启动的时候加载:…filterfilter-namestruts2/filter-namefilter-classorg.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter/filter-class/filterfilter-mappingfilter-namestruts2/filter-nameurl-pattern/*/url-pattern/filter-mapping…3)重启Tomcat服务,观察输出的日志,当发现启动日志中包含有“org.apache.struts2”关键字,且无异常抛出,说明struts2的装载过程正常。编写一个action验证配置正确性1)在src下新建action包:com.jsdz.action,包中新建测试action类,该类继承至ActionSupport,命名为:LoginAction,用作登陆跳转:packagecom.jsdz.action;importcom.opensymphony.xwork2.ActionSupport;publicclassLoginActionextendsActionSupport{privateStringusername;privateStringpassword;@OverridepublicStringexecute()throwsException{System.out.println(LoginActionexecuteinvoked!);if(username.equals(admin)&&password.equals(1234)){System.out.println(userok);returnSUCCESS;}else{System.out.println(userinvalid);returnINPUT;}}publicStringgetUsername(){returnusername;}publicvoidsetUsername(Stringusername){this.username=username;}publicStringgetPassword(){returnpassword;}publicvoidsetPassword(Stringpassword){this.password=password;}}2)在将LoginAction类配置到struts2的配置文件中,该文件同样可以从例程工程中拷贝过来简单修改:?xmlversion=1.0encoding=UTF-8?!DOCTYPEstrutsPUBLIC-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.3//EN=emspkgextends=struts-defaultactionname=loginclass=com.jsdz.action.LoginActionresultname=success/main.jsp/resultresultname=input/login.jsp/result/action/package/struts注意:此时的action实例还是由struts自己来维护,class取值包含完整的路径。3)新建两个JSP页面:login.jsp(登陆页面)、main.jsp(登陆成功页面,提示用户登陆成功).流程说明:用户输入用户名和密码,必须是admin/1234才给验证通过转到main.jsp页面,否则仍然返回到login.jsp页面。login.jsp%@pagelanguage=javacontentType=text/html;charset=UTF-8pageEncoding=UTF-8%%@taglibprefix=suri=/struts-tags%!DOCTYPEhtmlPUBLIC-//W3C//DTDHTML4.01Transitional//EN=Content-Typecontent=text/html;charset=UTF-8titleInserttitlehere/title/headbodys:formaction=loginnamespace=/theme=simpleusername:s:textfieldname=usernamesize=20/brpassword:s:passwordname=passwordsize=20/brs:submitlabel=submit/s:submit/s:form/body/html※注意:标红的部分容易出错,namespace都带上相同的取值,s:form的action上不带.action.main.jsp%@pagelanguage=javacontentType=text/html;charset=UTF-8pageEncoding=UTF-8%!DOCTYPEhtmlPUBLIC-//W3C//DTDHTML4.01Transitional//EN=Content-Typecontent=text/html;charset=UTF-8titleInserttitlehere/title/headbody用户:${requestScope.username},欢迎您登陆/body/html4)在浏览器中敲入进行验证.增加异常处理机制采用struts2自有的异