Struts 框架 Action 普通Java類替代Servlet | |
Intercepter 普通Java類替代 Filter 過濾器 | |
配置模式開發(配置文件) | |
專門應用於 控制器層 |
Struts2開發的標準流程 | |
資源:1、框架所需要的jar文件庫 | |
2、框架的核心配置文件 | |
步驟1:創建一個 Web Project ,(特別注意,Web Module Version一定選擇 2.5版本,禁用默認的3.0) | |
步驟2:導入框架的jar包文件庫。(導入到項目中的/WEB-INF/lib文件夾下) | |
步驟3:在src目錄下創建一個“資源文件夾”,將框架的核心配置文件模板放入到該文件夾下 | |
步驟4:修改項目web.xml文件,添加Struts2框架的請求過濾器,讓網絡項目的所有請求同意使用Struts2框架進行過濾處理 | |
Action 動作類標準開發流程 | |
步驟1:創建一個程序包package | |
企業標準:四個部分組成 | |
公司/組織的性質 名稱 項目名稱 包名稱 | |
com org edu chinasofti 工程同名 包名稱.子包的名稱 | |
包名稱必須小寫,中間使用英文的.分隔 | |
步驟2:創建Action動作處理類(Java類,該類必須繼承 ActionSupport父類) | |
類的命名規範:駱駝命名法(駝峯命名發) | |
步驟3:在struts.xml核心配置文件中註冊配置Action動作類 |
web.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>
sturts.xml
<?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>
<constant name="struts.devMode" value="false"/>
<constant name="struts.encoding.i18n" value="UTF-8" />
<constant name="struts.DynamicMethodInvocation" value="false" />
<package name="default" extends="struts-default" namespace="/">
<action name="sayHelloAction" class="com.kang.action.HelloHandler"/>
<action name="register" class="com.kang.action.RegisterAction"/>
<action name="login" class="com.kang.action.LoginAction">
<result name="success" >jsp/success.jsp</result>
<result name="error">/jsp/login.jsp</result>
</action>
</package>
</struts>
Action
public class LoginAction extends ActionSupport {
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;
}
@Override
public String execute() throws Exception {
ActionContext actionContext = ActionContext.getContext();
Map session = actionContext.getSession();
Object nmerr=session.get("error");
if(nmerr!=null){
int me=(int) nmerr;
if(me==3){
System.out.println("賬號已鎖定");
return NONE;
}
}
System.out.println(username);
System.out.println(password);
if("admin".equals(username)&&"123".equals(password)){
return SUCCESS;
}else{
Object err=session.get("error");
if(err==null){
session.put("error", 1);
}else{
int e=(int) err;
++e;
session.put("error",e );
}
return ERROR;
}
}
}
<action name="login" class="com.kang.action.LoginAction">
<result name="success" >jsp/success.jsp</result>
<result name="error">/jsp/login.jsp</result>
</action>
name爲訪問路徑 :login.action
<form name="hello" action="login" method="post">
請輸入你的賬號:<input type="text" name="username"><br/>
請輸入你的密碼:<input type="password" name="password"><br/>
<input type="submit" value="提交">
</form>
class爲action類的地址
result 爲返回結果所跳轉的界面 name指action方法中返回的值
lib如下