使用Eclipse搭建Struts2框架

本文轉自http://blog.csdn.net/liaisuo/article/details/9064527

今天在Eclipse搭建了Struts2 框架,并完成了一個很簡單的例子程序。

搭建好的全局圖如下:

第一步:在http://struts.apache.org/download.cgi下載Struts2的最新版即下載Full Distribution,這是Struts2的完整版

第二步:解壓下載的壓縮包。在struts-2.3.14.3 -> lib路徑下拷貝出上圖所示的8個jar包,放入java工程下的lib目錄內。

第三步:在web.xml配置文件中,配置Struts2的核心Filter。代碼如下:

<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>

第四步:為了讓Struts運行起來,在src目錄下創建Struts.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>
<package name="test" extends="struts-default">
<action name="login" class="com.rankexam.control.LoginAction">
<!-- 定義三個邏輯視圖和物理資源之間的映射 -->
<result name="input">/Login.jsp</result>
<result name="error">/Error.jsp</result>
<result name="success">/Welcome.jsp</result>
</action>
</package>
</struts>

第五步:創建處理用戶請求的Action類,該類繼承于ActionSupport類。代碼如下:

package com.rankexam.control;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport{
/**
* 默認版本序列號
*/
private static final long serialVersionUID = 1L;

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(getUsername().equals("baidu") && getPassword().equals("baidu")){
ActionContext.getContext().getSession().put("user", getUsername());
return "success";
}else{
return "error";
}
}
}

第六步:完成Welcome、Error、Login頁面的編寫。代碼如下:

1.Login.jsp頁面代碼

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="S" uri="/struts-tags" %>
<!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=UTF-8">
<title>登錄頁面</title>
</head>
<body>
<S:form action="login" method="post">
<S:textfield name="username" label="用戶名"></S:textfield>
<S:password name="password" label="密碼"></S:password>
<S:submit text="登錄"></S:submit>
</S:form>
</body>
</html>

2.Welcome.jsp頁面代碼

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="S" uri="/struts-tags" %>
<!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=UTF-8">
<title>登錄成功頁面</title>
</head>
<body>
${sessionScope.user}你好,您已經登錄!
</body>
</html>

3.Error.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">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>登錄失敗頁面</title>
</head>
<body>
對不起,登錄失敗!
</body>
</html>

經過上述流程,就完成了在Eclipse中搭建Struts2框架及其簡單的使用。

轉載于:https://www.cnblogs.com/gorechen/p/4084188.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/375508.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/375508.shtml
英文地址,請注明出處:http://en.pswp.cn/news/375508.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

打印到類陣列的給定序列的所有排列的n皇后問題

題目例如以下&#xff1a;Given a collection of numbers, return all possible permutations. For example,[1,2,3] have the following permutations:[1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], and [3,2,1]. 分析&#xff1a;假設僅僅是求排列數非常好算&#xff0c;可是…

asp網絡編程:ASP如何獲取客戶端真實IP地址

要想透過代理服務器取得客戶端的真實IP地址&#xff0c;就要使用 Request.ServerVariables("HTTP_X_FORWARDED_FOR") 來讀取。不過要注意的事&#xff0c;并不是每個代理服務器都能用 Request.ServerVariables("HTTP_X_FORWARDED_FOR") 來讀取客戶端的真實…

autoLayout自動布局

autoLayout 有兩個核心概念&#xff1a; 約束&#xff1a;就是對控件進行高度&#xff0c;寬度&#xff0c;相對位置的控制 參照&#xff1a;多個控件時&#xff0c;一個或多個控件以其中的一個為基準進行高度&#xff0c;寬度&#xff0c;位置的設置 當選擇了 use auto layout…

C++11實現自旋鎖

參見 《深入理解C11》 #include <thread> #include <atoimic> #include <iostream> #include <unistd.h> using namespace std;std::atomic_flag lock ATOMIC_FLAG_INIT; void f(int n) {while (lock.test_and_set(std::memory_order_acquire)) { //…

JDBC連接(MySql)數據庫步驟,以及查詢、插入、刪除、更新等十一個處理數據庫信息的功能。...

主要內容&#xff1a; JDBC連接數據庫步驟。一個簡單詳細的查詢數據的例子。封裝連接數據庫&#xff0c;釋放數據庫連接方法。實現查詢&#xff0c;插入&#xff0c;刪除&#xff0c;更新等十一個處理數據庫信息的功能。&#xff08;包括事務處理&#xff0c;批量更新等&#x…

atitit.軟件gui按鈕and面板---os區-----軟鏈接,快捷方式

atitit.軟件gui按鈕and面板---os區-----軟鏈接,快捷方式 1. 硬鏈接 1 2. 二、軟鏈接&#xff08;符號鏈接&#xff09;LN 1 3. 三、刪除鏈接 2 4. 區別 2 5. 參考 3 1. 硬鏈接 系統中,內核為每一個新創建的文件分配一個Inode(索引結點),每個文件都有一個惟一的inode號。文件屬性…

前K個高頻元素

