Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.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 无法在Tomcat内运行servlet_Java_Jsp_Tomcat_Servlets - Fatal编程技术网

Java 无法在Tomcat内运行servlet

Java 无法在Tomcat内运行servlet,java,jsp,tomcat,servlets,Java,Jsp,Tomcat,Servlets,我在运行servlet时遇到问题。当我尝试运行它时,我得到HTTP状态404,请求的资源不可用 我在“.Tomcat 7.0\webapps\ROOT\test\WEB-INF\classes”中有test.class” import javax.servlet.*; import javax.servlet.http.*; import java.io.*; public class test extends HttpServlet { public void doGet(HttpS

我在运行servlet时遇到问题。当我尝试运行它时,我得到HTTP状态404,请求的资源不可用

我在“.Tomcat 7.0\webapps\ROOT\test\WEB-INF\classes”中有test.class”

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

public class test extends HttpServlet {
    public void doGet(HttpServletRequest request,
            HttpServletResponse response)
            throws IOException{

        PrintWriter out=response.getWriter();
        java.util.Date today=new java.util.Date();
        out.println("<html>"+"<body>"+"<BR>"+"<B>"+"<center>"+today
                     +"</center>"+"<body>"+"</html>");
    }

}
import javax.servlet.*;
导入javax.servlet.http.*;
导入java.io.*;
公共类测试扩展了HttpServlet{
公共无效数据集(HttpServletRequest请求,
HttpServletResponse(响应)
抛出IOException{
PrintWriter out=response.getWriter();
java.util.Date today=new java.util.Date();
out.println(“+”+“
”+“+”+”+今天 +""+""+""); } }
My web.xml是InInde web-INF,看起来像

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app 
  xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">

  <servlet>
  <servlet-name>test</servlet-name>
  <servlet-class>test</servlet-class>
  </servlet>
  <servlet-mapping>
  <servlet-name>test</servlet-name>
  <url-pattern>/test<url-pattern>
  </servlet-mapping>
</web-app>

测验
测验
测验
/试验
我用以下代码编译了.java文件:


…ROOT\test\WEB-INF>javac-classpath“C:\Program Files\Apache Software Foundation\Tomcat 7.0\lib\servlet api.jar”-d classes test.java尝试在WEB.xml中提供完全限定的类名

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app 
  xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">

  <servlet>
  <servlet-name>test</servlet-name>
  <servlet-class>test</servlet-class> <!-- give the fully qualified class name -->
  </servlet>
  <servlet-mapping>
  <servlet-name>test</servlet-name>
  <url-pattern>/test<url-pattern>
  </servlet-mapping>
</web-app>

测验
测验
测验
/试验

主要问题是目录结构:
Tomcat 7.0\webapps\ROOT\test\WEB-INF\classes
。特殊目录
WEB-INF
必须直接位于应用程序的名称下(
ROOT

有关更多信息,请参阅Oracle

文档根目录下的一个特殊目录WEB-INF包含 与应用程序相关但不公开的所有内容 应用程序的文档树。不能删除WEB-INF中包含的任何文件 直接服务于客户。WEB-INF的内容包括:

/WEB-INF/classes/*-servlet和其他类的目录

/WEB-INF/WEB.xml和/WEB-INF/sun-WEB.xml-基于xml的部署 指定web应用程序配置的描述符, 包括映射、初始化参数和安全约束


我已将目录更改为Tomcat 7.0\webapps\test\WEB-INF\classes,但它不会再次运行,请说明它不起作用。如何测试它-什么是url?它做什么?如果完全限定类名是指我应该添加包名。。我已经试过使用这个软件包,不幸的是它没有启动again@Alexey_M是的,我的意思是相同的,即包名。我已将web.xml标记更改为:。。。它跑了