`

Struts2学习笔记day03

 
阅读更多

1.值栈:ValueStack,存储数据
     root区【栈】:Action对象中的数据,其他数据
     Context【Map结构】:
             application: #application.user=>servletContext.getAttribute("user");
             session
         request
         paramteres:#paramteres.id[0]=>request.getParamter("id");
         attr[attribute]:从属性范围由小到大依次查找
         action:Action对象

2.OGNL:对象图导航语言
    <s:property value=""/> 显示
    <s:bean var="引用" name="类的全路径">
        <s:param name="属性">值</s:param>
    </s:bean>
    迭代处理的对象都会压入Context区域,访问迭代出来的对象必须加#
    <s:iterator var="迭代出来的对象" value="集合" status="迭代状态">
       ...
    </s:iterator>
    if/else/elseif
    集合的过滤
      集合对象.{?#this.name=='值'}
      ?:符合条件的所有结果
      ^:符合条件的第一个结果
      $:符合条件的最后一个结果

3.OGNL语句自定类型转换
   Struts2.0框架不能够或者不能完整的进行自动类型转换时采用自定义类型转换
  自定义类型转换器
    1.开发一个类,extends StrutsTypeConverter
    2.配置文件,声明自定义类型转换器
        局部的类型转换器:
       配置文件的名称: actionName-conversion.properties
       配置文件的位置: 和Action放在同一个目录结构当中
       配置文件的内容: Action中需要类型转换器的属性=自定义类型转换器的全路径
        全局的类型转换器
           配置文件的名称: xwork-conversion.properties
           配置文件的位置: 在src目录下面
           配置文件的内容: 需要进行类型转换的类型=自定义类型转换器的全路径
        局部类型转换:只针对某一个Action的某一个属性进行转换
    全局类型转换:对所有Action对象中该类型的属性进行转换

4.Struts2.0国际化
    B/S结构中为网页提供多国语言的支持
       1.B/S架构为每一个语言提供一套页面
          缺点:修改页面风格,每一套都必须修改
       2.B/S国际化是Struts2.0的半成品
          只要提供一套页面,不同国家访问时就能看到相应的文字
      1.知道用户的所在国家
         浏览器使用国别码来识别地区
      2.所在国家文字的提供,在一个页面中可以显示中文或者英文
         e.properties{username password}
         c.properties{用户名  密码}
          login.jsp
      占位符占位<input type="text" name="username"/>

   Struts2.0国际化开发过程
      1.提供文字的配置文件(资源文件)
         1)位置:src目录下面
     2)命名:xxx.properties
        appRes_zh_CN.properties(中文的资源文件)
          注意:在处理非拉丁语系的时候,要先转换成unicode编码
           使用 native2ascii命令
          native2ascii -encoding gbk 源文件名 目标文件名
          native2ascii -encoding gbk appRes.properties appRes_zh_US.properties
        appRes_en_US.properties(英文的资源文件)
      2.在struts.xml文件中进行配置
        <constant name="struts.custom.i18n.resources" value="appRes"></constant>
      3.在jsp页面中使用占位符站位
        使用Struts2.0提供的<s:text name="资源文件的key"/>进行占位

5.Struts2.0提供的数据格式校验
   js校验:存在被用户篡改的风险
   Struts2.0提供的校验步骤
     1.获得数据:使用Action的属性进行封装
     2.对获得的数据进行判断(方法)
        Struts2.0的ActionSupport提供了validate方法进行数据格式校验
     3.在Struts.xml中配置异常跳转
        在Struts2.0体系中为异常以及错误定义了固定的result
           name=input     //
    显示错误信息:<s:fielderror></s:fielderror>
                   <s:fielderror><s:param>key</s:param></s:fielderror>

  数据格式校验的方法
           js                    Struts2.0
优点: 客户端,效率高            安全
缺点: 容易被篡改                访问服务端,浪费资源
实际开发中:js+Struts2.0


6.Struts2.0拦截
   拦截器:为访问Action的请求增加额外功能
           保证程序的继续执行

7.如何开发一个拦截器
    1.开发一个类 implements Interceptor
    2.struts.xml配置文件
      1    <!-- 声明拦截器 -->
     <interceptors>
        <interceptor name="MyInterceptor" class="zx.struts2.day3.interceptor.MyInterceptor"></interceptor>
     </interceptors>
         自定义了拦截器,Struts2.0提供的默认拦截器失效

      2.在需要调用拦截器的action中配置
         在Action中引用拦截器的顺序决定了拦截器的执行顺序
     如果有多个拦截器是成组调用时,可以设置拦截器栈

分享到:
评论

相关推荐

    Struts2_day03笔记

    学习Struts2第三天笔记

    Struts2_day04笔记

    学习Struts2第四天笔记

    Struts2_day01笔记

    学习Struts2第一天的笔记

    Struts2_day02笔记

    学习Struts2第二天笔记

    黑马程序员_struts2框架开发2016版讲义和笔记资料_day01_day02_day03_day04

    Day03可能涵盖Struts2的拦截器机制,这是Struts2的一大特色,可以实现如日志记录、权限验证、性能优化等多种功能。同时,可能会讲解如何自定义拦截器,以及在实际项目中如何组合使用不同的拦截器链。 Day04可能涉及...

    struts2框架2016版资料day01

    通过传智播客的struts2框架2016版day01课程,你可以系统地掌握Struts2的基础知识,为后续的深入学习和项目开发打下坚实的基础。同时,结合笔记和思路图,可以更好地理解和吸收所学内容,提升学习效率。在实际编程中...

    黑马程序员_struts2框架2016版视频_struts2_day01笔记

    ### Struts2框架概述 #### 1.1 什么是Struts2框架? **Struts2框架** 是一个基于MVC(Model-View-Controller)架构的开源Java Web应用程序框架,它简化了Java Web应用程序的开发过程。Struts2提供了一种简洁而强大...

    struts and hibernate学习笔记

    6. **实例分析**:可能包含多个日志记录(day01至day03)的项目实践,逐步深入理解Struts2和Hibernate的使用。 通过这些文档,你可以系统地学习到Struts2和Hibernate的基本概念、配置、使用方法以及在实际项目中的...

    传智168期JavaEE struts2杜宏 day 29~day31笔记.pdf

    标题中的“传智168期JavaEE struts2杜宏 day 29~day31笔记”暗示了文档是一系列关于JavaEE技术栈中的Struts2框架的课程笔记,由杜宏教授,并且特别强调了是从29天到31天的学习内容。JavaEE(Java Platform, ...

    超详细Struts2教程及源代码

    教程分为6个部分,从基础到深入,分别是day01、day02、day03、day04、day05和day06,这表明教程按照学习路径进行组织,帮助你在一周内掌握Struts2的关键知识。 首先,day01可能涵盖了Struts2的基本概念,包括MVC...

    黑马程序员struts2框架2016版资料(笔记+源码+思路图)

    2016年版本的Struts2资料集合了学习笔记、源代码和思路图,旨在帮助开发者深入理解并熟练运用这个框架。以下是关于Struts2框架的一些核心知识点: 1. **简介**: Struts2是Struts1的升级版,解决了Struts1中的一些...

    Java高级应用和Struts的入门笔记

    - **反射**:`DAY03【反射基础】.docx`涵盖了反射机制,它使得程序在运行时能够获取类的信息(如类名、属性、方法)并动态调用。反射在创建动态代理、序列化、框架设计等方面有广泛应用。 - **注解(Annotation)...

    崔希凡javaweb笔记day24-day28

    崔希凡老师的JavaWeb笔记涵盖了从day24到day28的内容,这五天的教程主要涉及了JavaWeb开发中的核心技术和实践应用。在JavaWeb领域,这些天的学习通常是项目开发周期中的关键阶段,涵盖了从数据库交互、Servlet编程、...

    传智播客2016版hibernate+struts2+Spring框架资料课件+笔记

    《传智播客2016版hibernate+struts2+Spring框架学习资源详解》 在IT行业中,框架的使用是开发高效、稳定应用的关键。本资源包聚焦于三大主流Java Web框架:Hibernate、Struts2和Spring,它们在2016年时仍然是开发者...

    超值个人java学习笔记

    在"day03 拾遗"中,特别提到了小数的取模运算。需要注意的是,Java中的小数取模与整数有所不同,可能会导致非预期的结果。例如,12.12%2.2的结果是1.1199,而8.8%2的结果是0。这是因为浮点数的取模运算并不总是精确...

    sturts2课件第三天

    在提供的压缩包文件中,"day03.txt"可能是课程笔记或讲解大纲,"struts2_04"和"struts2_02"可能包含更深入的示例代码或讲解资料,可以帮助我们进一步理解和实践Struts2的相关概念和技术。通过深入研究这些资源,...

    黑马程序员_javaWEB讲义和笔记资料_day08

    在"黑马程序员_javaWEB讲义和笔记资料_day08"中,我们可以预见到这一天的学习内容将深入到Java Web开发的核心概念和技术。"传智播客"作为知名的技术教育机构,其课程通常涵盖全面且深入的IT知识,因此这些讲义和笔记...

    java\CoreJava笔记\CoreJAVA_day01

    - 主流框架:如Struts、Spring、Hibernate(SSH),以及Ajax,掌握其工作原理和应用。 - UML建模:理解统一建模语言,用于系统设计。 - 设计模式:掌握常见的设计模式,如单例、工厂、观察者等,提升代码质量和可...

    整理后java开发全套达内学习笔记(含练习)

    short 16bit, -2^15~2^15-1 (2^15=32768) int 32bit, -2^31~2^31-1 (2147483648,20亿,10位有效数字) long 64bit, -2^63~2^63-1 (900亿亿,20位有效数字) float 32bit, 9位有效数字,含小数(四舍五入)(小数点算...

    Spring框架

    以上内容只是根据文件名进行的推测,实际的学习笔记和源码可能会提供更详细的信息,帮助读者深入了解Spring框架的各个方面。通过这些资料,开发者可以逐步掌握Spring的基本概念,进而利用Spring进行高效的企业级应用...

Global site tag (gtag.js) - Google Analytics