访问servletAPI方式 第一种:通过ActionContext (重点及常用 都是获得原生对象) 原理 Action配置 被引入的配置文件 在页面调用取值 第二种:通过ServletActionContext 第三种:通过实现接口 也可以注入其他接口 在这里找 看源码 struts-default.xml文件 封装配置了20个拦截器,刚才配置的是servletConfig 拦截器 注册拦截器 进入源码的类ServletConfigInterceptor 核心方法 数据中心ActionCon…
时间:2018.11.21地点:中关村软件园国际会议中心…
介绍一下struts2内置帮我们封装好的处理结果方式也就是底层源码分析 这是我们的jar包里面找的位置目录 打开往下拉看到result-type节点 name那一列就是我们的type类型取值 上一篇博客在分析的时候发现就算不写也会自动转发原因在这里,default=true 选择了默认方式 接着我们如果想看看底层是如何工作的就选择class属性复制双引号的内容 接着按住ctrl+shift+T就能出现一个框 OPen Type 进去之后发现是这个,点击Attach Source---->选择第二…
方式1: 方式2: 方式3…
一.访问ServletAPI的三种方式 方式1:通过让Action类去实现感知接口. 此时项目依赖:servlet-api.jar. ServletRequestAware:感知HttpServletRequest对象: ServletResponseAware:感知HttpServletResponse对象: ServletSessionAware:感知HttpSession对象: public class ServletApiAction1 extends ActionSupport imp…
struts2官方架构 拦截器的创建 第一种方式 第二种方式 看源码AbstractInterceptor 底层已经帮我们写过这些方法了 第三种方式(推荐) 拦截器API学习 放行 前后处理 不放行,直接跳转到一个结果页面 不执行后续的拦截器以及Action,直接交给Result处理结果.进行页面跳转 拦截器配置 三个步骤:(1)注册拦截器 (2)注册拦截器栈 (3)指定默认拦截器栈 觉得难懂的可以看源码(struts-default.xml),只要按照顺序来都是一样的 随便定义一个Action…
struts2的架构图 从最上面的类开始,也就是i 我们的核心过滤器strutsPrepareAndExecuteFilter 判断当前请求是否由struts2来处理,如果是就往else走,不由它来处理就走85行 创建数据中心 actionContext的由来(把valueStack创建出来在从里面取出来Context部分) 从valueStack中查找 包括Root和Context 从valueStack中查找 包括Root和Context 回到StrutsPrepareAndExecuteF…
两者的结合原理 底层源码分析 栈原理 先进后出 我们的valuestack其实是一个接口 在实现类中有这个参数 CompoundRoot的类继承的是ArrayList,具体实现弹栈和压栈的方法具体实现原理 在OgnlValueStack实现类中分别有弹栈和压栈的方法 查看值栈中两部分的内容 (Root部分和context) 使用DEBUG标签 页面需要倒入标签库 输入地址栏回车出现一个Deug的链接,点击即可 Root部分 默认情况下,栈中放置当前访问的Action对象 Context部分 Co…
Struts2 框架学习 一.struts2是什么? (1)概念 (2)struts2使用优势 自动封装参数 参数校验 结果的处理(转发|重定向) 国际化 显示等待页面 表单的防止重复提交 (3)struts2具有更加先进的架构以及思想 (4)struts2的历史 struts2与struts1区别就是技术上没有什么关系. struts2的前身时webwork框架. 二.搭建struts2框架 1.导包 解压struts-2.3.24 (struts-2.3.24这个不是最新的应该也基本类似)…
OGNL表达式 OGNL:对象视图导航语言. ${user.addr.name} 这种写法就叫对象视图导航. OGNL不仅仅可以视图导航.支持比EL表达式更加丰富的功能. 理解图示 使用OGNL准备工作 导包(不需要额外的导包) 测试代码 fun1是通用代码 fun2 取出root中的属性 ---->直接写属性名 (默认取得是root对象中的) fun3 取出Context对象中的属性值 fun4为属性赋值 可以通过 属性名=值 "name='jerry'" 或者 #对象名.属性…