Struts2学习总结(一)struts2简介

1.Struts2的引入

 JSP中请求的处理使用Servlet,由请求URL以及request域中引入参数,在Servlet中获取请求参数,手动访问POJO类(业务逻辑层)的某些方法,然后根据不同的返回值,决定重定向,请求转发决定要跳转的页面

   而除去Servlet,Filter也可以进行请求的处理,这其中一个请求URL对应一个POJO类,一个POJO类方法的返回值对应一个跳转页面,使用多个Filter成链式处理请求自然可以,但每一个Filter进行处理并放行并不好,此时考虑-----这样一对一的关系正好可以只利用一个Filter,而Filter内部维护一个Map,key为请求的url,value为被请求访问的POJO类的全限定类名,底层通过全限定类名Class.forName().newInstance()获取实例对象,进而获取对应的方法.invoke执行,而对于返回值,key为返回值,value为跳转的页面,这样便实现一个Filter处理多个页面的处理

但其中由来的问题是-->程序需要增加新的请求,增加新的返回值与跳转页,就需要再向Map增加键值对,此时源码进行变化-->就需要重新编译程序-->此时,便用到了配置文件

在配置文件中注册相关请求对应的url,跳转页面等--->struts2就实现了这一功能


配置文件.xml/.properties的区别

xml文件: 文件较大,由各个标签组成,标签语义性强,可读性强,所以经常被使用于核心配置文件

properties文件:文件体积小,但语义性低,只是适用于常用的简单配置,例如数据源连接四要素


2.Struts2环境的配置

   由上引入可知,Struts依赖于核心的Filter,由此Filter成为了Struts的启动项

  0)导入依赖的jar包

    apps中struts-blank.war(由于war和zip的解压逻辑相同),修改后缀名为.zip,解压得到内部内容,其中lib中13个jar包

  1)web.xml中配置Struts2的启动项 filter,filtermapping为 /*

    其中Filter核心类的全限定类名可根据ctrl+shift+T搜索--->可根据下载的struts2的jar包中app->struts-blank中web.xml为参考(复制粘贴)

  2)src下配置struts.xml(xml名必须是struts.xml)

    文件头在struts-core核心包中查找对应版本的dtd,文件头在其中的注释中

<!--
   Struts configuration DTD.
   Use the following DOCTYPE

   <!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">
-->

  DOCTYPE后的单词便是此XML的根标签

类似框架jar包核心,公共的部分-->在core核心包中根部或者基础中


struts2中的基本jar包作用

猜你喜欢

转载自www.cnblogs.com/autism-dong/p/12176877.html