配置Struts2(以登入為例)
引言
在瞭解Struts2的基礎上,對Struts2做一次配置。以登入為例。
步驟
引jar包(最常用的共8個)
commons-fileupload-1.2.1.jar 檔案上傳
commons-io-1.3.2.jar 被fileupload所用,上面依賴下面
commons-logging-1.0.4.jar 日誌處理
ognl-3.0.jar (全程object graph notation languag) 表示式語言
struts2-core-2.2.1.1.jar
Javassist-3.7.ga.jar
xwork-core-2.2.1.1.jar
Freemarker-2.3.16.jar
將jar包引用到lib資料夾下。做一個登入的例子。
新建jsp
新建一個jsp,寫一個表單
<span style="font-size:18px;"> <form action = "login">
username:<input type="text" name="username"><br>
password:<input type="password" name="password"><br>
</form></span>
配置struts2的核心過濾器
修改web.xml,配置struts2的核心過濾器
<span style="font-size:18px;"><!-- 配置Struts2的核心過濾器 --> <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></span>
新建struts.xml
在src新建一個struts.xml,並引入文件型別(struts-2.0.dtd)。
<span style="font-size:18px;"><!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd"></span>
按照dtd裡面的規則在裡面配置。
<span style="font-size:18px;"><struts>
<package name="struts2" extends="struts-default">
<action name="login" class="com.tgb.struts2.LoginAction">
<result name="success">/result.jsp</result>
</action>
</package>
</struts> </span>
新建action
在src資料夾下新建包:com.tgb.struts2,然後在包下新建類:LoginAction.java。
<span style="font-size:18px;">package com.tgb.struts2;
public class LoginAction{
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 String execute()
{
return "success";
}
}
</span>
新建result.jsp
在WebRoot下新建一個result.jsp頁面,在body內接收返回資料。
<span style="font-size:18px;">username: ${requestScope.username }<br>
password: ${requestScope.password }<br></span>
執行
到此登入配置完成。執行,輸入使用者名稱和密碼。點選提交。顯示結果。
執行流程說明
首先在login.jsp頁面中請求資源(action="login"),請求路徑匹配了web.xml中的url-pattern(<url-pattern>/*</url-pattern>),納入到過濾器<filter-class>管轄範圍之內(<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>),然後尋找struts.xml.開始尋找裡面的action,然後和login匹配(name="login")。然後例項化後面類(class="com.tgb.struts2.LoginAction")的一個物件,呼叫LoginAction.java中的set方法,將表單提交過來的資訊set到我們的成員變數。緊接著調execute方法,調完之後返回“success”字串。然後傳到struts.xml的一個結果。匹配名字,然後定位到相應的jsp(<result name="success">/result.jsp</result>),然後在request中獲取資訊,至此完成。