码迷,mamicode.com
首页 > 其他好文 > 详细

Struts学习——01

时间:2015-08-20 18:57:05      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:java   web   struts   servlet   mvc   

使用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>
 









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

Struts学习——01

标签:java   web   struts   servlet   mvc   

原文地址:http://blog.csdn.net/itzhanghao/article/details/47808489

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!