Java(JSP / Servlet):相当于.jsp中的getServletContext()

我应该如何从.jsp访问ServletContext? 例如,如何从.jsp内部调用getRealPath方法。

这是一个Servlet,工作正常:

protected void doGet( HttpServletRequest req, HttpServletResponse resp ) throws ServletException, IOException { resp.setContentType( "text/html; charset=UTF-8" ); final PrintWriter pw = resp.getWriter(); pw.print( "" ); pw.print( getServletContext().getRealPath( "text/en" ) ); pw.print( "" ); pw.flush(); pw.close(); } 

现在我正在寻找我应该在下面的.jsp中插入的确切行,以完成与上面的servlet完全相同的操作。

    ... // What should I insert here   

可以通过application隐式对象访问ServletContext

由于每个JSP都是一个servlet,因此您也可以使用getServletContext()

但是..避免在JSP中使用类似的代码。 相反,在servlet中获取所需的值并将其设置为请求属性,只需在JSP中读取它(最好通过JSTL)

尝试这个:

 ${pageContext.servletContext} 

我认为这应该在JSP页面上正常工作:

  <% out.print(getServletContext().getAttribute("attribute")); %>  

如果你想使用getRealPath()方法,你可以考虑查看一个名为’c:url’的jstl标签

  

只需使用application.getRealPath(" ");