【问题标题】:Application name in URL [duplicate]URL 中的应用程序名称 [重复]
【发布时间】:2020-11-27 04:26:51
【问题描述】:

我创建了一个名为first-web-application 的java web 项目。然后我创建了一个具有doGet 方法的servlet。

@WebServlet(urlPatterns = "/login.do")
public class LoginServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
        PrintWriter out = response.getWriter();
    ------------------
    -----------------
}
}

当我运行并访问这个应用程序时,它就来了

http://localhost:8080/first-web-application/login.do

但我关注的视频没有使用应用程序名称。输出只是通过使用来实现的

http://localhost:8080/login.do

如果我删除了应用程序名称,则会出现 404 错误。我的意思是我们如何在 URL 中使用或删除应用程序名称。

很抱歉问了这么基本的问题,但我没听懂

【问题讨论】:

  • 答案取决于使用的服务器。你忘了告诉你用的是哪一个。如果您知道服务器名称,那么您可以更轻松地搜索答案。例如。当您使用 Tomcat 时(您最初在问题上标记了“Spring MVC”,即使您没有在问题中的任何地方使用 Spring MVC 代码,但这种思维方式强烈表明您没有使用库存 JEE 服务器,但是像Tomcat这样的servletcontainer),那么这是您问题的重复:stackoverflow.com/q/5328518
  • 我很简单地在 eclipse 中创建 servlet 并运行它。我正在使用tomcat。我标记了 spring-mvc,因为使用 spring 的人都知道 java。我正在使用 tomcat 和 eclipse,所以在培训师使用的视频中也是如此。但是我们的 url 正在生成不同的访问页面。
  • 你这里没有使用 Spring MVC。您正在使用普通的香草 Servlet。标记 [servlets] 非常好。
  • 谢谢@BalusC。你能帮我理解一下吗?

标签: servlets contextpath


【解决方案1】:

那是因为您的应用程序可能被打包为 first-web-application.war 并且您的根上下文名称变为 hostname:port/first-web-application/。

解决此问题的最简单方法是将您的 Web 应用程序打包为 ROOT.war,并且由于 ROOT 是映射到服务器上根 / 上下文路径的默认名称,因此您的应用程序将可在 Web 容器的根目录访问。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-06
    • 2021-07-11
    • 1970-01-01
    • 2018-02-08
    • 2017-08-09
    • 2011-09-26
    • 1970-01-01
    相关资源
    最近更新 更多