2014-10-01 129 views
1

當我啓動login.jsp表單並鍵入用戶名和密碼時,出現此錯誤 錯誤爲 HTTP狀態404:請求的資源不可用。HTTP狀態404:請求的資源不可用

我在想什麼?任何幫助?

LoginAction.java

package com.tutorialspoint.struts2; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.PreparedStatement; 
import java.sql.ResultSet; 
import com.opensymphony.xwork2.ActionSupport; 

public class LoginAction extends ActionSupport { 

private String user; 
private String password; 
private String name; 

public String execute() { 
    String ret = ERROR; 
    Connection conn = null; 

    try { 
    String URL = "jdbc:mysql://localhost/struts_tutorial"; 
    Class.forName("com.mysql.jdbc.Driver"); 
    conn = DriverManager.getConnection(URL, "root", ""); 
    String sql = "SELECT name FROM login WHERE"; 
    sql+=" user = ? AND password = ?"; 
    PreparedStatement ps = conn.prepareStatement(sql); 
    ps.setString(1, user); 
    ps.setString(2, password); 
    ResultSet rs = ps.executeQuery(); 

    while (rs.next()) { 
     name = rs.getString(1); 
     ret = SUCCESS; 
    } 
    } catch (Exception e) { 
    ret = ERROR; 
    } finally { 
    if (conn != null) { 
     try { 
      conn.close(); 
     } catch (Exception e) { 
     } 
    } 
    } 
    return ret; 
} 

public String getUser() { 
    return user; 
} 

public void setUser(String user) { 
    this.user = user; 
} 

public String getPassword() { 
    return password; 
} 

public void setPassword(String password) { 
    this.password = password; 
} 

public String getName() { 
    return name; 
} 

public void setName(String name) { 
    this.name = name; 
} 
} 

的Login.jsp

<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
    <title>Login Example</title> 
</head> 
    <body> 
    <html:form action="/login" focus="userName"> 
     Username : <html:text property="userName" /> 
    <br> 
     Password : <html:password property="password" /> 
    <br> 
    <html:submit value="login" /> 
    </html:form> 

    </body> 
</html> 

的web.xml

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
id="WebApp_ID" version="3.0"> 

<display-name>Struts 2</display-name> 
<welcome-file-list> 
    <welcome-file>index.jsp</welcome-file> 
</welcome-file-list> 
<filter> 
    <filter-name>struts2</filter-name> 
    <filter-class> 
    org.apache.struts2.dispatcher.FilterDispatcher 
    </filter-class> 
</filter> 

<filter-mapping> 
    <filter-name>struts2</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 
</web-app> 

Struts配置

<?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> 
<constant name="struts.devMode" value="true" /> 
    <package name="helloworld" extends="struts-default"> 

    <action name="loginaction" 
     class="com.tutorialspoint.struts2.LoginAction" 
     method="execute"> 
    <result name="success">/success.jsp</result> 
    <result name="error">/error.jsp</result> 
    </action> 

    </package> 

</struts> 

這就是我想 http://www.tutorialspoint.com/struts_2/struts_database_access.htm

+1

/login和LoginAction之間的映射在哪裏? – 2014-10-01 09:29:46

+0

http://stackoverflow.com/q/18419661/573032 – 2014-10-01 09:31:38

+0

請重新顯示struts配置文件 – 2014-10-01 09:37:38

回答

1

So many questions這些天abount不工作的例子來自tutorialspoint :(

這些教程,很多事情都改變了。

  1. 更改舊的FilterDispatcher ;
  2. commons-lang3-3.x.jar包含在您的項目中;
  3. 根據a)您的servlet-api-x.x.jar和b)您的Servlet容器功能來更改您的Servlet API的版本(例如,如果您想使用它們,您需要確保您的Application Server正在支持Servlet API 3.0 ...請記住不包括在你的WAR/EAR中的servelt-API JAR):你有混合配置,同時指定2.5和3.0

    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns="http://java.sun.com/xml/ns/javaee" 
        xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
        http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
        id="WebApp_ID" version="3.0"> 
    

    fix that;

  4. 確保您有all the required Struts2 libraries,全部與最新版本(當前2.3.16.3)對齊,並具有所有依賴關係。

然後它應該工作。

之後,你可以開始尋找最佳做法,如使用<s:(對於Struts2的默認前綴),而不是<html:(對於Struts1的默認前綴),並connecting to a database from a business/DAO layer而不是從控制器(動作)。

+0

感謝您的幫助。 但問題是一樣的。我認爲有數據庫的問題, 當我添加用戶名,密碼,並單擊登錄按鈕它顯示' 所請求的資源不可用'與一些會話ID。任何想法解決這個問題? – user3363577 2014-10-01 10:43:23

+1

你沒有告訴我們你在這裏所建議的許多步驟。你有沒有改變過濾器?您是否更改了網絡應用程序聲明?你是否檢查並最終對齊所有JAR? – 2014-10-01 12:01:05

+0

是的,我做了你所說的一切。但問題是一樣的。任何想法? – user3363577 2014-10-01 12:30:32

相關問題