从 .java 类而不是 .jsp 在 intelliJ 中运行 servlet

Posted

技术标签:

【中文标题】从 .java 类而不是 .jsp 在 intelliJ 中运行 servlet【英文标题】:Running a servlet in intelliJ from .java class, not .jsp 【发布时间】:2021-04-20 15:07:02 【问题描述】:

我正在尝试在 IntelliJ 中创建和运行一个 servlet。我遇到的问题是我正在关注 Eclipse 教程,它们的工作方式似乎非常不同。在 Eclipse 中,创建了一个 servlet.java 类并在 Tomcat 上运行。在 IntelliJ 中创建了一个 .java 类和 .jsp 文件。浏览器指向.jsp,而不是.java。 java 类似乎根本没有做任何事情。

为什么它们如此不同,我如何指向 .java 类而不是 .jsp?

我在下面添加了 .java 和 .jsp 代码,它们都是 IntelliJ 在创建新 servlet 项目时创建的标准存根。

@WebServlet(name = "helloServlet", value = "/hello-servlet")
public class HelloServlet extends HttpServlet 
    private String message;

    public void init() 
        message = "The Tomcat server does not point to this code in IntelliJ";
    

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException 
        response.setContentType("text/html");

        // Hello
        PrintWriter out = response.getWriter();
        out.println("<html><body>");
        out.println("<h1>" + message + "</h1>");
        out.println("</body></html>");
    

    public void destroy() 
    

<!DOCTYPE html>
<html>
<head>
    <title>JSP - Hello World</title>
</head>
<body>
<h1><%= "Tomcat points to this .jsp file, not the .java code" %>
</h1>
<br/>
<a href="hello-servlet">Hello Servlet</a>
</body>
</html>

【问题讨论】:

【参考方案1】:

servlet 类有一个注解指示要使用的 URI,因此无论您的应用程序使用什么 URL 访问,后跟 /hello-servlet

他们生成的这些文件在 99% 的情况下都是无用的,这有点奇怪。

【讨论】:

以上是关于从 .java 类而不是 .jsp 在 intelliJ 中运行 servlet的主要内容,如果未能解决你的问题,请参考以下文章

为啥java的一些概念需要使用包装类而不是原始数据类型[重复]

如何从类而不是视图更改@EnvironmentObject

我如何从类而不是组件调度 redux 操作

如何在片段类而不是活动类中使用底页?

python 从原来修改为删除全局变量的使用,实现一个日志类而不是依赖sys.stdout,删除乐趣

如何使用来自目标c的同名类而不是swift