我应该如何从.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( "<html><body>" );
pw.print( getServletContext().getRealPath( "text/en" ) );
pw.print( "</body></html>" );
pw.flush();
pw.close();
}
现在我正在寻找我应该在下面的 .jsp 中插入的确切行,以完成与上面的servlet完全相同的事情。
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<body>
... // What should I insert here
</body>
</html>
答案 0 :(得分:11)
可以通过ServletContext
隐式对象访问application
。
由于每个JSP都是一个servlet,因此您也可以使用getServletContext()
。
但是..避免在JSP中使用类似的代码。相反,在servlet中获取所需的值并将其设置为请求属性,只需在JSP中读取它(最好通过JSTL)
答案 1 :(得分:10)
试试这个:
${pageContext.servletContext}
答案 2 :(得分:2)
我认为这应该在JSP页面上正常工作:
<body>
<%
out.print(getServletContext().getAttribute("attribute"));
%>
</body>
答案 3 :(得分:2)
如果您希望使用getRealPath()方法,可以考虑查看名为“c:url”的jstl标记
<c:url value="text/en" />
答案 4 :(得分:1)
只需使用application.getRealPath(" ");
。