Java 无法在Tomcat内运行servlet
我在运行servlet时遇到问题。当我尝试运行它时,我得到HTTP状态404,请求的资源不可用 我在“.Tomcat 7.0\webapps\ROOT\test\WEB-INF\classes”中有test.class”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
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标记更改为:。。。它跑了