【Struts】Struts2簡介及實現使用者登入程式碼示例
Struts2是由傳統的Struts1和WebWork兩個經典的MVC框架發展起來的,無論是從Struts2設計的角度來看,還是從Struts2在實際專案中的易用性來看,Struts2都堪稱是一個非常優秀的MVC框架。
與傳統的Struts1相比,Struts2允許使用普通的、傳統的Java物件作為Action;Action的execute()方法不再與Servlet API耦合,因而更易於測試;支援更多的檢視技術;基於AOP思想的攔截器機制,提供了極好的可擴充套件性;更強大、更易用的輸入校驗功能;並且將Ajax技術整合到了框架裡面等等,這些都是Struts2具有更大的吸引力的原因所在。
下面我們來看一張經典的Struts2架構圖:
對比著上面的圖片,我們一起來簡單瞭解下Struts2的執行流程: 所有請求被Struts2核心控制器FilterDispather攔截
根據ActionMapper提供的資訊決定如何進行下一步
ActionMapper主要依賴Struts2的配置檔案struts.xml
接下來為每個Action建立Action代理類ActionProxy
執行ActionProxy的execute()方法
在執行execute()方式時會逐個執行Struts2中的攔截器
執行完成攔截器後才會真正執行目標Action
目標Action需要返會轉向的檢視名稱
ActionProxy取得檢視名稱物件Result完成轉向
生成resposne物件完成本次請求
瞭解了Struts2框架的整體內容和執行流程,依舊以一個使用者登入的示例來說明如何使用Struts2進行專案開發。
第一步:在MyEclipse中建立Java Web專案(需要注意的是Struts2需要執行在JRE1.5及其以上版本的環境中)
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<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>
</pre><p><span style="font-size:18px"><span style="white-space:pre"></span>第四步:提供struts2的配置檔案struts.xml,放到原始碼檔案src下</span></p><p><span style="font-size:18px"></span></p><p><span style="font-size:18px"><span style="white-space:pre"></span>第五步:編寫Action原始碼檔案和JSP頁面,進行程式開發</span></p><p><span style="font-size:18px"> LoginAction</span></p><p><span style="font-size:18px"></span></p><pre code_snippet_id="1667602" snippet_file_name="blog_20160430_2_170036" name="code" class="java">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() throws Exception {
if ("admin".equals(username) && "admin".equals(password)) {
return "success";
}else {
return "error";
}
}
}
login.jsp
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<!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=GB18030">
<title>Insert title here</title>
</head>
<body>
<form action="login.action">
使用者:<input type="text" name="username"><br>
密碼:<input type="password" name="password"><br>
<input type="submit" value="登入">
</form>
</body>
</html>
login_success.jsp
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<!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=GB18030">
<title>Insert title here</title>
</head>
<body>
${username },登入成功
</body>
</html>
login_error.jsp
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<!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=GB18030">
<title>Insert title here</title>
</head>
<body>
登入失敗
</body>
</html>
第六步:將開發好的Action類和JSP頁面配置到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>
<!-- 需要繼承struts-default包,這樣就擁有的最基本的功能 -->
<package name="struts2" extends="struts-default">
<action name="login" class="com.bjpowernode.struts2.LoginAction">
<result name="success">/login_success.jsp</result>
<result name="error">/login_error.jsp</result>
</action>
</package>
</struts>
第七步:部署到Tomcat中,啟動並且執行程式小結一下;
從上面的例子中,不難發現,Struts2框架在實際開發中更加的便捷和高效,並且在Struts1的基礎上有了很大的提升,但是Struts2依然是一個基於請求驅動的MVC框架,其核心設計來自於另一個MVC框架WebWork,是對WebWork的一個升級,並且與Struts1的體系結構有很大的區別,具體有哪些不同的地方,敬請期待下篇。
相關文章
- JSP程式設計實現簡單使用者7天內免登入及示例程式碼JS程式設計
- 【Struts】:Struts1簡介及第一個程式碼示例
- struts2實現登入後跳轉回本頁面
- JSP程式設計實現使用者自動登入功能示例程式碼JS程式設計
- 菜鳥學SSH(一)——Struts實現簡單登入(附原始碼)原始碼
- struts2令牌實現原始碼JSP原始碼JS
- Struts2中攔截器的簡單實現
- struts2入門
- Struts2實現訪問控制
- iOS逆向——Method Swizzle及WeChat註冊、登入程式碼示例iOS
- 三方登入原理及後端示例程式碼後端
- struts2簡明教程
- IText簡介及示例
- Struts2教程1:第一個Struts2程式
- Struts2遠端程式碼執行漏洞檢測的原理和程式碼級實現
- 在struts2中實現去掉字尾及url重寫
- Struts2+AJAX+JQuery 實現使用者登入與註冊功能。jQuery
- Struts2攔截器實現原理
- vue 實現原理及簡單示例實現Vue
- Struts2幾個常用標籤的主要屬性及示例(一)
- vue實現簡訊驗證碼登入Vue
- CNN介紹及程式碼實現CNN
- BiLSTM介紹及程式碼實現
- CRC校驗原理簡介及C程式碼實現說明C程式
- SSM專案搭建及實現簡單的登入SSM
- (三)struts2進階之實現Action
- Struts2基礎入門
- uniapp 實現簡訊驗證碼登入APP
- 遊戲陪玩原始碼的登入方式,簡訊驗證碼登入的實現遊戲原始碼
- 在struts2框架中實現手動處理輸入驗證框架
- 【Struts2】:攔截器實現方法過濾
- ajax實現的無重新整理使用者登入例項程式碼
- css3實現的使用者登入表單程式碼例項CSSS3
- Struts2(一) 學習興趣、框架簡介、框架優缺點框架
- Java 語言實現簡易版掃碼登入Java
- 掃碼登入認證技術原理介紹及實踐
- Struts2中一個簡單的入門例項
- Python自動登入QQ的實現示例Python