Java (JSP/Servlet): эквивалентный из getServletContext () из .jsp

Как я должен получить доступ к 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>
6
задан BalusC 24 May 2010 в 16:58
поделиться

4 ответа

ServletContext доступен через неявный объект приложения .

Поскольку каждый JSP является сервлетом, вы также можете использовать getServletContext () .

Но ... избегайте использования подобного кода в JSP. Вместо этого получите нужное значение в своем сервлете и установите его как атрибут запроса, просто прочитав его в JSP (предпочтительно через JSTL)

12
ответ дан 8 December 2019 в 03:26
поделиться

Я думаю, что это должно нормально работать на странице JSP:

<body>
<%
out.print(getServletContext().getAttribute("attribute"));
%>
</body>
3
ответ дан 8 December 2019 в 03:26
поделиться

Попробуйте это:

${pageContext.servletContext}
11
ответ дан 8 December 2019 в 03:26
поделиться

если вы хотите использовать метод getRealPath (), вы можете изучить тег jstl с именем 'c: url'

<c:url value="text/en" />
2
ответ дан 8 December 2019 в 03:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: