`
heimeiyingwang
  • 浏览: 95345 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Struts知识辅导(3)

阅读更多

 


Struts的Token(令牌)机制

Struts使用Token机制,来防止恶意的破坏和重复提交问题,也就是点击后退后在再提交,这是Struts无法发现的,在form中生成一个token码,在session中也报村有一个同样的token码,当表单提交后,判断两个token码向等后,就会改变session中的这个token码,当然在用回退后,form的token码是不会变的,在提交,还会判断两个token码是否相等,如果不等就会抛出异常,证明这是过时的垃圾数据。

 

void saveToken(HttpServletRequest request)方法用于将在客户端生成的token码,保存在session中。
void resetToken(HttpServletRequest request)方法用于重置token码,生成新的token码。
boolean isTokenValid(HttpServletRequest request,boolean reset)判断token码是否相等,并且是否重置token码。reset是设定是否重置token码,一般设为true。

 

设置token码


 public ActionForward toadd(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)throws Exception
    {
        saveToken(request);
        return mapping.findForward("next");
    }

 

验证token码


 public ActionForward add(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)throws Exception
    {
        if(isTokenValid(request, true)){
            request.setAttribute("message", "contratulation!");
        } else {
            request.setAttribute("message", "sorry");
        }
        return mapping.findForward("next");
    }


Struts的异常处理

Struts只处理action的异常,
配置struts的异常处理
全局的异常处理

 

<global-exceptions>
   <exception key="error" path="xxx/xxx" type="xxx.xxx.Xxxx">
</global-exceptions>

<action path="xxx/xxx" type="xxx.xxx.Xxxx">
  ....
  <exception key="xxx" path="xxx/xxx" type="xxx.xxx.Xxxx">
</action>

 

在exception标签中的key,也就是在出现异常时会封装在Acti&#111;nErrors中,也就是可以在页面中使用。


Acti&#111;nError(String key, Object value0),可以通过在构造Acti&#111;nError时,指定不同的key值来对异常进行分类,并且在html:error标签的

自己构造Acti&#111;nErrors并使用下面的方法发送

void saveErrors(HttpServletRequest request,Acti&#111;nErrors errors)这个方法用以把封装了异常的Acti&#111;nErrors的key存储到request中。  

 

Struts动态Form

 

DynaActionForm,动态的ActionForm,动态的form不需要去写特定的ActionForm类,只需要在配置文件中配置好form中的属性名和属性类型。以,Struts会自动的封装成动态的Form。

 

<form-bean name="xxx" type="org.apache.struts.action.DynaActionForm">
   <from-property name="xxx" type="xxx.xxx.xxx">
   <from-property name="xxx" type="xxx.xxx.xxx">
     ...
     ...
</form-bean>


动态的ActionForm的使用上和普通的ActionForm相同。


在Struts中的Form要是粗粒度的,不要写太多的Form,要根据情况确定Form的多少。

 

Struts的动态校验

 

Struts可以通过继承DynaActionForm,并覆盖validate()方法来打倒校验的目的。也可以通过配置校验规则来进行动态Form的校验实质上就是翻译成javasctipt代码。
使用校验规则来进行动态校验时需要写validation.xml,validator-rules.xml


还需要对struts-config.xml进行配置

 

validation.xml

<form-validation>
  <formset>
    <form name="/token/add">
      <field property="name" depends="required,minlength, maxlength">
        <arg0 key="token.name" />
        <arg1 name="minlength" key="${var:minlength}" resource="false"/>
        <arg1 name="maxlength" key="${var:maxlength}" resource="false"/>
        <var>
          <var-name>minlength</var-name>
          <var-value>5</var-value>
        </var>
        <var>
          <var-name>maxlength</var-name>
          <var-value>8</var-value>
        </var>
      </field>
    </form>
  </formset>
</form-validation>

struts-config.xml

<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
    <set-property
        property="pathnames"
        value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
  </plug-in>

分享到:
评论

相关推荐

    基于springboot的线上辅导班系统源码数据库.doc

    知识点3:Java 语言 * Java 是一种面向对象的编程语言,能够在多种平台上运行。 * Java 是一种静态类型语言,具有强类型检查和垃圾回收机制。 * Java 的主要特点是平台独立、对象oriented 和大型商业应用友好。 ...

    博客系统(struts+hibernate+spring).zip

    这个标签表明这个项目可能是一个学生在毕业设计阶段完成的作品,旨在综合运用所学的Java Web开发知识,提升实际项目开发能力。通常,这样的项目会涵盖基本的CRUD(创建、读取、更新、删除)操作,用户注册与登录,...

    疯狂Java讲义 java 辅导~~

    - 国内知名的高端IT技术作家,出版过多本技术书籍,如《Spring2.0宝典》、《基于J2EE的Ajax宝典》、《轻量级J2EE企业应用实战》、《Struts2权威指南》、《RubyOnRails敏捷开发最佳实践》等。 ### 知识点二:书籍...

    基于java的敬老院管理系统(项目报告+答辩PPT+源代码+数据库+截图+辅导视频).zip

    3. **数据库管理**:项目中可能使用了MySQL或Oracle等关系型数据库存储敬老院的数据,如老人信息、员工资料、费用记录等。SQL语言用于数据的增删改查,数据库设计时需考虑数据的一致性、完整性和安全性。 4. **JDBC...

    基于ssh的婴幼儿产品销售系统(项目报告+答辩PPT+源代码+数据库+截图+辅导视频).zip

    《基于SSH的婴幼儿产品销售系统》是一个典型的Java毕业设计项目,它涵盖了软件工程中的多个重要知识点,包括系统架构设计、数据库管理、Web开发等。在这个项目中,SSH框架被广泛运用,SSH指的是Spring、Struts和...

    程序员200G资料大放送(内含百度云链接) 违规请告知删除

    3. **JavaWeb阶段** - **JavaScript DOM编程视频教程**:JavaScript是前端开发的核心语言之一,DOM编程是其中的重要组成部分。 - **jQuery视频教程**:jQuery是一种流行的JavaScript库,简化了HTML文档遍历、事件...

    基于java的健身房管理系统(源代码+数据库+部署文档+辅导视频).zip

    下面将详细介绍这个系统的相关知识点。 1. **Java编程语言**: Java是这个系统的核心开发语言,它是一种面向对象的、跨平台的编程语言,具有高度的可移植性和安全性。在这个项目中,Java被用于构建后端逻辑,处理...

    基于java的记账系统设计与实现(源代码+数据库+部署文档+辅导视频).zip

    该资源是一个完整的基于Java开发的记账系统项目,包含了源代码、数据库设计、部署文档以及辅导视频,非常适合学习Java Web开发或对财务管理系统感兴趣的开发者。下面将分别介绍这些部分的关键知识点。 1. **Java...

    JAVA_JSP_strust2_sql server企业合同管理系统(源码+数据库sql+论文+视频齐全)【JAVA】.zip

    该资源是一个基于JAVA_JSP、Struts2框架和SQL Server数据库的企业合同管理系统,包含了完整的源码、数据库SQL脚本、相关论文以及辅导视频,对于学习和理解企业级应用开发具有很高的参考价值。以下将详细阐述其中涉及...

    第二次小班辅导提纲.txt

    然而,由于提供的【部分内容】较为模糊,难以直接理解其具体含义,因此,这里将基于标题、描述以及标签中透露的信息进行展开,详细解释Java Web开发中与OOP相关的知识点。 ### Java Web与面向对象编程 #### 1. ...

    Java Web开发技术的教学方法研究.pdf

    同时,定期进行测试评估,以便及时发现学生的学习难点,提供个性化的辅导和支持。 总的来说,Java Web开发技术的教学需注重实践与理论相结合,以功能为主线,案例为载体,通过生动的比喻辅助理解,结合多元化的教学...

    基于Java Web的高校考试排座系统.pdf

    以下是本文阐述的知识点: 1. 系统概述 系统被设计用于高效处理高校考试座位的安排工作,通过自动化的流程替代了以往耗时耗力的手工排座方式。在传统排座过程中,教务人员需要结合班级、课程和教室使用情况等信息,...

    Java毕业设计系列(七)固定资产管理系统

    此外,项目辅导视频和论文将深入讲解这些技术的应用和设计思路,帮助学习者理解如何将理论知识应用于实际项目。整体而言,"Java毕业设计系列(七)固定资产管理系统"为学生提供了一个全面了解Java Web开发的实践平台...

    Tomcat 与Java web开发技术详解(孙卫琴)

    主要内容包括:Tomcat和Java Web开发的基础知识、Java Web开发的高级技术、在Java Web应用中运用第三方提供的实用软件(如Struts、Velocity和Log4J)的方法,以及Tomcat的各种高级功能。 书中内容注重理论与实践相...

    Java毕业设计系列(二)商品供应管理系统

    3. **Struts 2 (SSH中的S)**:Struts 2是MVC(模型-视图-控制器)架构的一个框架,它简化了Java EE应用程序的开发。通过使用Struts 2,开发者可以更好地组织代码,分离业务逻辑和视图层,提高代码的可维护性和可扩展...

    Tomcat与Java Web开发技术详解(第2版).part3.rar

    主要内容包括:tomcat和java web开发的基础知识、java web开发的高级技术、在java web应用中运用第三方提供的实用软件(如struts、velocity和log4j)的方法,以及tomcat的各种高级功能。  书中内容注重理论与实践相...

    webservice Axis2教程

    Axis2是目前比较流行的WebService... 本课程通过一套完备的WebService电子书教程+20多讲教学视频+ QQ群中老师辅导的教学服务方式的教学方式, 手把手辅导学员掌握Axis2的核心技术,并一步步带领学员完成这三个项目。

Global site tag (gtag.js) - Google Analytics