【ssh框架】-- 首次使用struts2

453 阅读4分钟

本文将介绍两个内容:
    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.项目结构

到这里Struts2的入门与第一个测试类就完成啦!