程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> java裡Struts2學習登錄練習詳解

java裡Struts2學習登錄練習詳解

編輯:關於JAVA

java裡Struts2學習登錄練習詳解。本站提示廣大學習愛好者:(java裡Struts2學習登錄練習詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是java裡Struts2學習登錄練習詳解正文


  最近在學struts2裡面遇到很多錯誤,今天跟大家分享一下,我的開發工具是Eclipse;

1、到網上下載Struts2的包,這裡不再累贅,百度有很多;

2、新建一個項目,記得後面加上web.xml文件;

3、先部署struts2開發環境。

    (1)、在struts2.2以後,我們需要導入的包有以下幾個:
    commons-fileupload-1.2.1.jar
    commons-io-1.3.2.jar
    commons-logging-1.0.4.jar
    commons-lang3-3.1.jar
    freemarker-2.3.16.jar
    javassist-3.7.ga.jar
    ornl-3.0.jar
    struts2-core-2.2.1.1.jar,
    xwork-core-2.2.1.1jar

    我通常都是把這些文件復制到WEB-INF/lib目錄裡。也可以在項目屬性的Java Build Path中的libraries裡面添加;

 

    (2)、在lib文件夾下面的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> 

 

      現在web.xml文件是這樣的

    

<?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>Struts2Mianshi</display-name>
  <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>
  <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>

 

 

    (3)、在src目錄下新建struts.xml文件,記住配置文件位置 在src目錄下,命名struts.xml  小寫。配置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>
    <package name="main" extends="struts-default">
       <!--這個裡面寫action配置-->
    </package>
</struts>

 

4、在WebContent建一個文件夾存放JSP頁面的(我建議還是建立一個Page文件夾  有利於文件的管理,還有後面的路徑也好弄)

5、在Page文件裡創建一個JSP文件命名index.jsp寫登陸界面

<%@ page language="java"  contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%
    String RootPath=request.getContextPath();
    %>
<!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>
    <form action="<%=RootPath %>/login" method="post">
        登陸<br/>
        賬號:<input type="text" name="username" /><br />
        密碼:<input type="password" name="userpwd" /><br /> 
        <input type="submit" value="提交"/>
    </form>
</body>
</html>

<%=request.getContextPath()%>是為了解決相對路徑的問題,可返回站點的根路徑。

 

6、在src下創建一個包在創建一個loginAction.java 讓這個類繼承ActionSupport(action文件命名規則自己看)

 

看到JSp頁面的賬號username與密碼userpws不。這邊要獲取就要命名跟他一樣

private String UserName;並get、set 然後寫execute()方法

 

package com.weiyang.acction;

import com.opensymphony.xwork2.ActionSupport;

@SuppressWarnings("serial")
public class loginAction extends ActionSupport {
    private String username;
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getUserpwd() {
        return userpwd;
    }
    public void setUserpwd(String userpwd) {
        this.userpwd = userpwd;
    }
    private String userpwd;
    
     /**
     * execute方法會在該Action類被調用的時候自動執行,
     * 如果 賬號="admin"並且密碼="123456",就返回SUCCESS
     * 否則返回ERROR
     */
     public String execute()
     {
         if(username.equalsIgnoreCase("admin") && userpwd.equalsIgnoreCase("123456"))
         {
             return SUCCESS;
         }
         else
             
         {
             return ERROR;
         }
     }
}

 

7、action寫好了就去配置struts.xml

 

<!--action標簽的name是login,這個必須跟index.jsp中的action屬性一致性。class是loginAction類的全稱-->
            <action name="login" class="com.weiyang.acction.loginAction">
                <!--這個標簽的意思是當LogAction類的execute方法返回SUCCESS時,頁面跳轉到success.jsp-->
                <result name="success">WEB-INF/success.jsp</result>
                <result name="error">WEB-INF/error.jsp</result>
            </action>

 

 

login,這個必須跟index.jsp中的action屬性一致性。class必須寫loginAction類的全稱
success 跟error是jsp文件 用來驗證成功與失敗 把他們新建在WEB-INF目錄下
<result name="success">WEB-INF/success.jsp</result>  其他目錄建立的寫好路徑

我的文件結構

 

個人理解的流程,web.xml文件中加入了strtus配置文件,所以index.jsp運行後指向action裡面的login,在struts.xml文件找到login通過class找到action類,進行execute方法根據返回的success或者error又指向對應的jsp文件顯示給用戶。

開始做的時候  出現額404錯誤  

<!--<constant  name="struts.action.extension" value="action,do"></constant>-->  我在struts.xm文件中有這句運行index.jsp出現404

 

 

action="<%=RootPath %>/login" method="post">  沒有獲取項目路徑也是404,就是像這樣action="login" method="post">  

因為我建了一個文件夾PageHH存放jsp文件 所以路徑就出現問題

 

最多的還是上面說的細節  命名,struts.xml文件裡的配置不仔細出現的404

 

 

目前遇到的問題  在struts.xml文件包含了一個login.xml文件 讓他代替struts.xml配置實現登陸模塊,以後可以根據各自的功能建不同的配置文件。

<include file="login.xml"></include>

這句加上去  login.xml文件配置也沒發現村 運行起來就出現404  還在找問題

 

初學者  大神勿噴!

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved