无法解析符号'servlet'

时间:2012-02-28 09:19:38

标签: java web-applications servlets

我遇到了这个重要的新手问题。 当我尝试以下; ' servlet'变为红色并表示“无法解析符号' servlet'。

import javax.servlet.http.*;
import javax.servlet.ServletException;

我得到了apache运行的tomcat。我是一个非常大的java新手。任何人都可以帮助我在哪里找到一个servlet库或什么?我用谷歌搜索,但没有明确解释如何使这项工作。

这是我的web.xml文件的内容;

<?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">

    <display-name>
        HelloWorld
    </display-name>
    <description>
        This is my first webapp
    </description>

    <servlet>
        <servlet-name>Hello world!</servlet-name>
        <description>This is a hello world servlet</description>
        <servlet-class>servlet</servlet-class>
    </servlet>

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

</web-app>

编辑:我使用IntelliJ IDEA IDE。 我正在使用Maven。

5 个答案:

答案 0 :(得分:12)

servlet jar需要位于构建路径中。

如果你使用maven,你可以这样做:

<dependency>
 <groupId>org.apache.tomcat</groupId>
 <artifactId>tomcat-servlet-api</artifactId>
 <version>7.0.21</version>
 <scope>provided</scope>
</dependency>

或使用列出here列出的提供商之一,如下所示,不依赖于特定容器:

<dependency>
   <groupId>javax.servlet</groupId>
   <artifactId>javax.servlet-api</artifactId>
   <version>3.0.1</version>
   <scope>provided</scope>
</dependency>

答案 1 :(得分:3)

听起来你错过了servlet.jar的类路径条目。您还没有告诉我们您是如何构建它的,但基本上您需要针对servlet.jar进行编译。您不应该将其明确地放在执行时间的任何地方,因为Tomcat应该照顾它。

答案 2 :(得分:2)

你的classpath.add中缺少Servlet jar你的类路径中的同一个jar。

如果您使用的是Eclipse,请右键单击该项目。

-->Properties --->Java build path --->select Libraries

在那里添加jar。

答案 3 :(得分:1)

第一次使用IntelliJ IDEA我有同样的问题,但我认为原则应该是Eclipse,只需将我们需要的jar文件配置到外部库。

转到“文件”----&gt; “项目结构”----&gt; “库”,然后单击按钮并添加所需的jar。

找不到Servlet似乎丢失了server-api.jar文件,只需将其放入库中即可。如果你想构建一个j2ee项目,简单的文件是没有意义的。

所以只需将整个本地tomcat / lib jar文件放到项目中,该函数与eclipse(配置构建路径 - &gt;运行时服务器......)相同。

答案 4 :(得分:0)

<servlet>
    <servlet-name>Hello world!</servlet-name>
    <description>This is a hello world servlet</description>
    <servlet-class>servlet</servlet-class> <--here is full name of your servlet class.
</servlet>

<servlet-mapping>
    <servlet-name>HelloWorldServlet</servlet-name><--here must be match <servlet-name>
    <url-pattern>HelloWorldServlet</url-pattern>
</servlet-mapping>