Struts2框架(4)

1.Struts2的拦截器

(1)概念

(2)Struts2的执行流程

(3)拦截器的编写流程

2.CRM的权限拦截器

3.Struts2的标签库

(1)通用标签库

(2)判断标签库

(3)其他常用标签

4.UI标签库(方便数据回显)

1.Struts2的拦截器

(1)概念

  • Interceptor:拦截器,起到拦截Action的作用。
    • Filter:过滤器,过滤从客户端向服务器发送的请求。
    • Interceptor:拦截器,拦截是客户端对Action的访问。更细粒度化的拦截。(拦截Action中的具体的方法)。
  • Struts2框架核心的功能都是依赖拦截器实现。

(2)Struts2的执行流程(面试)

客户端向服务器发送一个Action的请求,执行核心过滤器(doFilter)方法。在这个方法中,调用executeAction()方法,在这个方法内部调用dispatcher.serviceAction();在这个方法内部创建一个Action代理,最终执行的是Action代理中的execute(),在代理中执行的execute方法中调用ActionInvocation的invoke方法。在这个方法内部递归执行一组拦截器(完成部分功能),如果没有下一个拦截器,就会执行目标Action,根据Action的返回的结果进行页面跳转。

 

(3)拦截器的编写流程

1)编写拦截器类

  • 编写一个类实现Interceptor接口或者继承AbstractInterceptor类。

  • 定义拦截器进行配置

这里的defaultStack表示的是默认的拦截器栈,表示的是引入默认的拦截器

  • 定义一个拦截器栈的方式

2.CRM的权限拦截器

案例:实现用户登录的功能

(1)创建表和实体

创建表

CREATE TABLE `sys_user` (
  `user_id` bigint(32) NOT NULL AUTO_INCREMENT COMMENT '用户id',
  `user_code` varchar(32) NOT NULL COMMENT '用户账号',
  `user_name` varchar(64) NOT NULL COMMENT '用户名称',
  `user_password` varchar(32) NOT NULL COMMENT '用户密码',
  `user_state` char(1) NOT NULL COMMENT '1:正常,0:暂停',
  PRIMARY KEY (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

创建实体

(2)从前端jsp见面提交数据到Action

(3)Action------Service------DAO

   编写Service

编写DAO

(4)根据结果进行页面跳转

第二种方式是可以使用权限拦截器进行登录功能的实现

编写权限拦截器

配置拦截器

ps:注意这里的话拦截器必须书写在action前面,如果写在action后面的话就会报错

3.Struts2的标签库

(1)通用标签库

(2)判断标签库

scope表示的是保存在哪个域中

  • <s:iterator>

status表示的是当前的循环的状态

(3)其他常用标签

  • <s:property/>
  • <s:debug/>
  • <s:date />----在页面上进行日期格式化。

4.UI标签库(方便数据回显)

传统表单

UI标签表单

注意这里的密码这行,如果没有加上showPassword的话是不会回显的

UI表单的优势:

1.自动将表单排好顺序

2.当我们有什么错误的时候会自动回显我们之前写的数据,传统表单的话是会把我们之前写的所有数据全部清空

总结:

猜你喜欢

转载自blog.csdn.net/WinnerBear/article/details/88384987