一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術|正則表達式|

服務器之家 - 編程語言 - JAVA教程 - Struts2開發環境搭建 附簡單登錄功能實例

Struts2開發環境搭建 附簡單登錄功能實例

2020-07-07 12:45dige1993 JAVA教程

這篇文章主要介紹了Struts2開發環境搭建,為大家分享一個簡單登錄功能實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下

首先是搭建Struts2環境。

第一步 下載Struts2
去Struts官網 http://struts.apache.org/ 下載Struts2組件。
截至目前,struts2最新版本為2.3.1.3,下載struts-2.3.16.3-all.zip,解壓,放著。

第二步 新建Web Project并導入jar包
在MyEclispe中新建Web Project,然后找到解壓的Struts2包,在里面apps文件夾下找到struts2-blank.war,解壓這個WAR文件,將里面WEB-INF\lib目錄下的jar文件全部復制到新建的Web Project的WebRoot\WEB-INF\lib目錄下。

第三步 配置web.xml
在項目的WebRoot\WEB-INF\目錄下找到web.xml文件,沒有就新建一個web.xml文件,在里面添加如下代碼:

?
1
2
3
4
5
6
7
8
<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.xml文件的示例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?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">
 <display-name>web1</display-name>
 <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>
 <welcome-file-list>
  <welcome-file>index.html</welcome-file>
  <welcome-file>index.htm</welcome-file>
  <welcome-file>index.jsp</welcome-file>
  <welcome-file>default.html</welcome-file>
  <welcome-file>default.htm</welcome-file>
  <welcome-file>default.jsp</welcome-file>
 </welcome-file-list>
</web-app>

第四步 配置struts.xml
在項目的src目錄下找到struts.xml文件,沒有就新建一個,里面代碼如下:

?
1
2
3
4
5
6
7
8
9
10
<?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 name="main" extends="struts-default">
  <!-- 在這里面配置action -->
 </package>
</struts>

到此,Struts2開發環境搭建完成。

下面演示一個登錄頁面實例

第一步 修改Index.jsp
修改Index.jsp,做出登錄界面。
下面是index.jsp的代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
 
<!DOCTYPE HTML>
<html>
 <head>
 <title>登錄</title>
 </head>
 
 <body>
 <form action="login" method="post">
 登錄<br />
 賬號:<input type="text" name="username" /><br />
 密碼:<input type="password" name="password" /><br />
 <input type="submit" value="登錄" />
 </form>
 </body>
</html>

下面是Index.jsp在瀏覽器中的效果:

Struts2開發環境搭建 附簡單登錄功能實例

第二步 編寫驗證賬戶和密碼的類
新建LogAction類,讓其繼承com.opensymphony.xwork2.ActionSupport類,注意到index.jsp中兩個輸入框的name屬性分別是username和password,所以LogAction類必須包含下面兩個屬性:
private String username
private String password

而且必須寫出他們的get、set方法。

然后,編寫execute方法,在execute方法中驗證賬號和密碼并返回String類型的結果,execute方法會在該Action類被調用的時候自動執行。

下面是LogAction.java的完整代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package com.lidi.struts.action;
 
import com.opensymphony.xwork2.ActionSupport;
 
public class LogAction extends ActionSupport {
 
 private static final long serialVersionUID = 1L;
 private String username;//賬號
 private String password;//密碼
 
 //getters & setters
 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;
 }
 
 /**
  * execute方法會在該Action類被調用的時候自動執行,
  * 如果 賬號="admin"并且密碼="123456",就返回SUCCESS
  * 否則返回ERROR
  */
 public String execute(){
  if(username.equalsIgnoreCase("admin") && password.equalsIgnoreCase("123456")){
   return SUCCESS;
  }
  else
   return ERROR;
 }
}

上面的返回SUCCESS和返回ERROR什么意思呢,后面再講。

第三步 配置struts.xml
第二步編寫了Action類,第三步將該Action配置到struts.xml中,打開struts.xml,在package標簽中添加如下代碼:

?
1
2
3
4
<action name="login" class="com.lidi.struts.action.LogAction">
 <result name="success">success.jsp</result>
 <result name="error">error.jsp</result>
</action>

action標簽的name屬性為login,這個必須與index.jsp中form標簽的action屬性一致,class屬性填寫LogAction類的全稱。

<result name="success">success.jsp</result> 這個標簽的意思是當LogAction類的execute方法返回SUCCESS時,頁面跳轉到success.jsp;同理,<result name="success">success.jsp</result> 這個標簽的意思是當LogAction類的execute方法返回ERROR時,頁面跳轉到error.jsp。

完整的struts.xml代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?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 name="main" extends="struts-default">
  <action name="login" class="com.lidi.struts.action.LogAction">
   <result name="success">success.jsp</result>
   <result name="error">error.jsp</result>
  </action>
 </package>
 
</struts>

這里用到了success.jsp和error.jsp,在項目中新建這兩個文件,success.jsp表示登錄成功后的頁面,上面顯示登錄用的賬戶和密碼,error.jsp表示登錄失敗后的頁面,上面顯示錯誤提示就就好了,他們的代碼分別如下:
success.jsp

?
1
2
3
4
5
6
7
8
9
10
11
12
13
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
 
<!DOCTYPE HTML>
<html>
 <head>
 <title>登陸成功</title>
 </head>
 
 <body>
 歡迎<s:property value="username" />,登錄成功!<br />
 </body>
</html>

<%@ taglib prefix="s" uri="/struts-tags"%>表示引用struts標簽庫
<s:property value="username" />是struts標簽,用以顯示登錄頁面傳遞過來的賬號。

