Struts2学习过程
初衷:因为只学习过Springmvc,Struts2久仰大名却没有接触过,抱着这个想法来学习的Struts2。在另外一方面来讲,这个框架也确实需要Javaer去掌握,以上。
1.什么是Struts2,它是个什么,我们为什么要放弃快乐的游戏来学这个框架?
Struts2之前还有一个Struts1,但是现在没怎么用,那1肯定是不如2好了。Struts2与之前一个版本1区别较大,2是由WebWork与Struts1的基础上发展来的,但是总体上是基于WebWork的,所以你可以看见Struts2与之前的WebWork变化差异小,但却与Struts1差异很大。那么不管是Struts1与WebWork,还是Struts2,它们都是web框架。
Struts2的百度定义:Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。
2.怎么去使用它呢?即如何配置Struts2,又到了我们最喜欢的HelloWorld环节。
- 打开你最心爱的eclipse,创建一个动态web项目,然后我们需要导入必须的几个jar包,如下图:
Struts2本质是一个Servlet,Servlet的配置都是在web.xml中,需要先配置Struts2的核心过滤器
<!-- 创建struts2的核心过滤器 -->
<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>
2.现在所有的请求Struts2这位大佬都要过问一下,接着让我们创建一个HelloWorldAction
package com.test.struts;
import com.opensymphony.xwork2.ActionSupport;
public class HelloWorldAction extends ActionSupport{
@Override
public String execute() throws Exception {
System.out.println("我访问到了这里");
return SUCCESS;
}
}
然后创建struts.xml核心配置文件,文件存放在src根目录下,
<?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>
<package name="test" namespace="/" extends="struts-default">
<action name="helloworld" class="com.test.struts.HelloWorldAction" method="execute">
<result name="success">/HelloWorld.jsp</result>
</action>
</package>
</struts>
创建一个jsp页面
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h1>HelloWorld</h1>
</body>
</html>
让我们启动tomcat,来一次美妙的HelloWorld,访问结果:
3.已经可以走一个简单的HelloWorld流程了,那么Struts2的执行流程是怎么样的?
1.服务器启动加载web.xml,创建Struts2的核心过滤器。
2.执行过滤器的init方法,顺序读取struts-default.xml,struts-plugins.xml,struts.xml(用户自定义)。
3.每次请求访问时创建action实例,在访问业务方法之前访问拦截器,接着访问业务方法。