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(" ");
。