Вопрос

В моем сервлете я хотел бы получить доступ к корню контекста, чтобы можно было выполнить минимизацию JavaScript.

Можно было бы выполнить минимизацию как часть процесса установки, но я бы хотел сделать это при запуске сервлета, чтобы снизить стоимость реализации.

Кто-нибудь знает способ получения контекстного каталога, чтобы я мог загружать и записывать файлы на диск?

Это было полезно?

Решение

Это должно дать вам реальный путь, который вы можете использовать для извлечения/редактирования файлов.

Ссылка на документацию Javadoc

Мы делаем нечто подобное в прослушивателе контекста.

public class MyServlet extends HttpServlet {

    public void init(final ServletConfig config) {
        final String context = config.getServletContext().getRealPath("/");
        ...
    }

    ...
}

Другие советы

В моем сервлете я хотел бы получить доступ к корню контекста, чтобы можно было выполнить минимизацию JavaScript.

Вы также можете получить доступ к файлам в веб-контенте, ServletContext#getResource().Итак, если ваш JS-файл, например, расположен по адресу WebContent/js/file.js то вы можете использовать следующее в своем Servlet чтобы получить File ручка этого:

File file = new File(getServletContext().getResource("/js/file.js").getFile());

или чтобы получить InputStream:

InputStream input = getServletContext().getResourceAsStream("/js/file.js");

Тем не менее, как часто вам нужно минимизировать файлы JS?Я никогда не видел необходимости в минимизации на основе запросов, это только привело бы к излишнему увеличению накладных расходов.Вероятно, вы захотите сделать это только один раз во время запуска приложения.Если да, то с помощью Servlet потому что это плохая идея.Лучше использовать ServletContextListener и делай свое дело contextInitialized().

Я гуглил результат и ничего не нашел.На страницах JSP, которым необходимо использовать Java Script для доступа к текущему контекстПуть на самом деле это довольно легко.

Просто вставьте следующие строки в свой HTML-голова внутри script блокировать.

// set up a global java script variable to access the context path
var contextPath = "${request.contextPath}" 

Ты имеешь ввиду:

public class MyServlet extends HttpServlet {

    public void init(final ServletConfig config) {
        final String context = config.getServletContext();
        ...
    }

    ...
}

Или что-то более сложное?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top