本文将介绍两个内容:
1、struts2概述
2、第一个struts2测试
1、struts2概述
1.1 什么是struts2
Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts2是Struts1的下一代产品,是在struts1和WebWork的技术基础上进行了合并的全新的Struts2框架。其全新的Struts2的体系结构与Struts1的体系结构差别巨大.Struts2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts2可以理解为WebWork的更新产品。虽然从Struts1到Struts2有着太大的变化,但是相对于WebWork,Struts2的变化很小。
1.2 常见的web层框架
1.3 Web层框架基于前端控制器模型设计
2、第一个struts2测试类
2.1 下载struts2
struts.apache.org/download.cg…
2.2 struts2目录结构
• apps:Struts2提供的应用,可将web项目打成war包,直接放到Tomcat中
• docs:Struts2的开发文档和API
• lib :Struts2框架开发的jar包
• src :Struts2的源码
2.3 新建测试项目
1.新建项目
File-New-Dynamic Web Project-name:struts2_day01
Target runtime:Apache Tomcat v9.0 或 7.0
Dynamic web module version:4.0 或 2.5
2.5新建的项目有web.xml,4.0新建的项目没有web.xml
右键项目-Jave EE Tools-Genarate Deployment
2.连接Tomcat
Server Locations为installation
Server Path:Tomcat本地安装路径
Deplop Path:webapps
3.引入jar包
(1) 基础jar包拷入Tomcat
...\struts-2.3.24\apps\struts2-blank.war
拷贝到apache-tomcat-9.0.30\webapps
(2) jar包解压后拷入eclipse项目中
双击启动apache-tomcat-9.0.30\bin\startup.bat,此时struts2-blank.war就解压了
打开解压的apache-tomcat-9.0.30\webapps\struts2-blank\WEB-INF\lib
将lib下的jar包全部复制到新建项目struts_day01的lib下(不用build path)
4.创建JSP页面
目的:通过页面点击,访问到Struts2
(1) 新建文件夹
WebContent--New--Folder--name--demo1
(2) 新建页面
demo1--New--JSP File--name--demo1.jsp
demo1.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html >
<html>
<head>
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>Struts2入门</h1>
<p><a href="${pageContext.request.contextPath }/hello.action">
首次使用Struts2</a>
</p>
</body>
</html>
5.编写Action类
用来处理用户请求,给请求做响应
新建包src--New--package--name--com.it.struts.demo1
新建类com.it.struts.demo1--name--HelloAction.java
HelloAction.java
public class HelloAction {
/*
* 提供一个方法,方法签名固定
* 公有的返回值String类型,方法名execute,在这个方法中不能传递参数
*/
public String execute() {
System.out.println("HelloAction执行啦!");
return null;
}
}
6.对Action进行配置
在src下新建(提供)一个struts.xml(固定名称)
在tomcat\webapps\struts2-blank\WEB-INF\classes\struts.xml中有示例
struts.xml
<?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>
<!-- Struts2为了管理Action的配置,通过包进行管理 -->
<!-- 配置Struts2的包 -->
<!-- name可以随便写,但是不能重复 -->
<package name="demo1" extends="struts-default" namespace="/">
<!-- 配置Action -->
<!-- name与jsp页面中的action有关,class是访问的全路径 -->
<action name="hello" class="com.it.struts.demo1.HelloAction">
</action>
</package>
</struts>
7.配置前端控制器(核心过滤器)
位置位于:Libraries/Web App Libraries/strtus2-core-2.3.24.jar/
org.apache.struts2.dispatcher.ng.filter/StrutsPrepareAndExecuteFilter.class
在WebContent/WEB-INF/web.xml中配置核心过滤器
web.xml
<!-- 配置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>
8.在浏览器访问jsp页面
将项目在Tomcat server中start
在浏览器地址栏输入http://localhost:8080/struts2_day01/demo1/demo1.jsp
页面效果如图
点击“首次使用Struts2”
地址栏跳转
http://localhost:8080/struts2_day01/hello.action没反应
Eclipse的Console中print出“HelloAction执行啦!”
这是在HelloAction.java中编写的Action测试类
9.编写跳转页面
完成上面步骤已经能够通过浏览器访问页面了,
但是点击“首次使用Strurs2”时由于没有设置跳转页面,
跳转不成功,现在来设置跳转。
(1)改写Action类
将HelloAction.java中的return null;改为return "success";
(2)struts.xml中配置页面跳转
<result name="succes">/demo1/success.jsp</result>
(3)编写跳转页面
在demo1下新建succes.jsp
内容如下:
<h2>点击后页面跳转成功!</h2>
(4)再一次操作第8步,点击就能跳转啦
10.项目结构