1、Struts简介和下载
Apache Struts is a free, open-source, MVC framework for creating elegant, modern Java web applications. It favors convention over configuration(约定大于配置), is extensible(可扩展) using a plugin architecture, and ships with plugins to support REST, AJAX and JSON.
1.1、Struts官网
1.2、Struts下载
http://struts.apache.org/download.cgi
在这里,我下载的是2.3.29版本,下载了两个,分别是:struts-2.3.29-all.zip和struts-2.3.29-min-lib.zip。
struts-2.3.29-all.zip里面的内容比较全。
但是在做下面的入门案例的时候,只要有struts-2.3.29-min-lib.zip就可以了。
2、Struts入门
基本步骤:
(1)引入jar包(配置环境)
(2)在WEB-INF/web.xml文件中添加配置
(3)在src目录下添加struts.xml文件
(4)添加自己的HelloWorld类,继承ActionSupport类,覆写父类的execute()方法。
(5)在struts.xml文件中对HelloWorld类进行注册
(6)创建相关的JSP页面
(7)部署网站,并进行访问
2.1、引入jar包
解压struts-2.3.29-min-lib.zip文件,得到所有需要的jar包。
将所有的jar拷贝到WEB-INF/lib目录下。
2.2、web.xml文件中添加配置
需要添加的配置如下:
<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>
完整的web.xml文件如下:
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" 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_2_5.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>
2.3、在src目录下添加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> <constant name="struts.enable.DynamicMethodInvocation" value="false" /> <constant name="struts.devMode" value="true" /> </struts>
2.4、添加自己的HelloWorld类
HelloWorld.java的代码如下:
package com.rk.struts2.a_basic; import com.opensymphony.xwork2.ActionSupport; public class HelloWorld extends ActionSupport { public HelloWorld() { System.out.println("我是HelloWorld类的构造方法!"); } @Override public String execute() throws Exception { return "success"; } }
注意:在execute方法中返回了"success"字符串,在下一步中会用到"success"方法。
2.5、在struts.xml文件中对HelloWorld类进行注册
添加的配置如下:
<package name="default" namespace="/" extends="struts-default"> <action name="HelloWorld" class="com.rk.struts2.a_basic.HelloWorld"> <result name="success"> /Success.jsp </result> </action> </package>
在上面的配置中,关注的重点是action标签内配置:当result的name为"success"时,就跳转到/Success.jsp页面。(在后面会添加Success.jsp文件)
完整的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> <constant name="struts.enable.DynamicMethodInvocation" value="false" /> <constant name="struts.devMode" value="true" /> <package name="default" namespace="/" extends="struts-default"> <action name="HelloWorld" class="com.rk.struts2.a_basic.HelloWorld"> <result name="success"> /Success.jsp </result> </action> </package> </struts>
2.6、创建相关的JSP页面
在WebRoot目录下,添加Success.jsp文件
里面的内容可以随便写。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!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=UTF-8"> <title>Hi</title> </head> <body> 你好啊!!! </body> </html>
2.7、部署网站,并进行访问
将网站进行部署
然后访问网站:
http://localhost:8080/ssh/HelloWorld.action
会看到如下结果:
多次访问后,在MyEclipse的Console窗口中可以看到如下输出:
“我是HelloWorld类的构造方法!”进行了多次输出,这就表明一件事:每次请求,都会创建一个HelloWorld类的对象。在这一点上,它和Servlet是不同的:Servlet只创建一个实例,在第一次访问时创建,后续访问,只调用它的的service方法。