Struts簡單入門

su1216 8年前發布 | 2K 次閱讀 Java Struts2

本章主要講解Struts2簡單入門,第一個程序的建立


全部代碼下載:
Github鏈接:鏈接https://github.com/wpeace1212/javaBlog/tree/master/struts2Demo
寫文章不易,歡迎大家采我的文章,以及給出有用的評論,當然大家也可以關注一下我的github;多謝;

1.Struts2介紹:

  1. 簡介:
    Struts 2以WebWork為核心,采用攔截器的機制來處理用戶的請求,這樣的設計也使得業務邏輯控制器能夠與ServletAPI完全脫離開,所以Struts 2可以理解為WebWork的更新產品。主要用在MVC模式的控制層;
    01
Struts2框架預先實現了一些功能:
1. 請求數據自動封裝
2. 文件上傳的功能
3. 對國際化功能的簡化
4. 數據效驗功能
……………….

2.下載Struts2的jar包
下載地址:http://archive.apache.org/dist/struts/binaries/
我用的是struts-2.3.16.1-all.zip這個版本,我的下載地址為:http://download.csdn.net/detail/peace1213/9371320

2.Struts2的Hello peace:

  1. 第一步建立動態web工程并引入jar包:
    建立工程不做介紹;如果只是簡單的開發沒有必要到下載的文件中將所有lib的文件引入,引入簡最小的包就可以了。
    解壓剛才下載的壓縮包struts-2.3.16.1-all.zip,在apps文件夾下有個struts2-blank.war包,打開它,到WEB-INF/lib目錄下,如下圖所示,即為所需的最小包。包含的包應該和具體的Struts版本有關。
    02
  2. 配置工程的web.xml文件:
    打開web.xml文件增加一個過濾器的配置,配置Struts2控制器的核心過濾器StrutsPrepareAndExecuteFilter
    注意:如果你使用的是2.1.3以前的版本配置的是FilterDispatcher,但是從2.1.3版本后此類已經過時:
    配置方式如下:
<?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" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>struts2Demo</display-name>
  <!-- Struts2的配置 -->
  <filter>
  <!-- 配置過濾器的名字 -->
    <filter-name>struts2</filter-name>
  <!-- 配置核心過濾器類 -->
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
<!--配置要攔截的URL,辭去配置全部攔截 -->
  <filter-mapping>
      <filter-name>struts2</filter-name>
      <url-pattern>/*</url-pattern>
  </filter-mapping>
</web-app>

3.編寫action類
Struts2的action類不需要實現任何接口,只要是一個包含execute方法的普通類(POJO)就行;當執行完必要的攔截器,程序會執行execute方法
action類如下:

public class HelloAction {
    //定義屬性用于獲得請求參數
    private String name;
    private String pass;
    public void setName(String name) {
        this.name = name;
    }
    public void setPass(String pass) {
        this.pass = pass;
    }
    //定義action類的execute方法
    public String execute()throws Exception{
        if("peace".equals(name)&&"123456".equals(pass)){
            return "success";

        }
        else{
            return "error";
        }
    }
}

4.配置struts.xml
在src文件夾右擊建立struts.xml文件部署的時候會自動發布到WEB-INF/classes目錄下,這是struts默認會加載的文件,用于配置struts2需要調用的action。文件如下:建議直接復制粘貼:

<?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>
<!-- 配置一個package 必須繼承struts-default-->
<package name="struts2" extends="struts-default">
    <!-- 配置action,名字hello是訪問url使用的:hello.action-->
      <action name="hello" class="com.rlovep.hello.HelloAction">
         <!-- 如果為success就跳轉到success.jsp -->
         <result name="success">/success.jsp</result>
          <!-- 如果為error就跳轉到error.jsp -->
         <result name="error">/error.jsp</result>
      </action>
</package>
</struts>

5.寫jsp頁面:此步其實也可以省略;
登陸頁面就是簡單的表單提交:注意提交的動作需要為hello

<%@ 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>用戶登陸</title>
</head>
<body>
<!-- 注意提交的動作需要為hello -->
<form action="hello" method="get">
   用戶名:<input type="text" name="name" /><br/>
   密碼:<input type="password" name="pass"/>
  <input type="submit" value="提交"/>
</form>
</body>
</html>

成功頁面和錯誤頁面如下:

##成功頁面:
<title>success</title>
</head>
<body>
<% String name=request.getParameter("name"); out.write(name+"登陸成功"); %>
</body>
##錯誤頁面:
<body>
賬戶名或密碼錯誤
</body>

7.部署運行和測試:
第一種方法:直接在瀏覽器輸入action的請求參數,顯示如下:
http://localhost:8080/struts2Demo/hello.action?name=peace&pass=123456
03
第二種方方法:先進入登陸頁面,在提交.現實如下:
04
05
賬號密碼錯誤的方式:
06

好的本章介紹到這里
來自伊豚wpeace(rlovep.com)

 本文由用戶 su1216 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!