給定一個非空的整數數組&#xff0c;返回其中出現頻率前 k 高的元素。 示例 1: 輸入: nums [1,1,1,2,2,3], k 2 輸出: [1,2] 示例 2:輸入: nums [1], k 1 輸出: [1]提示&#xff1a; 你可以假設給定的 k 總是合理的&#xff0c;且 1 ≤ k ≤ 數組中不相同的元素的個數。…

重拾qt

最近公司又接了一個煤礦的項目&#xff0c;要寫個小程序摘取數據&#xff0c;我是公司唯一c程序員&#xff0c;本來搞ios搞好好的&#xff0c;現在又得重拾半年沒摸得qt了。呵呵。。。呵呵呵。 這里只記錄這次小程序的一些小的總結吧。。 1、中文字符&#xff1a; 函數&#xf…

前K個高頻單詞

給一非空的單詞列表&#xff0c;返回前 k 個出現次數最多的單詞。 返回的答案應該按單詞出現頻率由高到低排序。如果不同的單詞有相同出現頻率&#xff0c;按字母順序排序。 示例 1&#xff1a; 輸入: ["i", "love", "leetcode", "i&quo…

thinkphp 刪除該表的最后一行

問題敘述性說明&#xff1a; 文章連接動態連接表格&#xff0c;因為有被添加。有必須刪除。動態添加到表格這似乎有點不合理。它應該只被添加到表格行。而不是增加一個新表格。發布完整的代碼在這里&#xff0c;加入表格新行和刪除表格最后一行。<html><script src&qu…

hdu 1421 dp

搬寢室 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 18191 Accepted Submission(s): 6170 Problem Description搬寢室是很累的,xhd深有體會.時間追述2006年7月9號,那天xhd迫于無奈要從27號樓搬到3號樓,因為1…

socket 編程:回射客戶/服務程序

參考 《Unix 網絡編程》 github 地址 unp.h #include <stdio.h> #include <unistd.h> #include <arpa/inet.h> #include <string.h> #include <sys/socket.h> #include <stdlib.h> #include <errno.h> #include <sys/wait.h&g…

C++學習筆記25,析構函數總是會宣布virtual

為了永遠記住析構函數聲明virtual----><<effective c>> 為這句話不一定對,但無需質疑的是這句話是非常實用的. 查看以下的樣例: #include <iostream> #include <string> using namespace std; class B{ public:~B(){cout<<"base is dest…

BZOJ-1019 漢諾塔

其實只要非常了解漢諾塔的原理&#xff0c;或者是能計算出對于隨機數據一定有解的證明&#xff0c;那么這道題就是水題了。 【Code】轉載于:https://www.cnblogs.com/NanoApe/p/4396718.html

C++ 構建最小堆、最大堆

堆的屬性 完全二叉樹每個節點的值都大于&#xff08;最大堆&#xff09;或都小于&#xff08;最小堆&#xff09;子節點的值 堆只是一種數據的組織形式&#xff0c;存儲結構可以用數組&#xff0c;在構建堆的過程中&#xff0c;可以使用完全二叉樹的性質求父子節點的下標。 …

那么溫暖http合約,入門。

簡介 HTTP是一個屬于應用層的面向對象的協議&#xff0c;因為其簡捷、高速的方式。適用于分布式超媒體信息系統。它于1990年提出。經過幾年的使用與發展&#xff0c;得到不斷地完好和擴展。眼下在WWW中使用的是HTTP/1.0的第六版&#xff0c;HTTP/1.1的規范化工作正在進行之中&a…

數組中第K個最大元素

在未排序的數組中找到第 k 個最大的元素。請注意&#xff0c;你需要找的是數組排序后的第 k 個最大的元素&#xff0c;而不是第 k 個不同的元素。 示例 1: 輸入: [3,2,1,5,6,4] 和 k 2 輸出: 5示例 2: 輸入: [3,2,3,1,2,4,5,5,6] 和 k 4 輸出: 4說明: 你可以假設 k 總是有…

各大互聯網公司2014前端筆試面試題–JavaScript篇

很多面試題是我自己面試BAT親身經歷碰到的。整理分享出來希望更多的前端er共同進步吧&#xff0c;不僅適用于求職者&#xff0c;對于鞏固復習js更是大有裨益。 而更多的題目是我一路以來收集的&#xff0c;也有往年的&#xff0c;答案不確保一定正確&#xff0c;如有錯誤或有更…

iOS:蘋果企業證書通過網頁分發安裝app

本文轉載至 http://blog.sina.com.cn/s/blog_6afb7d800101fa16.html 蘋果的企業級證書發布的應用&#xff0c;是不用設備授權即可直接安裝&#xff0c;并且不限設備上限。為了方便分發&#xff0c;蘋果有協議實現通過網頁鏈接直接下載安裝企業級的應用。 基本的原理就是在生成企…

這道題很難

請編寫一個函數&#xff0c;使其可以刪除某個鏈表中給定的&#xff08;非末尾&#xff09;節點。傳入函數的唯一參數為 要被刪除的節點 。 現有一個鏈表 – head [4,5,1,9]&#xff0c;它可以表示為: 示例 1&#xff1a; 輸入&#xff1a;head [4,5,1,9], node 5 輸出&a…