java不能使用注释运行简单的servlet
我是新的java程序员。因此,我确实了解在web上通过映射等方式运行servlet的过程。xml和我也可以通过注释启动servlet,我的问题是,当我使用注释并在服务器上运行项目时,为什么我必须在项目名称之后的URL中写入serlvet名称才能启动它
有没有办法不用网络。xml文件,给出注释,然后当我在服务器上运行project时,它会自动启动并运行servlet?而不是编写servlet名称并点击enter键启动它
@WebServlet(urlPatterns = {"/GetDate"})
public class GetDate extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Date date =new Date();
resp.setContentType("text/html");//this says we will send back html type
//get a pen to write back
PrintWriter pen=resp.getWriter();
//write back
pen.write(date.toString());
}
}
我希望上述简单的servlet在我从eclipse中选择RunonServer后立即自动启动
# 1 楼答案
都是@WebServlet符号。如果您将代码更改为:
然后在
/
URL(在您的Web应用程序名称之后)提供servlet做这件事要小心。传统上,您从
/
位置提供HTML资源。如果你用servlet来处理这个问题,那么你就不能提供HTML。另外,如果您有多个servlet,那么哪一个获取/
路径-其余的去哪里?让URL与servlet匹配可能有点自我记录。请注意,不需要将它与servlet保持相同的名称-如果愿意,可以调用它/myBigLongURLMapping
-名称由您决定# 2 楼答案
您可以在注释中指定启动时加载,然后在web服务器启动时调用servlet的
init()
方法# 3 楼答案
不要像这样写
@WebServlet(urlPatterns = {"/GetDate"})