Добавление сервлета в IntelliJ говорит, что пакет javax.servlet.http не существует - PullRequest
4 голосов
/ 29 октября 2011

Просто создаю мое первое веб-приложение IntelliJ, которое работает на tomcat.

Проект работал нормально, и он прекрасно отображал index.jsp.

Почему index.jsp визуализируется, хотя web.xml не имеет ссылки на него? Сначала он ищет психические файлы (.jsp), если он присутствует, он выполняет их? Или web.xml только для сервлетов?

Реальная проблема заключалась в том, что я создал TestServlet в своей папке / src, и он не может найти javax.servlet jar:

package javax.servlet.http does not exist

Справка:

web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<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_2_5.xsd"
           version="2.5">

    <servlet>
        <display-name>Test1</display-name>
        <servlet-name>TestServlet</servlet-name>
        <servlet-class>TestServlet</servlet-class>
    </servlet>
</web-app>

TestServlet.java:

import java.io.IOException;

package hello_world.Servlets

/**
 * Created by IntelliJ IDEA.
 * User: snad
 * Date: Oct 29, 2011
 * Time: 9:19:27 AM
 * To change this template use File | Settings | File Templates.
 */
public class TestServlet extends javax.servlet.http.HttpServlet {
    protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {

    }

    protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {

    }
}

1 Ответ

3 голосов
/ 29 октября 2011
  • В вашем пути сборки отсутствует файл servlet-api.jar.
  • JSP выбираются автоматически без необходимости их регистрации. web.xml для сервлетов, фильтров, прослушивателей и других настроек.
  • Не используйте пакет по умолчанию. Всегда давайте посылку вашим классам. Так что лучше быть test.TestServlet
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...