1.Struts2介绍 以及 它的6个主要优点
2.搭建 Struts2的开发环境
第一步:引入 jar 包 (只需要引入几个主要的jar包)将下面列举的几个jar包放到项目的lib目录下即可
第二步:编写配置文件 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="yinger" namespace="/test" extends="struts-default">
<action name="helloworld" class="com.yinger.HelloWorld" method="hello">
<result name="helloworld">/WEB-INF/page/hello.jsp
</result>
</action>
</package>
<!-- Add packages here -->
</struts>
第三步:编写web.xml 该文件放在 WEB-INF 目录下
实例:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<display-name></display-name>
<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>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
这里要注意使用的struts的版本问题:filter-class 是不同的
发布并启动Tomcat服务器,如果看到struts的配置文件加载了并且没有出错就说明配置成功了
3.第一个应用的开发
按照上面的介绍搭建好开发环境,并按照实例编写好web.xml和struts.xml
以下是对于 struts.xml 中的 package的内容的解释
4.开发过程讲解
第一步:编写wbe.xml和struts.xml:同上
第二步:编写Java类,编写方法
package com.yinger;
public class HelloWorld {
private String msg;
public String getMessage() {
return msg;
}
public String execute(){
msg = "My first struts2 application!";
return "success";
}
}
第三步:编写Jsp,然后测试结果
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'helloworld.jsp' starting page</title>
</head>
<body>
This is my JSP page. <br>
${message }
</body>
</html>
文件目录结构如下:
测试结果:
引用:
代码是如何工作的?
你的浏览器向Web服务器发送了的http://localhost:8080/struts/test/helloworld(注:struts为部署在Tomcat中的的项目名称)的URL请求后,服务器做了如下工作:
1. 容器接收到了Web服务器对资源HelloWorld.action的请求,根据web.xml中的配置,服务器将包含有.action后缀的请求转到org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter类进行处理。这个FilterDispatcher是框架的一个进入点;
2. 框架在struts.xml配置文件中找到名为helloworld的action对应的类。框架初始化该Action并且执行该Action类的execute方法;
3. execute方法将信息放入message变量中,并返回成功。框架检查配置以查看当返回成功时对应的页面。框架告诉容器来获得请求返回的结果页面hello.jsp;
4. 在hello.jsp执行完后,<s:property value="message" />标签调用HelloWorld的Action类中的getMessage方法来获得message的值,并将合并了值的页面呈现给用户;
本例中是使用 ${message }
5. 一个纯粹的HTML页面显示在用户的浏览器上。
到此,第一节结束,谢谢阅读!