zoukankan      html  css  js  c++  java
  • Struts2究竟干了什么

    在javaWeb的世界中jsp+servlet构成了web层,而今天我要分享的内容就是struts2究竟干了什么。

    Struts2框架——web层

    Sping框架——业务层

    Hibernate框架——数据层

    你可以简单的这么理解,用一句很流行的话讲:没茅台!

    第一个请求总是来自浏览器的的url中,它要请求我们服务器上某个项目的首页!

    然后我们从首页上的超链接或者表单等继续发送请求,来完成用户的某项需求!

    Struts2中最重要的一个组件进而被引出,过滤器!作用:简单说过滤请求!

    Struts2中的过滤器异常强大,里面的init方法主要加载配置文件,通过配置文件信息来完成

    action类对象创建、方法调用以及后面讲的拦截器配置文件的加载。

    不明白过滤器是什么的可以查看我以前的javaweb文章,有详细介绍。

    Struts2中使用action替代了servlet,注意action跟servlet有一个重要区别:action是多实例对象!

    在Struts2中提供了一系列的获取表单数据的方法,以及封装表单数据到对象、list集合的方式!(一看就会)

    同时Struts2还提供了一系列在jsp中获取域对象内容以及Struts2专属的值栈中数据的标签!(Struts2标签需要OGNL表达式联合使用=EL表达式)

    这里引出了Struts2第二大组件值栈!

    概念:栈是一种数据结构,堆栈是java程序员常常用的,栈区的特点就是后进先出或者说先进后出!(自己尝试写一个堆栈队列的数据结构容器)

    作用:存储数据

    结构:主要分为两大部分Root和Context

      Root为List集合,默认存储一个action引用(我们主要使用它来存储数据到Jsp页面中)

      Context为Map集合,里面存储Servlet三大域对象引用以及ServletCongfig引用等

    注意:每个action都有且只有一个值栈

    Struts2另一个大组件——拦截器

    拦截器:Struts2在设计拦截器的时候,采用了Aop思想以及责任链设计模式!

    那么拦截器什么时候出生,出生后干了什么呢?

    拦截器在action对象创建后,调用方法之前,被加载,Struts2中有很多默认拦截器,这些拦截器都会被加载,但不会被调用,只有我们在配置文件中

    进行配置以后才会被调用,其实每个拦截器都是一个方法的封装,也就是一个函数!一个功能!只不过这种对action扩展功能的方式不是通过创建对象调用方法

    来实现的,而是通过修改配置文件完成——这个就是AOP思想!

    至于什么是责任链,简单说跟过滤链很相似,都采用了放行机制!

    真实项目中我们往往需要自定义拦截器,来实现功能扩展!(所以这部分还是很重要的)

    注意:拦截器只拦截action,而过滤器什么都拦截比如jsp、servlet、action、图片路径等

  • 相关阅读:
    vue 重定向
    vue 通过插槽分发内容
    vue 表单输入绑定 checkbox
    jq enter键发送
    vue footer点击变色
    vue computed和methods 计算属性和侦听器
    实时监听input输入情况
    关于Input输入框蓝色外框的操作
    鼠标悬浮指针变手
    鼠标悬浮样式
  • 原文地址:https://www.cnblogs.com/wangyinxu/p/8708238.html
Copyright © 2011-2022 走看看