使用Glassfish和IntelliJ部署WebApp

时间:2018-02-25 11:08:09

标签: java servlets java-ee intellij-idea glassfish

我开始学习构建Java EE Web App并遵循使用Eclipse的教程,尽管我使用的是IntelliJ。

我已经构建了基本结构,可以成功运行Glassfish服务器,所以我在localhost上看到欢迎页面:8080

我在看到我的servlet输出时遇到了一些问题,但是当我得到404时。

当我转到http://localhost:8080/web1_war_exploded/时,我会看到index.jsp文件的输出

我想看到的是访问时我的AddPassenger类的HTML输出: http://localhost:8080/web1/AddPassenger。相反,我得到了404:

enter image description here

我认为我按照IntelliJ自己的说明配置了所有内容,并创建了.war和Manifest。我只是不清楚如何部署和查看我的AddPassenger servlet,简单地说:

@WebServlet(name = "/AddPassenger")
public class AddPassenger extends HttpServlet {
private static final long serialVersionUID = 1L;

public AddPassenger(){
    super();
}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    PrintWriter out = response.getWriter();

    response.setContentType("text/html");

    out.println("<html><body>");
    out.println("</body>");
    out.println("<h2>Welcome to World Adventures Airlines!</h2>");
    out.println("</html>");
}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

}

}

这是我的项目结构:

enter image description here

1 个答案:

答案 0 :(得分:0)

@WebServlet(name = "/AddPassenger")更改为@WebServlet(value = "/AddPassenger")。在这种情况下,它应该适用于http://localhost:8080/web1_war_exploded/AddPassenger

同样使用注释,无需在web.xml中声明servlet。并确保您的glassfish版本支持servlet 3.0。

要将网址路径从/web1_war_exploded/更改为/web1/,请转到文件 - &gt;项目结构并更改输出目录: enter image description here