Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 未找到Servlet类异常_Java_Html_Eclipse_Servlets - Fatal编程技术网

Java 未找到Servlet类异常

Java 未找到Servlet类异常,java,html,eclipse,servlets,Java,Html,Eclipse,Servlets,我试图编写一个非常简单的servlet,HTML表单的操作使用该servlet 这是我的HTML表单: <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/htm

我试图编写一个非常简单的servlet,HTML表单的操作使用该servlet

这是我的HTML表单:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!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=ISO-8859-1">
<title>Upload Video</title>
</head>
<body>

<%
    Object userSession = session.getAttribute("email");

if(userSession == null)
{
    out.println("Welcome to the MyTube, you are not logged in. <br /><br >");
    out.println("Please click the following to login: <a href=\"login.jsp\">here</a>");
    out.println("Or Click this to register: <a href=\"register.jsp\">here</a>");
}
else
{
    out.println("<form action=\"servletClass\" method=\"post\" enctype=\"multipart/form-data\">");
    out.println("<input type=\"file\" name=\"file\" />");
    out.println("<input type=\"submit\" />");
    out.println("</form>");
}

%>

</body>
</html>
这是我的web.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<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>MyTubeServer</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>

  <servlet>
    <servlet-name>servletClass</servlet-name>
    <servlet-class>uploadServlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>servletClass</servlet-name>
    <url-pattern>/servletClass</url-pattern>
  </servlet-mapping>

</web-app>

MyTube服务器
index.html
index.htm
index.jsp
default.html
default.htm
default.jsp
servletClass
上传servlet
servletClass
/servletClass
以下是eclipse设置:

我看了其他文章,你也应该在WEB-INF文件夹中包含java文件。但我一直在找classNotFoundException

编辑:stacktrace表明找不到uploadServlet,所以我很困惑

编辑2:将servlet类的XML文件设置为servletClass.uploadServlet而不是servlet类后,但现在我获得了请求的源代码,(%file%的X/Location%未找到),没有任何异常

1)在web.xml中尝试以下操作:

<servlet>
<servlet-name>servletClass</servlet-name>
<servlet-class>servletClass.uploadServlet</servlet-class>
</servlet>

在Servlet代码中。请重定向到适当的可用资源。有关更多信息,请参阅。

您的
web.xml
不正确。该图显示了包层次结构

所以应该是这样

<servlet>
<servlet-name>servletClass</servlet-name>
<servlet-class>servletClass.uploadServlet</servlet-class>
</servlet>

将其更改为某个有效的
JSP
页面。

如果这是您的意思,则无需将java源文件包含在WEB-INF文件夹中。此问题通常在servlet未获取类文件时发生,请尝试再次写入上载servlet的完整路径。ClassNotFoundException将告诉您未找到的类。了解如何读取和理解异常跟踪。您试图在服务器中点击什么?什么是
response.sendRedirect(“结果页的位置”)在您的servlet代码中?感谢您的帮助,我尝试添加了一个“servletClass”。以前,但我总是得到“请求的源代码,(X/Location%的%The%File%的%is%Not%Found)”。您现在有什么异常吗?如果是这种情况,请将stackTrace粘贴到这里。不,我没有收到任何异常,但控制台中有一个警告。警告:[SetPropertiesRule]{Server/Service/Engine/Host/Context}将属性“source”设置为“org.eclipse.jst.jee.Server:MyTubeServer”未找到匹配的属性。感谢您的帮助!ContextPath只是返回到我的index.jsp,我想它就是这么做的?当我添加servletClass.uploadServlet时,它只显示请求的源代码,(%File%的X/Location%未找到)。@user1157751:能否将错误屏幕上载到问题?随着您的新努力,EDITI添加了一个带有新错误的新屏幕截图,它现在是一个HTTP 404错误。我认为您不需要添加上下文路径,就足够了!所有的回答都是正确的,是我的愚蠢导致了这个错误。谢谢你们的帮助!!
 response.sendRedirect("location of the result page");   
<servlet>
<servlet-name>servletClass</servlet-name>
<servlet-class>servletClass.uploadServlet</servlet-class>
</servlet>
<%
String contextPath = request.getContextPath();
%>

out.println("<form action=\""+contextPath+"/servletClass\" method=\"post\" enctype=\"multipart/form-data\">");
response.sendRedirect("location of the result page");