Java 如何在Ubuntu上创建Servlet和/或JSP项目?

Java 如何在Ubuntu上创建Servlet和/或JSP项目?,java,jsp,tomcat,servlets,Java,Jsp,Tomcat,Servlets,我已经安装了Tomcat7、JavaServlet3.0和OpenJDK7。我已经安装了示例,但我无法在磁盘上仅从浏览器中找到它们。Tomcat文档说我需要我的应用在$CATALINA\u BASE/webapps/子目录中,但我没有这样的变量 我在/var/lib/tomcat7/webapps/ROOT中用myapp/WEB-INF/classes/Servlet.java(我编译了该文件)和myapp/WEB-INF/WEB.xml创建了一个目录myapp <?xml version

我已经安装了Tomcat7、JavaServlet3.0和OpenJDK7。我已经安装了示例,但我无法在磁盘上仅从浏览器中找到它们。Tomcat文档说我需要我的应用在
$CATALINA\u BASE/webapps/
子目录中,但我没有这样的变量

我在
/var/lib/tomcat7/webapps/ROOT
中用
myapp/WEB-INF/classes/Servlet.java
(我编译了该文件)和
myapp/WEB-INF/WEB.xml创建了一个目录
myapp

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
     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_2_5.xsd"
     version="2.5">
    <servlet> 
        <servlet-name>TestServlet</servlet-name> 
        <servlet-class>TestServlet</servlet-class> 
        <description>This is a simple Hello World servlet</description> 
    </servlet> 
    <servlet-mapping> 
        <servlet-name>TestServlet</servlet-name> 
        <url-pattern>/test</url-pattern> 
    </servlet-mapping> 
</web-app>

为什么不使用EclipseEE来生成和维护动态web项目?让IDE处理项目结构要容易得多。此外,您还可以找到许多关于如何使用Eclipse生成动态web项目的指南


您好

当我在类中添加空构造函数时,它可以工作。

我尝试过,但没有成功。此外,我不想依赖魔法,我想知道它是如何工作的。好的,你是否将“myApp”文件夹放入/webapps/或/webapps/ROOT/?因为当您尝试调用localhost:8080/myapp/Servlet时,结构应该是/webapps/myapp/I已经更改了路径,但仍然得到404错误,但是当我键入一些不同的url时,情况就不同了(当找不到url时,我得到了消息URI,但当我键入
/myapp/Servlet
时,我没有消息)。但当我键入
localhost:8080/myapp
时,我得到了index.html文件。如果您的servlet还没有生成任何输出,那么当您转到
/myapp/servlet
时,您将一无所获。转到
localhost:8080/myapp
将启动
欢迎文件,可能是index.html。您的文件夹不应位于
/webapps/ROOT
下。它应该就在
/webapps/
@IanMcLaird下面谢谢,我更改了它,但仍然得到了错误404。但是现在
myapp/index.html
正在加载。您说(已知)坏URL的消息与servlet的消息不同。这些信息有何不同?tomcat日志中显示了什么吗?@IanMcLaird我根本没有
/myapp/test
的消息,但是对于
/foo/bar
我有URI作为消息。我得到错误
java.lang.IllegalAccessException:Class org.apache.catalina.core.DefaultInstance Manager无法访问带有修饰符“”的类Servlet的成员
@IanMcLaird我发现问题没有构造函数。
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

class TestServlet extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/plain");
        PrintWriter out = response.getWriter();
        out.println("Hello");
    }
}