【发布时间】:2019-07-01 18:52:58
【问题描述】:
我正在尝试执行以下操作:我创建一个 servlet 来处理所有请求,如果 url 包含单词“hello”,则将响应代码设置为 403,否则将请求转发到 html 页面。这是我的 servlet:
@WebServlet("/*")
public class AllRequestsHandlerServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String url = request.getRequestURL().toString();
if(url.contains("hello")) {
response.setStatus(HttpServletResponse.SC_FORBIDDEN);
} else {
RequestDispatcher dispatcher = request.getRequestDispatcher("/static-html-page.html");
dispatcher.forward(request, response);
}
}
}
但是在转发之后,由于这个 servlet 也处理转发的请求,它会导致一个无限循环。我怎样才能避免这种情况?
【问题讨论】: