初識 Struts2 - 先來生成一個登錄頁面體驗(yàn)一下

1.首先下載Struts2 必要的包(大家可以到我的云盤直接下載 struts2 必要包 如果失效了叶洞,大家也可以自行下載童芹,我會在下面放一張所需包的圖片)

這里寫圖片描述

2.然后在 eclipse 中創(chuàng)建一個 動態(tài)web工程

3.然后大家把之前的下載的包全部拷貝到 WEBContent/WEB-INF/lib/ 這個目錄下面揽乱。(注意:如果你是在我云盤中下載的赎离,其中有兩個文件web.xml 和 struts.xml 不用拷貝到 lib目錄下面剂买,這兩個文件后面會用到

4.然后在 WEB-INF 目錄下面生成一個 web.xml 文件(當(dāng)然你也可以直接將我的文件拷貝到該目錄下)贱呐,如果你是自己生成的,那么你就將下面的代碼拷貝到這個文件中


<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <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-app>

當(dāng)啟動一個web項(xiàng)目時届惋,web容器(這里指tomcat)會去讀取他的配置文件 web.xml髓帽,上面的代碼表示可以攔截到所有的 url 請求。

5.在 java Resources/src/ 目錄下生成一個 struts.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" extends="struts-default" namespace="/">
        <action name="login" class="han.LoginAction">
            <result name="success">success.jsp</result>
            <result name="error">error.jsp</result>
        </action>
    </package>
    
</struts>

上面代碼的意思就是 攔截到有一個 login.action 的請求郑藏,因?yàn)槲覀冊诘卿涰撁胬锩娴?action 中寫的 login,所以攔截器會攔截到這個請求瘩欺,然后執(zhí)行 han 包下面的 LoginAction 類中的 execute方法必盖,根據(jù)這個方法返回的字符串來決定跳轉(zhuǎn)到哪一個頁面(現(xiàn)在我們還沒有創(chuàng)建 han包,它會在后面創(chuàng)建)

6.這時基本把struts2 的環(huán)境給配置好了俱饿。

7.在 WebContent/ 目錄下生成三個 jsp 文件(注意:不要把jsp文件放到 META-INF 和 WEB-INF 下面了)歌粥,以下是三個jsp文件:

loginForm.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">
<%@taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title><s:text name="loginPage"/></title>
</head>
<body>
    <s:form action="login">
        <s:textfield name="username" key="user" />
        <s:textfield name="password" key="pass" />
        <s:submit key="login" value="submit" />
    </s:form>
</body>
</html>

不用管 <s:textfield.../>這個標(biāo)簽是什么意思,為什么與 html 標(biāo)簽不同拍埠,因?yàn)檫@時 struts2 特有的標(biāo)簽

error.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
    wow something wrong
</body>
</html>
success.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
    this is successful page
</body>
</html>

8.在 src 目錄下生成一個 han包(這個包名隨便失驶,只是我這個例子中使用的是這個包而已,大家可以自行取名枣购,但是相應(yīng)在 struts 中 action 的class 也要改變)嬉探,在這個包下面新建一個 LoginAction 類,這個類繼承自 ActionSupport,并且重寫 execute方法棉圈,代碼如下;

package han;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport {

    //定義封裝請求參數(shù)的用戶名和密碼
    private String username;
    private String password;
    
    
    public String getUsername() {
        return username;
    }

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

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public LoginAction() {
        
    }


    //定義處理用戶請求的 execute方法涩堤,這個方法會被程序自動調(diào)用
    public String execute() throws Exception {
        //當(dāng)用戶名與密碼都為 123 的時候,返回成功字符串分瘾,否則返回 錯誤字符串
        if(getUsername().equals("123") && getPassword().equals("123")){
            System.out.println(5656);
            ActionContext.getContext().getSession().put("user", getUsername());
            System.out.println(3344);
            return SUCCESS;
        }
        return ERROR;
    }

}

9.這時基本上已經(jīng)完成了胎围,然后右鍵 loginForm.jsp,運(yùn)行run as命令德召,啟動服務(wù)器痊远,進(jìn)入 登錄頁面,如果用戶名和密碼都輸入 123氏捞,那么進(jìn)入 success.jsp 頁面碧聪,否則進(jìn)入error.jsp頁面。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末液茎,一起剝皮案震驚了整個濱河市逞姿,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌捆等,老刑警劉巖滞造,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異栋烤,居然都是意外死亡谒养,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進(jìn)店門明郭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來买窟,“玉大人丰泊,你說我怎么就攤上這事∈忌埽” “怎么了瞳购?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長亏推。 經(jīng)常有香客問我学赛,道長,這世上最難降的妖魔是什么吞杭? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任盏浇,我火速辦了婚禮,結(jié)果婚禮上芽狗,老公的妹妹穿的比我還像新娘绢掰。我一直安慰自己,他們只是感情好译蒂,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布曼月。 她就那樣靜靜地躺著,像睡著了一般柔昼。 火紅的嫁衣襯著肌膚如雪哑芹。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天捕透,我揣著相機(jī)與錄音聪姿,去河邊找鬼。 笑死乙嘀,一個胖子當(dāng)著我的面吹牛末购,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播虎谢,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼盟榴,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了婴噩?” 一聲冷哼從身側(cè)響起擎场,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎几莽,沒想到半個月后迅办,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡章蚣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年站欺,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡矾策,死狀恐怖磷账,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蝴韭,我是刑警寧澤够颠,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布熙侍,位于F島的核電站榄鉴,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏蛉抓。R本人自食惡果不足惜庆尘,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望巷送。 院中可真熱鬧驶忌,春花似錦、人聲如沸笑跛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽飞蹂。三九已至几苍,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間陈哑,已是汗流浹背妻坝。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留惊窖,地道東北人刽宪。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像界酒,于是被迫代替她去往敵國和親圣拄。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 本文包括: 1毁欣、Struts 2 概述2庇谆、Struts 2 快速入門3、Struts 2 的執(zhí)行流程4署辉、配置 st...
    廖少少閱讀 2,950評論 3 13
  • 概述 什么是Struts2的框架Struts2是Struts1的下一代產(chǎn)品族铆,是在 struts1和WebWork的...
    inke閱讀 2,245評論 0 50
  • Apache Struts 2是一種流行的 Java模型 - 視圖 - 控制器(MVC)框架,成功地結(jié)合了 Web...
    wyude閱讀 346評論 0 0
  • 目錄 1. 什么是Struts2 2. Struts2下載 3. Struts2的目錄結(jié)構(gòu) 4. Struts2中...
    深海魚Q閱讀 975評論 0 16
  • 1983年哭尝,黃家駒通過樂器行的老板認(rèn)識了同為音樂人的鼓手葉世榮哥攘,志同道合的年輕人從那天起走向了人生最為輝煌一段旅程...
    6c7d8c349f45閱讀 459評論 2 2