Когда файл web.xml загружается для отображения сервлета? - PullRequest
0 голосов
/ 16 марта 2019

Я пытаюсь отобразить результат функции Java на HTML-странице, используя сервлет Java и Tomcat. Я на Linux Mint 19.1 Cinnamon и использую apache-tomcat-8.5.38 Моя проблема в том, что когда я пытаюсь отобразить сервлет в файл web.xml, кажется, что он не работает:

вот мой файл web.xml:

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app >
  <servlet>
    <servlet-name>SearchEngineServlet</servlet-name>
    <servlet-class>SearchEngine</servlet-class>
  </servlet>

   <servlet-mapping>
    <servlet-name>SearchEngineServlet</servlet-name>
    <url-pattern>/servlet/*</url-pattern>
  </servlet-mapping>
</web-app>

вот мой файл index.html:

<!DOCTYPE html>
<html>
<head>
    <title>Search Engine</title>
</head>
<body>
    <div>

        <a href="search">Click to call Servlet</a>

        <form action="servlet/search" method="post">
            <input type="text" name="s">
            <input type="submit" value="Submit">
        </form>
    </div>
</body>
</html>

и вот мое приложение с именем SearchEngine.java:

public class SearchEngine extends HttpServlet {

    private String mymsg;

    @Override
    public void init() throws ServletException 
    {      
        mymsg = "Http Servlet Demo";   
    }

    @Override
    public void doPost(HttpServletRequest request,
        HttpServletResponse response) throws ServletException, 
        IOException 
    {      
        PrintWriter out = response.getWriter();
        out.println("<h1>" + mymsg + "</h1>");
    }
}

А мои файлы здесь:

web.xml -> /home/cubouyaka/web/apache-tomcat-8.5.38/webapps/SearchEngine/WEB-INF/web.xml
SearchEngine.java -> /home/cubouyaka/web/apache-tomcat-8.5.38/webapps/SearchEngine/WEB-INF/src/SearchEngine.java
index.html -> /home/cubouyaka/web/apache-tomcat-8.5.38/webapps/SearchEngine/index.html

Тогда я могу получить доступ к index.html, но когда я пытаюсь щелкнуть ссылку, чтобы использовать сервлет, я получил сообщение об ошибке, не сообщающее о том, что /home/cubouyaka/web/apache-tomcat-8.5.38/webapps/ SearchEngine / servlet / search не существует, но я сделал сопоставление в файле web.xml, поэтому не понимаю, почему я получаю эту ошибку.

Может ли кто-нибудь помочь мне, пожалуйста, я потерял так много времени, пытаясь это исправить ..

1 Ответ

0 голосов
/ 19 марта 2019

Вы можете взглянуть на этот пост , чтобы получить ответ при загрузке web.xml, но в вашем случае это не проблема.

Предполагая, что ваш контекстный путьпустой (привязка к корню), код тоже правильный.Только одна вещь не так:

<a href="search">Click to call Servlet</a>

Ссылка на URL для подключения к вашему сервлету, отображаемая в сервлете / *, должна также указываться здесь.

<a href="servlet/search">Click to call Servlet</a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...