Apache Struts 2是一个用于开发Java EE web应用程序的开源web应用程序架构。它利用并扩展了Java Servlet API,鼓励开发人员采用MVC架构。
源于Apache Struts的WebWork框架旨在提供相对于Struts框架的增强和改进,同时保留类似Struts框架的结构。2005年12月,WebWork宣布WebWork 2.2合并了以Apache Struts 2为名的Struts。
Struts1设计的第一个目标是将MVC模式应用到web编程中。在过去的10年里,Struts在更好的网络应用方面的工作值得肯定。在某些方面,Struts社区注意到了这个框架的局限性,所以这个活跃的社区重新理解了MVC的运行模式,同时引入了一些新的架构设计理念,新的Struts2框架结构更加清晰,使用起来更加灵活方便。
这种新的结构包括应用逻辑的横截面拦截器、以XML形式减少和移除配置文件的基于注释的配置、强大的表达式语言以及支持可更改和可重用UI组件的基于微MVC的标记库。Struts2有两个技术优势。首先,所有Struts2应用程序都基于客户机/服务器HTTP交换协议。Java Servlet API揭示了Java Servlet只是Java API的一个小子集,这样我们就可以在业务逻辑部分使用强大的Java语言进行编程。Struts 2提供了一个清晰的MVC实现,其中包含了很多处理所有请求的关键组件,比如拦截器、OGNL表达式语言和堆栈。
Idea builds struts2项目:
创建strus2项目(注意不要检查下载,最新的struts核心包可能会导致一系列错误)
去struts官方网站下载项目所需的包。
下载解压缩的文件,并将lib文件夹中的所有包导入到项目中。
结构如下:
创建示例操作
配置struts.xml文件有三种方法,但通配符是最常用的方法。
处理返回值对应于视图。
注意web.xml struts2.5版本2.5中包的路径略有不同。
用tomcat运行这个例子,如下所示:
在实际的开发过程中,如果所有的动作都写在一个配置文件中,这个文件会非常臃肿,所以我们需要使用多个配置文件。
指定多个配置文件的示例:
将我们刚刚编写的struts.xml配置信息移动到一个新的test.xml文件中,然后将test.xml配置文件引入struts.xml文件中。
>
我们也可以统一配置文件的编码格式为UTF-8,避免以后出错
我们也可以采用默认的action 防止404错误不友好体验
当用户输入错误的url
关于修改请求地址的后缀示例:
修改后缀为html
action接收参数的示例:创建一个登陆界面
创建一个接收参数的action
注意接收参数的命名与前端名称的一致性
配置struts信息
测试成功:
但是这样写,当参数过多时就会不利于维护,我们需要采用一种面向对象得到方式来接收参数
创建一个user实体类
使用user对象接收参数
更改前端参数
但是当传入参数改变的时候,我们需要改变接收实体的参数,所以也不建议使用。
我们使用实现接口的方式接收参数,这种方式需要实例化对象
关于使用集合接收参数
关于处理结果的类型
除了input比较特殊之外,其他的几种只是一种代码规范。
input来限制接收参数的类型
定义age的类型为int
修改配置文件信息,参数正确可以进入首页,否则继续停留在登陆界面
测试成功:
自定义拦截器示例:
新建拦截器,继承AbstractInterceptor类,重写intercept方法
在struts.xml中注册拦截器
在指定的action中调用拦截器
创建测试action
创建测试义页面
测试如下:
内置拦截器:
需要注意的是当我们为某个action指定拦截器后,则默认的拦截器不会被引用,所以需要手动引用默认拦截器
struts2权限控制示例:
WEB-INF是无法直接通过url访问的
相应的逻辑处理
视图的转发
自定义权限拦截器
配置信息
这样就完成了权限的控制
我好想你。