2016.6.23笔记(2)-本地配置

配置基本的环境

配置本地的struts2的环境,从官网上下载了最新的版本,拿了重要的几个包,然后将这些包导入到项目里面,并且把这几个包拷贝到web-inf下的lib文件夹里面。如下如
这里写图片描述

在编写 web.xml 中至少要包含以下两部分的内容:
- 定义的节点,定义所映射 URL 模式。
- 定义一个项目默认访问的首页。在下面的例子中,节点对应的类为org.apache.struts2.dispatcher.FilterDispatcher;其 URL 模式为*,即匹配所有的 URL 模式;默认的首页为 index.html。

这是可应用于 Struts2的 web.xml 的最基本形式了。当然,也可以在 web.xml 中增加更多的其它的配置项,比如增加对 spring 等其它开源项目的支持。web.xml 是任何 Web 应用都不能少的配置文件,它存放的路径是在 WebRoot 这个目录下的,千万不要存放错位置。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>servlet_test</display-name>

  <!--部署之前,先清除环境 -->
  <filter>
  <filter-name>struts-cleanup</filter-name>
  <filter-class>org.apache.struts.dispatcher.ActionContextCleanUp</filter-class>
  </filter>

  <filter-mapping>
  <filter-name>struts-cleanup</filter-name>
  <url-pattern>/*</url-pattern>
    </filter-mapping>



  <!--部署filter的名称以及对应的类 -->
  <filter>
  <filter-name>struts2</filter-name>
  <filter-class>org.apache.struts.dispatcher.ActionContextCleanUp</filter-class>
  </filter>

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


  <!-- 
  <filter>
  <filter-name>Controller</filter-name>
  <filter-class>control.Controller</filter-class>
  </filter>

  <filter-mapping>
  <filter-name>Controller</filter-name>
  <url-pattern>*.action</url-pattern>
    </filter-mapping>   
  -->


  <!--项目的首页-->
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>

文件前面两个节点的配置,在上面没有提到,其实它的配置并不是必须的,只是一种好的风格。作用就是,在部署这个项目之前先清除以前在 Tomcat 中遗留的一些干扰信息,这样就不会对新的项目部署产生干扰。整个web.xml 就是在项目中要先配置一个 FilterDispatcher,拦截类似于.jsp、.vm 的请求,然后寻求相应的 Action 去执行。当然还可以使用 Struts2 提供的标签,其他的框架为了使用标签就是要单独配置一个标签的节点,譬如 WebWork,但是 Struts2 为我们提供了方便,进行了默认的配置。其实大多数 web 应用的 web.xml 文件都是按照这样配置。

注意:在做上传文件的时候,一定要在 web.xml 中增加 ActionContextCleanUp 这个 filter,如果不增加,会发生第一次上传取不到文件的情况。

配置struts2配置环境

作为 Struts2 最核心的配置文件,Struts2 所有高级特性的相关特性都在这里进行定义,包括 Action,Interceptor,Velocity 视图等等。下面的 Struts2.xml 所示的是这一章后面实例的所有配置,有结点是对 Struts2 的 Action 的配置,有结点是对 Struts2拦截器的配置,还有 Velocity 视图模板结点的配置。

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

    <!-- 在包中导入 Struts 自带的配置文件 struts-default.xml -->
    <package name="default" extends="struts-default">

    <!-- 配置自己定义的拦截器 -->
    <interceptors>
        <interceptor name="greeting" class="example.GreetingInterceptor">
        </interceptor>
    </interceptors>

    <!-- 配置系统自带的拦截器栈 -->
        <default-interceptor-ref name="completeStack">
        </default-interceptor-ref>
    <!-- 配置自己定义的 Action -->

    <action name="helloworld" class="example.helloworld">
        <result name="success">hello.jsp</result>
        <result name="input">name.jsp</result>
    </action>

    <action name="greeting" class=" example.GreetingAction">
        <result name="success" type="velocity">ex01-result.vm</result>
    <!-- 显示使用自己定义的拦截器 -->
    <interceptor-ref name="greeting"></interceptor-ref>
    </action>
    </package>
</struts>

第一句代码的功能也是为了统一的字符编码,和 web.xml 采用一样的编码风格。
接下也是对应的 DTD 的说明。这个标签是表示现在采用的是否为 struts2 开发模式,在开发模式下会报错,如果是在开发阶段值就要设置为“true”,便于开发,如果是最终完成后就设置为“false”。
在 struts.xml 文件中,需要配置拦截器,以及自己添加的 Action,是在一个 package 标签之间配置的,通过 extends 属性把 Struts 自带的配置文件 struts-default.xml 导入。
上面关于自己定义的拦截器配置是后面的例子要用到的,以及第二个 greeting Action 也是的。在helloworld 这个例子中,默认的 Struts2 文件一定要导入,其次就是配置 helloworld Action。在页面上会提交数据给 Action,然后 Struts2 就会根据给的 Action 名字,就到 struts.xml 文件中查找,找到 Action 对应的类,最后就给相应的类进行处理。

还可以根据执行的不同返回结果,选择不同的返回页面。在这个配置文件里,重点是声明自定义的拦截器,通过 interceptor 标签的声明告诉系统自定义的拦截器
注意:struts.xml 和 web.xml 处于不同的目录下。
- struts.xml 存放在\WebRoot\WEB-INF\classes下
- web.xml 存放在\WebRoot 目录下,大家切记。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值