文档章节

Struts2环境搭建

开源俱乐部
 开源俱乐部
发布于 2014/06/08 23:25
字数 716
阅读 57
收藏 0

一、Struts2环境配置步骤

(1)下载并解压Struts2

        Struts2解压后,会得到4个文件夹,分别是:

        apps:5个应用的war包

        docs:文档

        lib:107个jar包

        src:源码

(2)拷贝相关的JAR包

        拷贝apps\struts2-blank.war\WEB-INF\lib\*.jar文件到项目的lib目录下。

(3)修改web.xml文件

        打开apps\struts2-blank.war\WEB-INF\web.xml,将以下代码拷贝到项目中的web.xml中。

<filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

        这段代码的意思是,使用拦截器拦截所有url请求。

        web.xml文件完整代码如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

    <display-name>Struts Blank</display-name>

    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
    </welcome-file-list>

</web-app>

(4)配置struts.xml

        将apps\struts2-blank.war\WEB-INF\classes\struts.xml拷贝到项目的src目录中,并稍作配置,代码如下所示:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

    <constant name="struts.enable.DynamicMethodInvocation" value="false" />
    <constant name="struts.devMode" value="true" />

    <package name="default" namespace="/" extends="struts-default">

        <default-action-ref name="index" />

        <global-results>
            <result name="error">/error.jsp</result>
        </global-results>

        <global-exception-mappings>
            <exception-mapping exception="java.lang.Exception" result="error"/>
        </global-exception-mappings>

        <action name="*">
            <result>
               /{1}.jsp
            </result>
        </action>
    </package>

    <!-- Add packages here -->

</struts>

(5)测试配置

        部署并启动tomcat服务器,访问http://ip地址:端口/项目名/index.action或http://ip地址:端口/项目名/index,如果成功访问,则证明Struts2配置正常。

        至此,Struts2的配置工作就完成了。

二、知识扩展

(1)Struts2默认扩展名   

        Struts1的默认扩展名为.do,Struts2的默认扩展名为.action,实际应用中可以省略后缀,只用Action名称即可。

        扩展名可以在配置文件中修改,可以增加或修改为自定义的其它扩展名。

(2)Struts中常量介绍

        常量是用于Struts2的应用特性。

        在本示例的struts.xml中,有如下常量的代码配置。

<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true" />

        这两行常量配置的意思分别是:禁用动态调用、启用开发模式(热部署)。Struts2提供了非常多的常量,以后文章会详细介绍。

(3)开发模式

        所谓开发模式,就是在改变代码或配置文件后,不重新部署或重启Tomcat服务器的情况下,直接可以浏览更改后的效果,又称热部署。一般用于开发环境中。

(4)本示例struts.xml中Action配置解释

        本示例中的struts.xm中如下代码:

<action name="*">
            <result>
               /{1}.jsp
            </result>
</action>

        意思是:无论什么请求,都会和WebRoot根目录下的请求.jsp文件进行匹配并返回相应结果。

        如,假如用户访问:http://ip地址:端口/项目名/index

        实际的访问地址是:http://ip地址:端口/项目名/index.jsp

© 著作权归作者所有

共有 人打赏支持
开源俱乐部
粉丝 10
博文 39
码字总数 31422
作品 0
朝阳
架构师
私信 提问
Hibernate环境搭建+struts整合

说明:本文档,是和struts2+hibernate的整合示例。 lib下还有struts2的jar包,本示例没有显示。struts2的搭建参考struts2的环境搭建 一下载hibernate的jar包,并将相关jar包导入的项目web-i...

无信不立
2014/08/14
0
0
网站apache环境S2-057漏洞 利用POC 远程执行命令漏洞复现

S2-057漏洞,于2018年8月22日被曝出,该Struts2 057漏洞存在远程执行系统的命令,尤其使用linux系统,apache环境,影响范围较大,危害性较高,如果被攻击者利用直接提权到服务器管理员权限,...

sinesafe
2018/08/23
0
0
网站漏洞之apache环境S2-057漏洞 利用POC 远程执行命令漏洞复现

S2-057漏洞,于2018年8月22日被曝出,该Struts2 057漏洞存在远程执行系统的命令,尤其使用linux系统,apache环境,影响范围较大,危害性较高,如果被攻击者利用直接提权到服务器管理员权限,...

网站安全
2018/08/24
0
0
struts2学习笔记--动手搭建环境+第一个helloworld项目

  在Myeclipse中已经内置好了struts2的环境,但是为了更好的理解,这里自己从头搭建一下:   前期准备:下载struts2的完整包,下载地址:https://struts.apache.org/,解压缩,在apps目录下,解压...

冬至饮雪
2016/02/04
0
0
HelloWorld概述

2.1 概述 2.1.1 功能概述 通过上一章的讲述,明白了Struts2是什么,有什么以及能干什么,接下来就该来讨论怎么做的问题了,也就是讨论如何使用Struts2来开发基于MVC的web应用。 按照惯例,学...

空呗
2014/01/08
234
1

没有更多内容

加载失败,请刷新页面

加载更多

JavaScript继承(二)——借用构造函数

JavaScript继承(一)——原型链中提出原型链继承的两个问题:一是原型的数据共享问题,二是创建子类型的实例时,不能向父类型的构造函数中传递参数。这两个问题的根源还是在于使用原型模式创...

Bob2100
46分钟前
1
0
day25:比较两个文件内容|杀进程|并发备份数据库|并发进程备份mysql库|监控全国CDN网站节点|

1、有两个文件 a.txt 和 b.txt,把 a.txt 中有的但 b.txt 中没有的行找出来,并写入列 c.txt,然后计算 c 的行数; 注释:比较两个文件两个文件不同,可以用的方法:diff md5sum grep -vf $1 $...

芬野de博客
今天
5
0
抓包工具Charles

背景介绍 Charles是一款很实用,界面很友好(至少跟fiddler比起来),功能强大的抓包神器,因为它是基于 java 开发的,所以跨平台,Mac、Linux、Windows下都是可以使用的,并且在Android和i...

Jack088
今天
3
0
徒手撸一个简单的RPC框架

徒手撸一个简单的RPC框架 之前在牛逼哄哄的 RPC 框架,底层到底什么原理得知了RPC(远程过程调用)简单来说就是调用远程的服务就像调用本地方法一样,其中用到的知识有序列化和反序列化、动态...

不学无数的程序员
今天
2
0
Java 面试题目最全集合1000+ 大放送,能答对70%就去BATJTMD试试~

2019,相对往年我们会发现今年猎头电话少了,大部分企业年终奖缩水,加薪幅度也不如往年,选择好offer就要趁早,现在开始准备吧,刷一波Java面试题,能回答70%就去BATJTMD大胆试试~ 以下是2...

mikechen优知
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部