文档章节

Struts2的学习笔记(3)

larch
 larch
发布于 2012/04/13 10:33
字数 860
阅读 220
收藏 1

       很久没发表了,不代表我没在学习struts2啊,对吧?好,下面还是把我的一些笔记供出来给大家参考指正吧? 

1Struts2应用的分层体系架构:

    

 

2Struts2的模型驱动(Model Driven),之前所学的称作属性驱动(PropertyDriven)。它们在使用方式上差不多的。

 

3、属性驱动与模型驱动的比较

   1)属性驱动灵活,准确;模型驱动不灵活,因为很多时候,页面所提交过来的参数并不属于模型中的属性,也就是说页面所提交过来的参数与模型中的属性并不一致,这是很常见的情况。

   2)模型驱动更加符合面向对象的编程风格,使得我们获得的是对象而不是一个个离散的值。

  小结:推荐使用属性驱动编写Action

 

4、服务器端代码的单元测试有两种模式:

       1) 容器内测试(Jetty

2Mock测试(模拟测试:继承httpServletRequesthttpSessionHttpServletResponseServlet API)有Jmock ,easyMock测试框架,是对于Web测试的,即服务器端JAVA代码。

 

5Preparable接口的作用是让Action完成一些初始化工作,这些初始化工作是放在Preparable接口的prepare方法中完成的,该方法会在execute方法执行之前得到调用。

 

6、采取请求转发的方式完成表单内容的添加会造成内容的重复插入。

   

7、采取重定向的方式添加数据不会导致数据的重复插入。

                                                

 

8、防止表单重复提交的两种方式.

   1)通过重定向

   2)通过Session TokenSession 令牌):当客户端请求页面时,服务器会通过token标签生成一个随机数,并且将该随机数防置到session当中,然后将该随机数发向客户端;如果客户第一次提交,那么会将该随机数发往服务器端,服务器会接收到该随机数并且与session中所保存的随机数进行比较,这时两者的值是相同的,服务器认为是第一次提交,并且将更新服务器端的这个随机数值;如果此时再次重复提交,那么客户端发向服务器端的随机数还是之前的那个,而服务器端的随机数则已经发生了变化,两者不同,服务器就认为这是重复提交,进而转向invalid.token所指向的结果页面。

 

9token拦截器用于保证表单只被提交一次。例如:TokenAction中有一个NAMES属性,用来存储提交过的所有的数据。重复提交数据时,如果能提交进来,NAMES将会积累重复的数据,以此来判断数据是否被重复提交。注意,NAME属性在自动生成隔get函数时是小写的,要动手改回大写,不然会出错。

 

10、拦截器(interceptor):拦截器是struts2的核心,struts2的众多功能都是通过拦截器来实现的。

 

11、一旦定义了自己的拦截器,将其配置到action上后,我们需要在action的最后加上默认的拦截器栈:defaultStack

 

12、拦截器的配置

1)编写实现interceptor接口的类

2)在struts.xml文件中定义拦截器

3)在action中使用拦截器

 

© 著作权归作者所有

larch
粉丝 2
博文 16
码字总数 25167
作品 0
广州
私信 提问
day25_Struts2学习笔记_01

一、框架概述   把重复性的繁琐的代码起来。使程序员在编码中把更多的精力放业务需求的和上面。   :封装了很多细节,程序员在使用的时候会非常简单。 三大框架:Struts2、Spring、Hiberna...

黑泽明军
2018/06/23
0
0
struts学习笔记(1)基本配置

Struts2 学习笔记 吃透最简单的Helloword实例之后 ,接着再一一去研究 请求参数的接收与发送,参数的封闭,校验,result,struts2标签库这些最为核心的东西(其实这些也正是最常用的东西),...

夜店小新新
2014/08/14
74
0
《JavaEE基础实用教程》笔记说明

“《JavaEE基础实用教程》笔记”分类中的文章是本人学习《JavaEE基础实用教程》时所做的笔记。 该书作者:郑阿奇 著。ISBN:9787121091360。 这里整理出第3、4、5章的笔记,主要内容是Strut...

JerryPan
2016/02/19
1K
1
【学习笔记3】解决struts2配置文件无提示问题

在没有连接到互联网的情况下,编辑struts.xml文件时可能会没有代码提示,怎么解决呢?方法如下: 1、查看struts.xml,找到<!DOCTYPE>中对dtd的描写:http://struts.apache.org/dtds/struts-...

张超
2013/03/18
81
0
struts2学习笔记1

struts框架可以提供对前端请求的封装和重定向,提高开发效率,对程序代码进行解耦 使用struts2的步骤. 1首先引入struts2核心包, 2在web,xml中配置filter struts2org.apache.struts2.dispat...

mr.q
2014/04/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Rust 的 GUI 框架生态概览

本文比较全面比较了目前主流的 Rust 的 GUI 框架的表现。其中 ++ 表示非常好,-- 表示非常差,而 o 表示处于平均水平。 参与对比的框架共有 8 个,详细的比较结果如下: Electron + Neon El...

红薯
11分钟前
2
0
golang微服务框架go-micro 入门笔记2.1 micro工具之micro api

micro api micro 功能非常强大,本文将详细阐述micro api 命令行的功能 重要的事情说3次 本文全部代码https://idea.techidea8.com/open/idea.shtml?id=6 本文全部代码https://idea.techidea8....

非正式解决方案
今天
2
0
Spring Context 你真的懂了吗

今天介绍一下大家常见的一个单词 context 应该怎么去理解,正确的理解它有助于我们学习 spring 以及计算机系统中的其他知识。 1. context 是什么 我们经常在编程中见到 context 这个单词,当...

Java知其所以然
昨天
3
0
Spring Boot + Mybatis-Plus 集成与使用(二)

前言: 本章节介绍MyBatis-Puls的CRUD使用。在开始之前,先简单讲解下上章节关于Spring Boot是如何自动配置MyBatis-Plus。 一、自动配置 当Spring Boot应用从主方法main()启动后,首先加载S...

伴学编程
昨天
7
0
用最通俗的方法讲spring [一] ──── AOP

@[TOC](用最通俗的方法讲spring [一] ──── AOP) 写这个系列的目的(可以跳过不看) 自己写这个系列的目的,是因为自己是个比较笨的人,我曾一度怀疑自己的智商不适合干编程这个行业.因为在我...

小贼贼子
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部