程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Struts 2介紹及運行一個簡單的Struts 2程序

Struts 2介紹及運行一個簡單的Struts 2程序

編輯:關於JAVA

一、MVC簡介

概括起來MVC的優點主要有一下方面:

1)多個視圖可以對應一個模型。按MVC設計模式,一個模型對應多個視圖,可以減少代碼的復制及代碼的維護量,一旦模型發生改變, 也易於維護

2)模型返回的數據與顯示邏輯分離。模型數據可以應用任何的顯示技術,例如,使用JSP頁面、Velocity模板或者直接產生excel文檔等

3)應用被分隔為三層,降低了各層之間的耦合,提供了應用的可擴展性

4)控制層的概念也很有效,由於它把不同的模型和不同的視圖組合在一起,完成不同的請求。因此,控制層可以說是包含了用戶請求權 限的概念

5)MVC更符合軟件工程化管理的精神。不同的層各司其職,每一層的組件具有相同的特征,有利於通過工程化和工具化產生管理程序代 碼

對於MVC的概念性的東西也就廢話到此,其關鍵的地方就是各個模塊的實現技術分別是什麼。

二、Struts2簡介

Struts2是一個兼容Struts1和WebWork的MVC框架。

Struts2的簡單處理流程如下:

1)浏覽器發送請求

2)中心處理器根據struts.xml文件查找對應的處理請求的Action類

3)WebWork的攔截器鏈自動對請求應用通用功能,例如:WorkFlow、Validation等功能

4)如果Struts.xml文件中配置Method參數,則調用Method參數對應的Action類中的Method方法,否則調用通用的Execute方法來處理用 戶請求

5)將Action類中的對應方法返回的結果響應給浏覽器

三、Struts2與Struts1對比

................................

四、Struts2與WebWork對比

Struts2實際上就是WebWork2.3,不過,Struts2還是與WebWork有少許的差別:

1)Struts2不再支持內置IOC容器,改用Spring的IOC容器

2)Struts2對於Webwork的一些ajax的特性的標簽改用Dojo進行替換

//----------------------------------------------------

以上內容轉載。

我就只說一句,Struts2是MVC的一種實現,Struts2運行機理相比Struts1有很大的不同,Struts2是基於WebWork的。

下面開始說怎麼去運行一個Struts2程序。所需jar包等,請到http://struts.apache.org下載

1、myeclipse新建web project

2、下載Struts2之後加壓,找到struts2-blank-xxx.war 再解壓

3、找到Struts2-blank中lib,把所有的*.jar復制到 myeclipse所建的web project的lib中

4、配置Struts2的過濾器:在web project的web.xml中配置

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>

5、新建以下JSP頁面

login.jsp

Html代碼

<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<html>
  <head>
   <title>My JSP 'index.jsp' starting page</title>
  </head>
  <body>
  <form action="test.action" method="post">
   用戶名:<input type="text" name="username"><br>
   密碼:<input type="text" name="pwd"><br>
   <input type="submit" value="Submit">
  </form>
  </body>
</html>

ok.jsp

Html代碼

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<html>
  <head>
   <title>My JSP 'ok.jsp' starting page</title>
  </head>
  <body>
  OK!! 
  </body>
</html>

no.jsp

Html代碼

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<html>
  <head>
  <title>My JSP 'no.jsp' starting page</title>
  </head>
  <body>
  NO!! 
  </body>
</html>

6、新建一個類

TestAction.java

Java代碼

/**
  *
  */
package com.struts2.action;

/**
  * @author Administrator
  * --www.bianceng.cn
  */
public class TestAction {
  /**
  * 注意:屬性名字要和jsp頁面的表單元素名字一樣,並且提供getter setter方法
  */
  private String username;
  private String pwd;

  public String execute() {
  if (username.equals(pwd)) {
   return "OK";
  } else {
   return "NO";
  }
  }

  public String getUsername() {
  return username;
  }

  public void setUsername(String username) {
  this.username = username;
  }

  public String getPwd() {
  return pwd;
  }

  public void setPwd(String pwd) {
  this.pwd = pwd;
  }

}

7、在src下建立struts.xml 並配置剛才建立的Action

Xml代碼

<?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="default" namespace="/" extends="struts-default">
  <action name="test" class="com.struts2.action.TestAction">
   <result name="ok">/ok.jsp</result>
   <result name="no">/no.jsp</result>
  </action>
  </package>
</struts>

8、部署運行

//--------------------------------------------------------

總結:TestAction 中要有一個execute方法,並且返回的值在struts.xml中配置過。只要表單提交到TestAction下,Struts2會幫我們按 名接收表單數據。返回的值,代表要跳轉的頁面。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved