Struts2简介与配置

来源:互联网 发布:h3c 查看端口日志 编辑:程序博客网 时间:2024/05/16 19:08

Struts简介

Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts 2可以理解为WebWork的更新产品。虽然从Struts 1到Struts 2有着太大的变化,但是相对于WebWork,Struts 2的变化很小。

工作原理

Created with Raphaël 2.1.0用户用户网页网页ActionServletActionServletActionServlet(StrutsPrepareAndExecuteFilter)ActionServlet(StrutsPrepareAndExecuteFilter)ActionAction访问发送请求(web.xml)根据配置分发到Action(struts.xml)业务处理返回数据调用jsp页面反馈

struts2配置

搭建开发环境

struts2的核心包

  • commons-logging-*.jar Apache旗下commons项目的log日志包
  • aopalliance-*.jar这个包为AOP提供了最普通和通用的接口
  • commons-fileupload-*.jar
  • commons-io-*.jar struts的上传下载 两者缺一不可
  • commons-lang-*.jar为java.lang包提供扩展
  • freemarker-*.jar 一种前台页面模板,应用比较广泛
  • ognl-*.jar 动态图导航语言,struts2处理前台页面的核心语言,相当实用
  • antlr-*.jar 一种工具,它可以接受词文法语言描述,并能产生识别这些语言的语句的程序
  • struts2-core-*.jar struts2的核心包
  • xwork-core-*.jar webwork的核心包,因为struts2的前身是webwork,所以这个是必须的
  • Struts2.3.4.1 异常解决(javassist-*.GA.jar包的添加)
    (* :表示版本号 )
    struts2中各个jar包的具体作用

如何快熟找到需要导入的包?

第一步的话就是下载struts2,并且解压。这个的话之前写的经验已经详细说过了。不会的可以去看看。
第一步的话就是下载struts2,并且解压。这个的话之前写的经验已经详细说过了。不会的可以去看看。
解压出来之后呢,点击apps目录。这个目录存放的是struts2的例子程序。
解压出来之后呢,点击apps目录。这个目录存放的是struts2的例子程序
然后可以看到一个struts2-blank.war文件。war文件就是web应用的打包文件。
把struts2-blank.war名为struts2-blank.jar文件,然后进行解压。
把struts2-blank.war名为struts2-blank.jar文件,然后进行解压
解压之后,是一个让人熟悉的web项目的目录。这里点击WEB-INF目录,然后打开其目录下的lib目录。
这里写图片描述
解压之后,是一个让人熟悉的web项目的目录。这里点击WEB-INF目录,然后打开其目录下的lib目录
之后你就能看到struts2所需要的最基本jar包了。一共13个(当然jar的个数跟版本有点关系)。你就复制这个13个jar文件到你创建的项目lib下就可以了。这样你就不用在106个中挑选了.
之后你就能看到struts2所需要的最基本jar包了。一共13个(当然jar的个数跟版本有点关系)。你就复制这个13个jar文件到你创建的项目lib下就可以了。这样你就不用在106个中挑选了


配置相关文件

配置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">        <action name="index" class="com.LoginStruts">        <!-- action name(index)为浏览器访问地址  class为action类的路径 -->            <result name="ok">/index.jsp</result>            <!-- result name为action类返回值     /index.jsp跳转页面-->            <result name="no">/error.jsp</result>            <!-- result name为action类返回值     /error.jsp跳转页面-->        </action>    </package>    <!-- Add packages here --></struts>

配置web.xml

主要是通过拦截器来控制进入Action

<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>

开发

实现Action接口

package com;import com.opensymphony.xwork2.Action;public class LoginStruts implements Action{    public String execute() throws Exception {        System.out.println("进入 execute");        if(1==1){ //逻辑判断,不同的逻辑返回不同的值            return "ok";        }        return "no";    }}
原创粉丝点击