当前位置: 首页 > 知识库问答 >
问题:

HTTP状态404:请求的资源不可用

江奕
2023-03-14

当我开始login.jsp表单并键入用户名和密码时,我有这个错误错误错误是HTTP状态404:请求的资源不可用。

我错过了什么?有什么帮助吗?

登录。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;
 }
}

登录。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个答案

司马钱明
2023-03-14

这些天有很多问题不是教程中的工作示例:(

那些教程很旧,很多东西都变了。

>

  • 将旧过滤器Dispatcher更换为新的StrutsPrepare和Dexecutefilter
  • 包括commons-lang3-3。x、 在你的项目中使用jar
  • 根据a)你的Servlet-API-x.x.jar和b)你的Servlet容器功能更改Servlet API的版本(例如,如果你想使用它们,你需要确保你的应用服务器支持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">
    

    ,修复它;

    那么它应该会起作用。

    之后,您可以开始寻找最佳实践,比如使用

  •  类似资料:
    • 我在使用MyEclipse IDE中的Tomcat服务器和Struts 2框架时遇到了一个反复出现的问题。我正在运行我的程序作为一个服务器应用程序,当它运行时,默认的index.jsp文件将成功打开,但该应用程序的其他过去都将无法工作。当试图加载任何我的。do页面,我得到以下错误:HTTP状态404:请求的资源....不可用。当我以前遇到这个错误时,我只是重启了服务器,一切都很好,但是我现在没有同

    • 问题内容: 在Tomcat服务器上运行Eclipse项目时出现以下错误: HTTP状态404-请求的资源(/ ProjectName /)不可用。 浏览器地址栏中的URL为。 我真的不知道文件中缺少什么。我在文件夹中有一个,并且我的包含以下条目: 问题答案: 默认情况下,当您打开项目根文件夹而不是中的物理文件时,服务器将在中查找欢迎文件。如果未找到任何内容,则将出现此404“找不到页面”错误。 就

    • 我无法在tomcat8服务器上启动测试应用程序。当我输入时,错误消息是“HTTP Status 404-type Status Report.message:description请求的资源不可用。”起始页工作良好。我把所有的jar文件(jersey-client、jersey-common、jersey-container-servlet、jersey-container-servlet-cor

    • 我正在制作一个简单的程序,以几个字段作为输入,然后点击确认按钮后,confirm.jsp将出现。 我创建了Controller.java servlet来标识单击的按钮,然后打开JSP。controller.java存储在web-inf/classes/ch2/servletController目录中,而submit.jsp、register.jsp、confirm.jsp存储在/ch2/serv

    • 我的文件夹中的JSP文件中有一个HTML表单。我在文件夹的默认包中有一个servlet类。在我的中,它被映射为。 我在HTML表单的属性中尝试了几个URL: 但这些都没用。它们都在Tomcat 6/7/8中不断返回HTTP 404错误,如下所示: 描述:请求的资源(/servlet)不可用。 或在Tomcat 8.5/9中如下所示: 消息:/servlet 描述:源服务器找不到目标资源的当前表示形

    • 我的文件夹中的JSP文件中有一个HTML表单。我有一个servlet类在文件夹中的默认包中。在我的它被映射为。 我在HTML表单的属性中尝试了几个URL: 但这些都不管用。它们都会不断返回HTTP 404错误,如Tomcat 6/7/8中的以下错误: 描述:请求的资源(/servlet)不可用。 或如Tomcat 8.5/9中所示: 消息:/servlet 描述:源服务器没有找到目标资源的当前表示