【问题标题】:cannot resolve symbol 'servlet'无法解析符号“servlet”
【发布时间】:2012-03-17 18:22:37
【问题描述】:

我遇到了这个新手大问题。 当我尝试以下操作时; '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。

【问题讨论】:

    标签: java web-applications servlets


    【解决方案1】:

    第一次用IntelliJ IDEA我也有同样的问题,不过我觉得原理应该是as Eclipse,把我们需要的jar文件配置到外部库就行了。

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

    找不到 Servlet 好像你丢失了 server-api.jar 文件,把它放到你的库中。如果你想构建一个 j2ee 项目,那么简单的文件是没有意义的。

    所以只要把整个本地的tomcat/lib jar文件放到你的项目中,功能就和eclipse一样(配置构建路径-->运行时服务器...)。

    【讨论】:

      【解决方案2】:

      您的类路径中缺少Servlet jar。在您的类路径中添加相同的 jar。

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

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

      在那里添加罐子。

      【讨论】:

      • 不,我使用 ÍntelliJ,但我已经开始使用它了,我什至不知道如何说实话,我尝试了几种方法,然后突然就奏效了。
      • 感谢Servlet jar的链接和解释。
      【解决方案3】:

      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>
      

      【讨论】:

        【解决方案4】:
        <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>
        

        【讨论】:

          【解决方案5】:

          听起来您缺少 servlet.jar 的类路径条目。您还没有告诉我们您是如何构建它的,但基本上您需要针对 servlet.jar 进行编译。您不需要在 执行 时间内显式地将它放在任何地方,因为 Tomcat 应该会处理好这一点。

          【讨论】:

          • @BWestra:如果您是 100% 的 Java 新手,那么我建议您从更简单的程序开始,而不是 servlet。通过简单的控制台应用程序学习基础知识。如何将库添加到类路径取决于您的开发方式——您没有告诉我们您是否使用 IDE、从命令行编译、使用 Ant、Maven 等等。
          • @BWestra:好吧,如果您正在使用 Maven,那么您应该知道如何处理依赖项——基本上,您需要 servlet 依赖项。我自己不使用 Maven,但 NimChimpsky 的回答看起来是正确的。我建议尝试使用 不是 Tomcat 特定的依赖项。
          猜你喜欢
          • 2018-11-11
          • 1970-01-01
          • 2014-11-10
          • 1970-01-01
          • 2021-02-04
          • 2016-12-31
          • 1970-01-01
          相关资源
          最近更新 更多