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>
 









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Struts 中,处理异常有两种方式:编程式异常处理和声明式异常处理。本篇笔记将讲解声明式异常处理。 声明式异常处理是指在 struts.xml 文件中通过配置来处理异常。这种方式可以让开发人员将重心放在业务逻辑的处理上,而不必关心异常的处理。 首先,我们需要在 struts.xml 文件中配置全局的异常处理器: ```xml <global-exception-mappings> <exception-mapping exception="java.lang.Exception" result="errorPage"/> </global-exception-mappings> ``` 这里我们配置了一个全局的异常处理器,它会处理所有的 java.lang.Exception 异常,并将结果返回到名为 errorPage 的 result 中。 接下来,我们需要在 action 中声明需要处理的异常: ```xml <action name="test" class="com.example.TestAction"> <exception-mapping exception="java.lang.IllegalArgumentException" result="illegalArgument"/> <result name="success">/test.jsp</result> </action> ``` 在这个例子中,我们声明了 TestAction 类中处理 java.lang.IllegalArgumentException 异常,并将结果返回到名为 illegalArgument 的 result 中。 最后,我们需要在 struts.xml 文件中定义这些 result: ```xml <result name="errorPage">/error.jsp</result> <result name="illegalArgument">/illegalArgument.jsp</result> ``` 这样,当 TestAction 类中抛出 java.lang.IllegalArgumentException 异常时,就会返回到名为 illegalArgument 的 result 中。 总之,声明式异常处理可以让我们更加专注于业务逻辑的处理,通过配置来处理异常,从而提高代码的可维护性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值