2015-04-17 4 views
0

Вначале я запускаю это с Mac OSx. Я загрузил последнюю двоичную версию Apache Tomcat и связал ее в моей настройке в intellij. Она работает, но он отображает пустую страницу в Safari .. Вот код в моем методе doGet:Сервер Apache Tomcat не отображает HTML-код, созданный в doGet(), в Intellij Idea 14 Ultimate

protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException { 
    response.setContentType("text/html"); 
    PrintWriter pw = response.getWriter(); 
    pw.println("<!DOCTYPE html>"); 
    pw.println("<html>"); 
    pw.println("<head lang=en>"); 
    pw.println("<meta charset= UTF-8>"); 
    pw.println("<script src= https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js></script>"); 
    pw.println("<script src = javascript.js></script>"); 
    pw.println("<link rel=stylesheet type=text/css href=style.css>"); 
    pw.println("<title>Info</title>"); 
    pw.println("</head>"); 
    pw.println("<body><h1>HELLO</h1></body>"); 
    pw.flush(); 
    pw.close(); 
} 

Структура файла для моей лаборатории выглядит следующим образом:

- Lab 5 
    -.idea 
    -lib 
    -out 
    -src 
     -InfoServlet.java 
    -web 
     -WEB-INF 
     -index.jsp 
     -style.css 

Другое дело, я должен отметить, заключается в том, что URL-адрес, который открывается по умолчанию, равен:

http://localhost:8080 

Допустимо, что это 8080, потому что я установил для этого порт. Может быть, мой сервлет не открывается на правильную страницу URL?

Я очень ценю любую помощь!

+1

Где вы находитесь в файле web.xml? –

+0

@ScaryWombat в матче WEB-INF. –

ответ

0

Вы должны передать артефакт сервлета (URL-адрес вашего сервлета) в аннотации @WebServlet.Атрибут добавлен в атрибут urlPatterns. Вы также можете указать несколько путей к вашему сервлету. Не забывайте, что urlPatterns - это атрибут, подобный массиву. Пример:

@WebServlet(name = "TestServlet", urlPatterns = {"/test","/servlets/test"}) 
public class TestServlet extends HttpServlet 
{ 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
    { 
     response.setContentType("text/html"); 
     PrintWriter out = response.getWriter(); 
     out.println("<html>"); 
     out.println("<head>"); 
     out.println("<title>Test</title>"); 
     out.println("</head>"); 
     out.println("<body>"); 
     out.println("<h1>This is a test designed to provoke an emotioanl response...Shall we continue?</h1>"); 
     out.println("</body>"); 
     out.println("</html>"); 
     out.flush(); 
    } 
} 

Также убедитесь, что вы правильно настроили сервер tomcat и его артефакт. У меня была такая же проблема с моим сервером tomcat 8. This link помог мне.

Смежные вопросы