文档章节

struts

lf20101072
 lf20101072
发布于 2017/04/26 19:03
字数 889
阅读 57
收藏 0


搭建struts2的工程环境的步骤:

1、找到struts-blank.war

2、添加相关的jar包到工程lib下

3、修改工程的web.xml(添加一个过滤器)
        
        <filter>
            <filter-name>struts2</filter-name>
            <filter-class>xxxx.StrutsPrepareAndExecuteFilter</filter-class>
        </filter>
        <filter-mapping>
            <filter-name>struts2</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
        
4、将struts的主配置放置到src下(放置到类路径之下)
    注意点:主配置的文件名不要修改,使用struts.xml(大小写也不能修改,最好从别的工程复制过来即可)
    
    
5、新建一个简单的登录页面
    确认表单提交的action参数
    这个就是我之前提过的,一切以页面为起源
    
6、创建了一个普通POJO类

    > 根据前台表单控件的name设置成员变量
    > 设置getter/setter方法
    > 创建一个普通方法:a 必须是public b 这个必须不带形参 c 返回值必须是String
    
7、在struts的主配置文件配置POJO类    

        <!-- 在同一个包下action的name不能重复 class属性里面写的是这个类的全限定名(包名+类名) -->
        <!-- method属性是指调用UserAction中的哪个方法 -->
        <action name="login" class="com.action.UserAction" method="login">
            <result name="success">welcome.jsp</result>
            <result name="error">error.jsp</result>
        </action>
        
8、创建welcome.jsp和error.jsp
        >从session域中获取用户名
        
        
        
以前在页面取值:JSTL+EL

如果工程中使用了struts2那么页面的取值可以通过以前的用法:JSTL标签+EL表达式
还可以使用新的方法:struts2的标签+OGNL表达式

推荐使用哪个:老方法推荐,可以复用,而且即便是更换struts2框架依然可以使用

log4j
log for java


struts2中Ajax的使用步骤

1、前台页面同以前操作
    $.post(
        "",//url
        {},//json数据
        function(){},//成功后的回调函数
        "json"//返回类型
    );

2、在struts2的主配置文件中添加Action标签

    <action name="" class="" method="">
        <result name="" type="json">
            <param name="root">result</param>
        </result>
    </action>
    
    <package extends="json-default">
    
    导入相关jar包:struts2-json-plugin-xxxx.jar
    
3、写Action
    
        > 成员变量为result,这个变量应该与struts.xml中的param的内容一致
        > setResult(这个String最好是符合JSON格式),建议返回到页面是一个JSON对象即可

    

自定义拦截器(内置拦截器)的使用方法:

1> 自定义一个拦截器类(实现一个Interceptor接口,或者继承自AbstractInterceptor)
    > 重写内部的intercept方法
    

2> 在struts.xml中声明拦截器
    <interceptors>
        声明使用的类
        <interceptor-ref name="myInterceptor"/>
    </interceptors>
    
3> 在struts.xml中使用拦截器

    <action>
        <result xxxxxxx>
        <interceptor-ref name="myInterceptor"/>
    </action>
    
    
内置拦截器的使用步骤:所谓内置的意思就是struts2自带的拦截器(默认的类)

1、    在struts.xml中声明拦截器
    <interceptors>
            <interceptor-stack name="mystack">
                <interceptor-ref name="defaultStack"/>
                <interceptor-ref name="timer"/>
            </interceptor-stack>
        </interceptors>
        
    在声明时,一定要添加<interceptor-ref name="defaultStack"/>
    
2、在struts.xml中使用拦截器
        在<action>标签中使用拦截器
        <action name="hello">
            <interceptor-ref name="mystack"/>
        </action>    

3、当前台调用这个hello时,拦截器就会生效

 

 

自定义拦截器的使用步骤

1、创建一个拦截器类
    > 继承自AbstractInterceptor(或者实现Interceptor接口)
    > 重写intercept(ActionInvocation inv),里面有个重要的方法inv.invoke();
    > 要做一个String的返回值

