您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 第2章项目开发入门JavaEE框架与MVC模式
2.1Struts2让网页与控制分离2.22.3Hibernate把数据持久化MVC框架开发模式2.1.1Struts2框架1.Model2模式Model2模式的工作原理如图2.1所示,其工作流程是按如下5个步骤进行的:①Servlet接收浏览器发出的请求。②Servlet根据不同的请求调用相应的JavaBean。③JavaBean按自己的业务逻辑操作数据库。④Servlet将结果传递给JSP视图。⑤JSP将后台处理的结果呈现给浏览器。2.ServletFilter技术图2.2中显示了正常请求、加过滤器请求和加过滤器链请求的处理过程。过滤器可以对Request对象和Response对象进行处理。(1)init(FilterConfig)。这是过滤器的初始化方法,Servlet容器创建过滤器实例后将调用这个方法。在这个方法中可以通过FilterConfig参数读取web.xml文件中过滤器的初始化参数。(2)doFilter(ServletRequest,ServletResponse,FilterChain)。这个方法完成实际的过滤操作,当用户请求与过滤器关联的URL时,Servlet容器将先调用过滤器的doFilter方法,在返回响应之前也会调用此方法。FilterChain参数用于访问过滤器链上的下一个过滤器。(3)destroy()。Servlet容器在销毁过滤器实例前调用该方法,这个方法可以释放过滤器占用的资源。过滤器编写完成后,要在web.xml进行配置,格式如下:filterfilter-name过滤器名称/filter-namefilter-class过滤器对应的类/filter-class!--初始化参数--init-paramparam-name参数名称/param-nameparam-value参数值/param-value/init-param/filter下面举例说明在web.xml中配置过滤器与URL关联的方法。(1)与一个URL资源关联:filter-mappingfilter-name过滤器名/filterurl-patternxxx.jsp/url.pattern/filter-mapping(2)与一个URL目录下的所有资源关联:filter-mappingfilter-name过滤器名/filter-nameurl-pattern/*/url-pattern/filter-mapping(3)与一个Servlet关联:filter-mappingfilter-name过滤器名/filter-nameServlet-nameServlet名称/Servlet-name/filter-mapping3.Struts2工作机制Struts2的设计思想:用ServletFilter技术将ServletAPI隐藏于框架之内,一个请求在Struts2框架内被处理,大致分为以下几个步骤,如图2.3所示。1.加载Struts2包登录,下载Struts2完整版,本书使用的是Struts2.3.4.1。将下载的文件struts-2.3.4.1-all.zip解压缩,得到文件夹包含的目录结构如图2.4所示开发Struts2程序只需用到lib下的9个jar包,包括:(1)传统Struts2的5个基本类库。struts2-core-2.3.4.1.jarxwork-core-2.3.4.1.jarognl-3.0.5.jarcommons-logging-1.1.1.jarfreemarker-2.3.19.jar(2)附加的4个库。commons-io-2.0.1.jarcommons-lang3-3.1.jarjavassist-3.11.0.GA.jarcommons-fileupload-1.2.2.jar(3)数据库驱动。mysql-connector-java-5.1.22-bin.jar在项目目录树中,右击项目名,选择菜单【BuildPath】→【ConfigureBuildPath…】,出现如图2.5所示的窗口。2.配置Struts2修改web.xml文件:?xmlversion=1.0encoding=UTF-8?web-appversion=3.0xmlns=:xsi=:schemaLocation=://java.sun.com/xml/ns/javaee/web-app_3_0.xsdfilterfilter-namestruts2/filter-namefilter-classorg.apache.struts2.dispatcher.FilterDispatcher/filter-class/filterfilter-mappingfilter-namestruts2/filter-nameurl-pattern/*/url-pattern/filter-mappingdisplay-name/display-namewelcome-file-listwelcome-filelogin.jsp/welcome-file/welcome-file-list/web-app3.创建JavaBean在项目src文件夹下建立包org.easybooks.bookstore.jdbc,在包里创建MySQLConnBean类,其代码与“入门实践一”的程序完全一样。4.创建login.jsp在项目WebRoot下创建登录首页的JSP文件login.jsp,代码如下:%@pagelanguage=javapageEncoding=utf-8%htmlheadtitle登录页面/title/headbodyformaction=login.actionmethod=post用户登录br姓名:inputtype=textname=username/br密码:inputtype=textname=password/brinputtype=submitvalue=登录//form/body/html5.实现控制器Action在项目src文件夹下建立包org.easybooks.bookstore.action,在包里创建LoginAction类,代码所示。6.配置Action在编写好Action(控制器)的代码之后,还需要进行配置才能让Struts2识别这个Action,在src下创建文件struts.xml(注意文件位置和大小写),输入如下的配置代码:!DOCTYPEstrutsPUBLIC-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN=strutsextends=struts-defaultactionname=loginclass=org.easybooks.bookstore.action.LoginActionresultname=success/welcome.jsp/resultresultname=error/error.jsp/result/action/package/struts7.创建其余的JSP文件在项目WebRoot下创建两个JSP文件。(1)welcome.jsp的代码如下:%@pagelanguage=javapageEncoding=gb2312%%@taglibprefix=suri=/struts-tags%htmlheadtitle成功页面/title/headbodys:propertyvalue=username/,您好!欢迎光临叮当书店。/body/html(2)error.jsp的代码与“入门实践一”的相同,在此省略。8.部署运行部署项目、启动Tomcat服务器,在浏览器中输入并回车,运行效果与之前的程序完全相同。1.Struts2:配置Struts2的配置可以分成单个单独的文件,如图2.6所示。web.xmlweb.xml并不是Struts2框架特有的文件,它作为部署描述文件,是所有JavaWeb应用程序都需要的核心配置文件。struts.properties文件Struts2提供了很多可配置的属性,通过这些属性的设置,可以改变框架的行为,从而满足不同Web应用的需求。这些属性可以在struts.properties文件中进行设置,struts.properties是标准的Java属性文件格式,“#”号作为注释符号,文件内容由键(key)-值(value)对组成。struts.xml文件struts.xml是Struts2框架的核心配置文件,主要用于配置和管理开发人员编写的action。struts.xml文件通常也放在Web应用程序的src目录下,该目录下的struts.xml将被Struts2框架自动加载。struts.xml文件是一个XML文件,开头是XML的文档类型定义(DTD)。DTD提供了XML文件中各元素应使用结构的信息,而这些最终会被XML解析器或编辑器使用。!DOCTYPEstrutsPUBLIC-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN=strutsextends=struts-defaultactionname=loginclass=org.easybooks.bookstore.action.LoginActionresultname=success/welcome.jsp/resultresultname=error/error.jsp/result/action/package/struts2.Struts2:Action(1)Action的定义。Struts2中的Action只需要在一个普通的类中定义一个方法,如:publicclassXXXAction{publicStringmethod(){returnreturnValue;}}例如,定义一个HelloAction,访问该Action的时候在控制台打印“你好”:publicclassHelloAction{publicStringhello(){System.out.println(你好);returnnull;}}在struts.xml配置文件中,将刚才创建的Action注册到这里:actionname=helloActionclass=HelloActionmethod=hello/action(2)通过Action获取请求参数。以下是一个Action获取请求参数的例子。本示例用于演示用户登录的过程。用户输入用户名和密码,如果分别为admin和admin,则显示登录成功的信息,否则显示登录失败的信息。login.jsp的代码如下:…formaction=login.actionmethod=post
本文标题:第2章项目开发入门JavaEE框架与MVC模式
链接地址:https://www.777doc.com/doc-781581 .html