【Struts2基礎】——登錄Demo

      前面的文章,介紹了Struts2的工作原理以及與Struts1的區別,理論的東西明白了,下邊就該實踐了。我們以登錄爲例,來進行學習。


項目的總體結構




聲明:採用的Struts2版本爲:struts-2.1.8.1-all


1、首先,創建Java Web項目


2、引入Struts2相關的依賴包,將依賴包拷貝到WEB-INF/lib下



3、在web.xml文件中,配置StrutsPrepareAndExecuteFilter


      新建的JavaWeb項目中,可能不存在web.xml文件,需要我們手動創建。創建完畢後,關於裏邊的配置,我們可以找到下載的Struts2包,然後找到struts-2.1.8.1\apps\struts2-blank-2.1.8.1\WEB-INF下的web.xml文件,裏邊有基本的配置,可以直接拷貝過來。


<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" 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>


4、建立相關的JSP頁面(login.jsp、login_success.jsp、login_error.jsp)


登錄界面:login.sjp

<%@ page language="java" import="java.util.*" 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=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" import="java.util.*" 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=GB18030">
<title>Insert title here</title>
</head>
<body>
	${username },登錄成功
</body>
</html>

登錄失敗界面:login_error.jsp

<%@ page language="java" import="java.util.*" 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=GB18030">
<title>Insert title here</title>
</head>
<body>
	登錄失敗
</body>
</html>


5、創建Struts2登錄的Action:LoginAction


       Struts2的Action可以不用繼承Struts2框架中的任何類,也不用實現Struts2框架中的任何接口。Struts2的Action可以是一個POJO。同時,在Action中提供getter和setter方法,便於數據的收集。


package com.tgb.struts2;

/**
 * Struts2登錄Action
 * @author Kirn
 *
 */
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;
	}

	//用戶名、密碼都設定爲admin
	public String execute() throws Exception {
		if ("admin".equals(username) && "admin".equals(password)) {
			return "success";
		}else {
			return "error";
		}
	}
}


6、在src下,新建Struts2的配置文件:struts.xml。在裏邊進行Action與JSP的配置。


關於struts.xml文件中的具體配置,可以參考Struts2包中,struts-2.1.8.1\apps\struts2-blank-2.1.8.1\WEB-INF\src\java目錄下的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.xml配置文件發生修改,會立刻加載,在生產環境下最好不要配置 -->
	<constant name="struts.configuration.xml.reload" value="true"/>
	<!-- 會提供更加友好的提示信息 -->
	<constant name="struts.devMode" value="true"/>

	<!-- 需要繼承struts-default包,這樣就擁有的最基本的功能 -->
	<package name="struts2" extends="struts-default">
		<action name="login" class="com.tgb.struts2.LoginAction">
			<result name="success">/login_success.jsp</result>
			<result name="error">/login_error.jsp</result>
		</action>
	</package>
</struts>

 

       OK,到這我們就實現了採用Struts2框架的用戶登錄Demo。就這樣從初步的學習,到簡單Demo的實現。相信,隨着學習的深入,對Struts2的理解會更加深刻。


       紙上得來終覺淺,絕知此事要躬行。共勉!


發佈了122 篇原創文章 · 獲贊 28 · 訪問量 25萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章