Struts是Apache基金組織中Jakarta項目組的一個開源(Open Source)項目,主要就是實現(xiàn)了MVC設(shè)計模式,在Struts中有自己的控制器(ActionServlet),同時也提供了各種常用的頁面標(biāo)簽庫以減少JSP頁面中的Scriptlet代碼,Struts實際上就屬于在傳統(tǒng)技術(shù)上發(fā)展起來的一種新的應(yīng)用模式,其操作的本質(zhì)依然還是JSP、Servlet、JavaBean等技術(shù)的應(yīng)用,Struts的體系結(jié)構(gòu)圖如下。
MVC與Struts各個組件的對應(yīng)關(guān)系
理解以上以后我們開始學(xué)習(xí)配置Struts開發(fā)環(huán)境Struts屬于一套單獨的開發(fā)包,所以首先要從Apache的Jakart項目(http://jakarta.apache.org/)上下載最新的Struts開發(fā)包(http://struts.apache.org/),本人使用的是Struts 2.1的開發(fā)包,(struts-2.1.8.1-all.jar)將Struts開發(fā)包中的lib目錄下的全部*.jar包拷貝到%TOMCAT_HOME%/lib目錄之中,也可使用myeclipse工具直接導(dǎo)入Struts包,下圖是包目錄
然后配置web.xml文件<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <display-name>Struts1</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>*.action</url-pattern> </filter-mapping></web-app>
配置struts-config.xml文件內(nèi)容下面具體講解
開發(fā)第一個Struts程序
web.xml如上
struts-config.xml
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"><struts><constant name="struts.devMode" value="true" /> <!-- 指定每次請求到達,重新加載資源文件 --> <constant name="struts.i18n.reload" value="true"/> <!-- 指定每次配置文件更改后,自動重新加載 --> <constant name="struts.configuration.xml.reload" value="true"/> <!-- 把主題配置為simple --> <constant name="struts.ui.theme" value="simple"/> <package name="Struts" extends="struts-default" namespace="/"> <action name="login" class="com.oumyye.action.LoginAction"> <result name="success">/success.jsp</result> </action> </package></struts>
LoginAction.java
package com.oumyye.action;import javax.servlet.http.HttpServletRequest;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;/** * * @author 偶my耶 * action */public class LoginAction extends ActionSupport { /** * */ HttpServletRequest request = ServletActionContext.getRequest(); private static final long serialVersionUID = 1L; @Override public String execute() throws Exception { String name=request.getParameter("user_name");//獲得user_name request.setAttribute("name",name);//設(shè)值 return SUCCESS; }}jsp界面
index.jsp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <body> <form action="login.action"> 姓名:<input type="text" name="user_name"> <input type="submit" value="跳轉(zhuǎn)"> </form> </body></html>
success.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title> </head> <% String name=(String)request.getAttribute("name"); %> <body> 歡迎<%=name %> 跳轉(zhuǎn)成功!! </body></html>Struts工作原理

新聞熱點
疑難解答