我一直在尝试按照以下教程在IntelliJ中创建一个Servlet:https://medium.com/@backslash112/create-maven-project-with-servlet-in-intellij-idea-2018-be0d673bd9af。
以下是我到目前为止添加到Servlet类中的代码:
package com.demo;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet("/DemoServlet")
public class DemoServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<h3>Hello World!</h3>");
}
}
我还将运行配置设置为使用Tomcat 9:
当我运行这个项目时,我可以看到“Hello World!”在http://localhost:8080和http://localhost:8080/DemoServlet.上
不过,我想你应该只能看到《Hello World!在http://localhost:8080/DemoServlet而不是在http://localhost:8080.我想知道这是程序的预期行为,还是我在Servlet的配置中犯了错误?
1条答案
按热度按时间u5i3ibmn1#
这一结果是意料之中的。WebApp上下文根目录显示相同的文本,因为
maven-archetype-webapp
提供了包含以下内容的src/main/webapp/index.jsp
文件:因为Servlet和索引页打印相同的文本,所以您会感到困惑,以为这个文本也是由Servlet打印的,而实际上它是索引页。
请注意,文本大小不同。索引页使用
<h2>
,Servlet代码使用<h3>
。