2、在struts.xml中声明拦截器
        <interceptors>
            <interceptor name="myInterceptor" class="拦截器类的全限定名">
            <interceptor-stack name="mystack">
                <interceptor-ref name="defaultStack"/>
                <interceptor-ref name="myInterceptor"/>
            </interceptor-stack>
        </interceptors>
        
        >如果程序员自己定义了多个拦截器,他的执行顺序是按照interceptor-stack的排序执行

3、在struts.xml中使用拦截器
        在<action>标签中使用拦截器
        <action name="hello">
            <interceptor-ref name="mystack"/>
        </action>    

4、当前台调用这个hello时,自定义的拦截器就会生效

© 著作权归作者所有

上一篇: hibernate
下一篇: sh
lf20101072
粉丝 0
博文 116
码字总数 18583
作品 0
孝感
私信 提问
Struts 2再曝远程代码执行漏洞S2-037

导读 今年4月份,Apache Stuts 2之上发现的S2-033远程代码执行漏洞,以迅雷不及掩耳之势席卷而来。其利用代码很快就在短时间内迅速传播。而且官方针对这个高危漏洞的修复方案还是无效的。 悲...

linuxprobe
2016/06/22
0
0
Apache Struts最新漏洞 远程代码执行漏洞预警

2018年11月8日,SINE安全监控检测中心,检测到Apache Struts官方更新了一个Struts漏洞补丁,这个漏洞是Apache Struts目前最新的漏洞,影响范围较广,低于Apache Struts 2.3.35的版本都会受到...

网站安全
2018/11/09
0
0
jsp网站发布-javaweb项目在自己电脑运行没有问题,但是部署到阿里云服务器之后运行出问题了

jsp网站发布-javaweb项目在自己电脑运行没有问题,但是部署到阿里云服务器之后运行出问题了 HTTP Status 500 - The Struts dispatcher cannot be found. This is usually caused by using S...

我是学渣23333
2017/09/09
499
4
Struts 2.2.1 发布,重要的安全补丁

Struts 的上一次更新是 2008 年的 12 月,至今已有一年多了。今天 Struts 发布了 2.2.1 稳定版本,包含了很多重要的安全补丁,建议所有使用 Struts 2.2 的用户升级到该版本。 发行说明请看:...

红薯
2010/08/16
3K
6
ST2-045 For POC

转载请注明: 转载自Legend‘s BLog 本文链接地址: ST2-045 For POC 利用方法: 漏洞说明: Apache Struts 2被曝存在远程命令执行漏洞,漏洞编号S2-045,CVE编号CVE-2017-5638,在使用基于J...

apachecn_飞龙
2017/03/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

PostgreSQL 11.3 locking

rudi
今天
5
0
Mybatis Plus sql注入器

一、继承AbstractMethod /** * @author beth * @data 2019-10-23 20:39 */public class DeleteAllMethod extends AbstractMethod { @Override public MappedStatement injectMap......

一个yuanbeth
今天
13
1
一次写shell脚本的经历记录——特殊字符惹的祸

本文首发于微信公众号“我的小碗汤”,扫码文末二维码即可关注,欢迎一起交流! redis在容器化的过程中,涉及到纵向扩pod实例cpu、内存以及redis实例的maxmemory值,statefulset管理的pod需要...

码农实战
今天
4
0
为什么阿里巴巴Java开发手册中不建议在循环体中使用+进行字符串拼接?

之前在阅读《阿里巴巴Java开发手册》时,发现有一条是关于循环体中字符串拼接的建议,具体内容如下: 那么我们首先来用例子来看看在循环体中用 + 或者用 StringBuilder 进行字符串拼接的效率...

武培轩
今天
9
0
队列-链式(c/c++实现)

队列是在线性表功能稍作修改形成的,在生活中排队是不能插队的吧,先排队先得到对待,慢来得排在最后面,这样来就形成了”先进先出“的队列。作用就是通过伟大的程序员来实现算法解决现实生活...

白客C
今天
87
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部