如何从servlet内部获取调用servlet的JSP页面名称

如何从servlet内部获取调用servlet的JSP页面名称,jsp,servlets,Jsp,Servlets,我有许多JSP页面,它们都调用同一个servlet 是否可以从servlet内部获取调用servlet的JSP页面名称?servlet是一个服务器端控制器,每当请求的URL与servlet的URL模式匹配时,其doGet或doPost方法就会从service方法调用,如web.xml中所定义,或者通过使用注释 这就是说,servlet不是,也不应该知道通过发送HTTP请求调用它的HTML元素,就像单击链接会产生与触发它的元素无关的相同结果一样 当然,您可以将该信息作为请求参数传递,然后通过调用r

我有许多JSP页面,它们都调用同一个servlet


是否可以从servlet内部获取调用servlet的JSP页面名称?

servlet是一个服务器端控制器,每当请求的URL与servlet的URL模式匹配时,其
doGet
doPost
方法就会从
service
方法调用,如web.xml中所定义,或者通过使用注释

这就是说,servlet不是,也不应该知道通过发送HTTP请求调用它的HTML元素,就像单击链接会产生与触发它的
元素无关的相同结果一样


当然,您可以将该信息作为请求参数传递,然后通过调用
request.getParameter(“name”)
,在servlet的方法中检索该信息,其中请求是
HttpServletRequest
,而
name
是描述发送方URL的参数名。

不确定您想要什么

JSP不会直接调用servlet(尽管在幕后,它们是servlet)

您应该将URL映射到web.xml中的Servlet,然后从Servlet中将响应转发给JSP。 如果需要请求URL,请使用request.getRequestURL()

如果需要请求参数,请使用request.getParameter(“名称”)

要转发到JSP,请执行以下操作:

String nextJSP = "/searchResults.jsp";
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(nextJSP);
dispatcher.forward(request,response);

你为什么要这样做?这看起来真是个坏主意。