是的,又一个用 java 编写的 url 缩短器,因为我想要自己的,为什么不呢。目前一切正常,只是不是我想要的方式。总之,整个项目中只有一个映射到“/”的servlet。没有涉及任何框架或任何花哨的东西,这只是一个基本的 Servlet“项目”。在 doPost 上创建了一个新的 shortUrl,您会收到一个 JSON 响应。在 doGet 上,如果 URL 是“/*{any_valid_short_url}”,则发送重定向(如下)。
response.sendRedirect("longUrlString")
我遇到的问题是索引页面,当调用相同的 doGet 时,我检查请求的路径,如果它是“/”,那么目前,我使用 FileInputStream 并通过 response.getOutputStream 将 index.html 页面输出( ),在我看来这很 hacky。我想改用 requestDispatcher,但是当我尝试实现它时(如下),我进入了重定向循环,并且 servlet 容器(jetty 或 tomcat)堆栈溢出。
getServletContext().getRequestDispatcher("/index.html").forward(req, res);
我对这是如何完成的有什么误解吗?该项目目前托管在我的 github 页面上。 https://github.com/justinmburrous/ShortUrl