JavaEE-------------------------自定义Struts 2拦截器得到请求参数

当在用Struts 2开发的时候,有遇到过前台传递参数后台,却不能直接看到,当前的Action到底是有哪个类的哪个方法来处理,返回结果是什么,执行时间是多少的问题,现在就一起来看看吧如何得到这些结果吧

我把相关的Jar包和说明文档放在这里了

http://sdrv.ms/185SA0p

使用

MyEclipse中在你需要的Struts 2 工程上选择”Build Path->Configure Build Path…”

 

选择”Add External JARs…”,找到本压缩包里的JAR文件的位置选择即可


在Struts 2的配置文件struts.xml中配置如下(仅仅是个示例,除了类名其他随意)

<interceptors>
            <interceptor name="bqdebug" class="com.bq.util.MyInterceptor" />
            <interceptor-stack name="myStack">
                <interceptor-ref name="bqdebug" />
                <interceptor-ref name="defaultStack" />
            </interceptor-stack>
        </interceptors>
<default-interceptor-ref name="myStack" />

大体类似这样的结构,解释一下,在拦截器里自定义自己的拦截器栈然后把它和defaultStack绑在一起,然后把它们所在的这个栈设置为默认拦截器栈即可,这种配置方式和Struts 2自己的配置拦截器栈相同


 控制台打印情况

------------------------Start-------------Designed By BaiQiang---------------------
开始拦截Action执行之前的动作2013-8-29 11:34:45---------------------------
得到请求IP:127.0.0.1
得到请求地址:http://127.0.0.1:8080/Server/getBook.action
得到请求方法:GET
得到的参数:id=10
执行类与方法com.bq.GetBook.execute()----------------
---------------------Action的方法开始执行---------------------

Hibernate: select book0_.id as id0_0_, book0_.name as name0_0_, book0_.detail as detail0_0_ from book book0_ where book0_.id=?
Hibernate: select book0_.id as id0_0_, book0_.name as name0_0_, book0_.detail as detail0_0_ from book book0_ where book0_.id=?

处理文件:file:/E:/Program%20Files%20(x86)/tomcat/apache-tomcat-6.0.30/apache-tomcat-6.0.30/webapps/Server/WEB-INF/classes/struts.xml

处理行位置:第23行

返回参数:success

返回地址:{location=/book.jsp}

拦截Action执行之后的动作2013-8-29 11:34:46

执行Action需要503毫秒
--------------------------------------End----------------------------------------------


------------------------Start-------------Designed By BaiQiang---------------------
开始拦截Action执行之前的动作2013-8-29 11:34:47---------------------------
得到请求IP:127.0.0.1
得到请求地址:http://127.0.0.1:8080/Server/changeBook
得到请求方法:POST
得到的参数:book.name=美术&book.detail=程序设计的艺术&book.id=10
执行类与方法com.bq.ChangeBook.execute()----------------
---------------------Action的方法开始执行---------------------

Book [id=10, name=美术, detail=程序设计的艺术]
Hibernate: select book0_.id as id0_0_, book0_.name as name0_0_, book0_.detail as detail0_0_ from book book0_ where book0_.id=?
Hibernate: select book0_.id as id0_0_, book0_.name as name0_0_, book0_.detail as detail0_0_ from book book0_ where book0_.id=?
Hibernate: update book set name=?, detail=? where id=?

处理文件:file:/E:/Program%20Files%20(x86)/tomcat/apache-tomcat-6.0.30/apache-tomcat-6.0.30/webapps/Server/WEB-INF/classes/struts.xml

处理行位置:第28行

返回参数:success

返回地址:{actionName=query}

拦截Action执行之后的动作2013-8-29 11:34:48

执行Action需要310毫秒
--------------------------------------End----------------------------------------------

That's All!

原文地址:https://www.cnblogs.com/bq12345/p/3288762.html