Struts是Apache软件基金会(ASF)赞助的一个开源项目。它最初是jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目。它通过采用JavaServlet/JSP技术,实现了基于JavaEEWeb应用的MVC设计模式的应用框架,是MVC经典设计模式中的一个经典产品。
Struts的含义是”支柱,枝干”,它的目的是为了减少程序开发的时间,项目的创建者认为JSP,servlet的存在虽然可以帮助用户解决大部分问题,但是由于它们的编码对项目的开发带来了许多的不方便,可重用性也差,所以struts应运而生,帮助用户在最短的时间内解决这些问题。Struts框架提供如下服务:
(1)作为控制器的Servlet。
(2)提供大量的标签库。
(3)提供了用于国际化的框架,利用不同的配置文件,可以帮助用户选择合适自己的语言。
(4)提供了JDBC的实现,来定义数据源和数据库连接池。
(5)XML语法分析工具。
(6)文件下载机制
MVC模型:
V:显示界面,java中一般都是html、jsp、ftl等
C:控制器,承上启下
M:数据模型,一般都是service层提供的
现在的开发中很多项目都是采用Maven,那么本篇文档的代码也都是基于Maven进行的开发。
1、创建Maven项目
打包方式选择war
2、添加jar包依赖
pom文件:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>cn.code404</groupId>
<artifactId>Struts2_1</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<description>Struts2的基本使用</description>
<dependencies>
<!--Strut2 -->
<!-- https://mvnrepository.com/artifact/org.apache.struts/struts2-core -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.5.12</version>
</dependency>
<!--Servlet -->
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
<!--构建信息 -->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
</project>
3、创建控制器类
Struts中的控制器就是Action
//控制器
public class HelloAction extends ActionSupport{
public String hello(){
System.out.println("欢迎访问控制器");
return "index";//"success"
}
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
return super.execute();
}
}
4、创建全局配置文件
struts.xml
<?xml version="1.0" encoding="UTF-8"?>
<!--约束文档 -->
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd">
<!--1、基本使用&Action多种创建方式 -->
<struts>
<!--包的创建, name:名称 namespace:访问路径 extends:继承包名 -->
<package name="h1" namespace="/" extends="struts-default">
<!--Action的第一种创建方式:继承 -->
<!--Action控制器 name:行为名称,访问名称 class:类的全称 method: 要执行的方法,如果省略,那么执行execute -->
<action name="hello" class="cn.code404.web.action.HelloAction"
method="hello">
<!--result:方法的返回值 name:返回值的内容 -->
<result name="index">/index.jsp</result>
</action>
</package>
</struts>
5、创建index.jsp页面
6、配置web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<display-name>Struts2_Day1</display-name>
<!--Struts2的前端控制器,是一个过滤器组成的,配置文件要求:路径:classes,名称:struts.xml -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
7、启动
访问:hello或者hello.action即可访问对应的控制器