Как заставить браузер Eclipse открываться по указанному URL-адресу @WebServlet для сервлета - PullRequest
0 голосов
/ 24 октября 2019

Итак, я создал новый «Динамический веб-проект» в Eclipse IDE (2019-09 R 4.13.0). Я назвал проект "MyProject". При создании этого проекта я указал целевую среду выполнения Apache Tomcat 9.0 и версию динамического веб-модуля 4.0.

Для проекта и в разделе «Java Resources / src» я создал простой сервлет. Я назвал сервлет "ТестСервлет". И для этого сервлета я использую аннотацию @WebServlet ("/ TestServlet"). Код сервлета ниже.

Когда я щелкаю правой кнопкой мыши по классу сервлетов «TestServlet» из проводника проекта Eclipse и выбираю «Запуск от имени» -> «Выполнить на сервере», Eclipse успешно открывает свой встроенный браузер.

Однако здесь я думаю, что есть проблема.

Браузер Eclipse открывается на http://localhost:8080/MyProject/. Это поведение, которое я мог бы ожидать увидеть, если бы я нажал Run As-> Run on Server из папки проекта / MyProject. Но я нажал Run As-> Run on Server из класса TestServlet в / MyProject / Ресурсы Java / src / TestServlet.java. Поэтому я ожидаю, что браузер Eclipse откроется на http://localhost:8080/MyProject/TestServlet.

Я не прав по этому поводу?

Я работаю на Tomcat 9 и JRE 1.8.

Обратите внимание, чтоесли я вручную наберу "http://localhost:8080/MyProject/TestServlet" в качестве URL-адреса в браузере Eclipse, сервлет будет работать, как и ожидалось.

Любая помощь, выясняющая это, приветствуется!

package com.myproject.demo;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class TestServlet
 */
@WebServlet("/TestServlet")
public class TestServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        response.getWriter().append("Served at: ").append(request.getContextPath());
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...