Struts学习——01

使用filter 作为控制器的mvc。

使用filter作为控制器的好处:使用一个过滤器来作为控制器,可以方便的在应用程序里面对所有资源进行控制访问。

Servlet  VS Filter

1.servlet能做的filter都可以完成

2.fileter能做的servlet不一定,拦截资源却不是servlet所擅长的,filter又一个filerchain,这个api在servlet中没有

resutl 的type属性值在stuts-defutlt.xml中

chain   dispatcher(默认)   redirect  redirectAction

搭建struts2 3步骤:

1.导入jar包:复制struts\apps\struts-blank\web-inf\lib下的所有jar包到当前web应用的lib目录下

2.在web.xml 文件中配置struts2:复制struts\apps\struts-blank\web-inf\web.xml文件中的过滤器的配置到当前web应用的web.xml文件中

3.在单亲web应用的classpath下添加struts2的配置文件夹struts.xml:struts\apps\struts-blank\web-inf\classes下的stuts.xml文件到当前web应用的src目录下。

如果没有提示信息,可以设置导入dtd文件。

action VS  Action 类

1.action:代表Struts2的一个请求

2.Actionl类:能够处理Struts2请求的类

》属性的名字必须遵守与javaBean属性名相同的命名规则。

属性的类型可以是任意类型。从字符串到费字符串(基本数据类型)之间的数据转换可以自动发生

》必须又一个不带参数的构造器:通过反射创建实例

》至少又一个共Struts在执行这个action时期调用的方法

》同一个action类可以包含多个action方法

》sturts会为每一个http请求创建一个新的action实例,及action不是单例的,是线程安全的。

在action中访问web资源:

1)什么是web资源

HttpServletRequest,HttpSession,ServletContext等原生的Servlet API

2)为什么访问Controlier

B\S的应用的controller中必然需要访问web资源,想与对象中读写属性,读写cookie 获取realPath。。。。

3)如何访问?

和servlet api解耦的方式:只能访问有限的servlet api对象,切只能访问其有限的方法(读写请求参数,读写与对象的属性,是session失效)

使用ActionContext

实现XxxAware接口

ActionContext  applicateionContext=ActionContext.getContext();

Map<String ,object> applicationMap=applicationContext.getApplication();

applicationMap.put(key,value);

获取时候用:

选用建议:若一个action类中有多个action方法,且多个方法都需要使用与对象的map或parameters,则建议使用aware接口的方式。seseion对应的map实际上是sessionmap类型的。墙砖后调用ivalidate()是session失效

和servlet api耦合的方式:可以访问更多servlet api对象,切可以调用其原生的方法。

使用servletactionContext          实现servletXxxxaware接口

关于Struts2请求的扩展名问题:

1)org.apache.struts2包下的default.properties中配置了struts2应用的一些常量

2)struts.action.extension定义了当前sturts2应用可以接受的请求的扩展名。

3)可以在struts.xml中已常量配置的反射修改default.property所配置的常量

<!-- 配置struts 可以受理的请求的扩展名 默认是action或者无扩展名 -->

<constant name="struts.action.extension" value="action,do,"></constant>

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-09-29 04:25:17

Struts学习——01的相关文章

OSX学习01之更新头像

前不久在官网上守株待兔,买了一个官翻版865,其实最想买294的,可是米不足啊——所以,在同时下了865和293的订单,并纠结了一天后,确定了865,剩余的钱够一个Mac mini了,如果不买也可以日后买iMac. 相关的内容等会儿写另一帖,废话就不说了. 拆机后简单的设置下账户信息,但是没觉得账户图片好看,又没发现又什么方式设置账户图片,纠结了很久. 本机没有什么图片,这时候可以先把图片下载下来再说. 进入系统偏好设置-->用户与群组-->当前用户,点击现有头像-->最近使用-->

概率论快速学习01:计数

2014-05-15 22:02 by Jeff Li 前言 系列文章:[传送门] 马上快要期末考试了,为了学点什么.就准备这系列的博客,记录复习的成果. 正文-计数  概率 概率论研究随机事件.它源于赌徒的研究.即使是今天,概率论也常用于赌博.随机事件的结果是否只凭运气呢?高明的赌徒发现了赌博中的规律.尽管我无法预知事件的具体结果,但我可以了解每种结果出现的可能性.这是概率论的核心. "概率"到底是什么?这在数学上还有争议."频率派"认为概率是重复尝试多次,某种结

Struts学习傻瓜式入门篇

或许有人觉得struts不容易学,似乎里面的一些概念让未接触过的人迷惑,MVC1.MVC2.模式……我写这篇文章是想让从来没有接触过struts的人,能有个简单的入门指引,当然,系统地学习struts是必要的,里面有很多让人心醉的东东,那是后话了. 该案例包括首页,用户登陆.网站向导页面.就这么简单,没有深奥的struts概念,主要靠动手,然后用心体会. WEB Server用tomcat4.到http://jakarta.apache.org下载struts1.1,把zip文 件释放到c:\s

ThinkPhp学习01

原文:ThinkPhp学习01 一.ThinkPHP的介绍           MVC  M - Model 模型                工作:负责数据的操作  V - View  视图(模板)        工作:负责前台页面显示  C - Controller 控制器(模块) 工作:描述功能 框架二.ThinkPHP的获取            http://www.thinkphp.cn三.ThinkPHP核心文件介绍      ├─ThinkPHP.php     框架入口文件 

struts学习笔记(1)基本配置

Struts2  学习笔记 吃透最简单的Helloword实例之后 ,接着再一一去研究 请求参数的接收与发送,参数的封闭,校验,result,struts2标签库这些最为核心的东西(其实这些也正是最常用的东西),经过这样的学习,应该领会了一些Struts2的流程,接着再去阅读相关文档去了解Strust2的拦截器设计思想(这叫先使用再体会的学习方法),接着可以做一些针对于自定义拦截器的实现来深化对Struts2的认识.此时,你已经达到企业中使用的级别了,接下来就可以玩一些SSh整合 一.基本配置 

Scala学习01 环境安装

Scala是一门运行在jvm上的多范式语言,作为一个java程序员,使用Scala来写写程序,既不用担心会没有java强大的库支持,又能快速地写出简短强悍的代码,除此之外scala还为我们提供了强大的并发支持,Let's love it! 安装 下面来看看如何安装它(在此之前,确保已经安装好了jdk,我使用的jdk1.7). 我们可以通过Scala的官网(http://www.scala-lang.org/download/)来下载Scala.我使用的版本是2.11.1. 将安装包下载在本地之后

pyqt listview基础学习01

from decimal import * from PyQt4.QtGui import * from PyQt4.Qt import * from PyQt4.QtCore import * import sys class Example(QWidget): def __init__(self,args=None): super(Example, self).__init__(args) list_data=[1,2,3,4] lm=MyListMode(list_data,self) s

HTML坦克大战学习01

<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> </head> <body> <canvas id="tankMap" width="400px" height="300px" style="background

HTML5 学习01

HTML的英语意思是:Hypertext Marked Language,即超文本标记语言,是一种用来制作超文本文档的简单标记语言. 所谓超文本,是因为它可以加入图片.声音.动画.影视等内容,事实上每一个 HTML 文档都是一种静态的网页文件,这个文件里面包含了 HTML 指令代码,这些指令代码并不是一种程序语言,它只是一种排版网页中资料显示位置的标记结构语言. ┣ 通过 HTML 可以表现出丰富多彩的设计风格: 图片调用:<IMG SRC="文件名"> 文字格式: <