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页面显示在用户的浏览器上。
到此,第一节结束,谢谢阅读!