error.jsp

?
1
2
3
4
5
6
7
8
9
10
11
12
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
 
<!DOCTYPE HTML>
<html>
 <head>
 <title>登錄失敗</title>
 </head>
 
 <body>
 登錄失敗!用戶名或密碼錯誤!
 </body>
</html>

第四步 運行
配置struts.xml后要重啟下服務器,然后在瀏覽器中查看效果。
分別輸入賬號和密碼并登錄,如果賬號和密碼分別為admin和123456,頁面就會顯示
歡迎admin,登錄成功!
否則就會顯示
登錄失敗!用戶名或密碼錯誤!

第五步 程序運行原理淺析
用戶填寫賬號密碼并點擊登錄后,瀏覽器會請求form標簽action屬性里面的鏈接,也就是login。服務器中,過濾器攔截到login這個請求,就會查找struts.xml中name=login的action,再找到這個action的class屬性對應的類,也就是com.lidi.struts.action.LogAction,然后實例化一個LogAction對象,并且把參數username和password分別賦給這個對象的username和passwrod屬性(這就是為什么LogAction類的兩個屬性名稱必須和index.jsp中兩個文本框的name屬性分別相同,并且必須添加他們的get和set方法),然后執行這個對象的execute方法,并返回一個字符串,如果返回SUCCESS字符串,就查找struts.xml中對應action的<result>標簽中name屬性等于success的<result>標簽,并將頁面轉到該標簽里面配置的頁面success.jsp上。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://www.cnblogs.com/dige1993/p/4603473.html

延伸 · 閱讀

精彩推薦
  • JAVA教程在Java編程中使用正則表達式

    在Java編程中使用正則表達式

    這篇文章主要介紹了在Java編程中使用正則表達式,注意使用matches()方法檢測一下Java對正則表達式的支持情況,需要的朋友可以參考下 ...

    selFire3592020-01-03
  • JAVA教程Java中反射的一個簡單使用

    Java中反射的一個簡單使用

    一直感覺Java的反射機制很強大,JAVA反射技術在平時我們的開發中雖然很少會用到,但在我們所使用的框架源碼中是經常會用到的。這篇文中就給大家介紹...

    Only凹凸曼4442020-07-05
  • JAVA教程淺談使用java解析和生成JSON

    淺談使用java解析和生成JSON

    在www.json.org上公布了很多JAVA下的json構造和解析工具,其中google-gson和org.json比較簡單,兩者使用上差不多但還是有些區別。下面我們就來分別介紹下用他們...

    hebedich2112020-01-03
  • JAVA教程深入學習Java編程中的字符串的進階使用

    深入學習Java編程中的字符串的進階使用

    這篇文章主要介紹了Java編程中的字符串的高級運用,包括StringBuffer類和StringTokenizer類以及常量池的介紹,需要的朋友可以參考下 ...

    cdai3952020-03-22
  • JAVA教程Java使用遞歸解決算法問題的實例講解

    Java使用遞歸解決算法問題的實例講解

    遞歸算法的實質是把問題分解成規模縮小的同類問題的子問題,然后遞歸調用方法來表示問題的解,這里我們就來看幾個Java使用遞歸解決算法問題的實例講解...

    it_wangxiangpan1262020-05-14
  • JAVA教程java組件fileupload文件上傳demo

    java組件fileupload文件上傳demo

    這篇文章主要為大家詳細介紹了java組件fileupload文件上傳demo ,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    壹龍4832020-06-23
  • JAVA教程java實現讀取、刪除文件夾下的文件

    java實現讀取、刪除文件夾下的文件

    本文給大家分享的是java實現讀取、刪除文件夾下的文件,其中File.delete()用于刪除“某個文件或者空目錄”!所以要刪除某個目錄及其中的所有文件和子目...

    hebedich2212019-12-19
  • JAVA教程java省市級聯下拉菜單實例代碼

    java省市級聯下拉菜單實例代碼

    這篇文章主要為大家詳細介紹了java省市級聯實例代碼,具有一定的參考價值,感興趣的朋友可以參考一下 ...

    舊夢vs逆愛3632020-05-04
主站蜘蛛池模板: 欧美性videossex丝袜 | 亭亭色| 四虎免费入口 | 国产成人综合网亚洲欧美在线 | 欧美一级v片 | 性欧美videosex18嫩 | 国产专区亚洲欧美另类在线 | 九九九九在线视频播放 | 久久热这里只有 精品 | 国产成人久久久精品一区二区三区 | ts人妖国产一区 | 9久热这里只有精品免费 | 国产网站免费在线观看 | 日本久本草精品 | 2015小明台湾永久区域免费 | 四虎影院精品 | 跪在老师脚下吃丝袜脚 | 色哺乳妇hd | 国产精品久久久久这里只有精品 | 2022av小四郎的最新地址 | 亚洲AV无码国产精品色午夜情 | 久久免费观看视频 | 亚洲成色www久久网站 | 久久99热狠狠色一区二区 | 成人在线免费观看视频 | 91麻豆国产精品91久久久 | 男人天堂网页 | 极品主播的慰在线播放 | 国产欧美日韩图片一区二区 | 鸥美三级| 国产福利专区精品视频 | 精品手机在线视频 | 第一次破学生处破 | 成人久久18网站 | sex5·性屋娱乐 | 日韩欧美不卡视频 | 青青青国产精品国产精品美女 | 91yellow吧字幕网zmff7| 美女下面被cao出水 美女污视频 | 睡男神的这件小事小说在线阅读 | 任我鲁精品视频精品 |