Как я должен получить доступ к ServletContext от .jsp? Например, как я могу назвать getRealPath метод из .jsp.
Вот Сервлет, который хорошо работает:
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, чтобы сделать точно то же самое, как сервлет выше делает.
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<body>
... // What should I insert here
</body>
</html>
ServletContext
доступен через неявный объект приложения
.
Поскольку каждый JSP является сервлетом, вы также можете использовать getServletContext ()
.
Но ... избегайте использования подобного кода в JSP. Вместо этого получите нужное значение в своем сервлете и установите его как атрибут запроса, просто прочитав его в JSP (предпочтительно через JSTL)
Я думаю, что это должно нормально работать на странице JSP:
<body>
<%
out.print(getServletContext().getAttribute("attribute"));
%>
</body>
если вы хотите использовать метод getRealPath (), вы можете изучить тег jstl с именем 'c: url'
<c:url value="text/en" />