PHP's время () возвраты текущая метка времени Unix. С этим можно использовать дата () функция для форматирования его к потребностям.
$date = date('Format String', time());
Как Paolo, упомянутый в комментариях, второй аргумент избыточен. Следующий отрывок эквивалентен тому выше:
$date = date('Format String');
Если вы хотите сделать это только с помощью Spring, это возможно, но немного беспорядочно:
Как только все это будет сделано, все запросы, которые не могут быть сопоставлены с вашими контроллерами, будут перенаправлены на ваш HttpRequestHandler
и обслуживаться «как есть».
Что вы используете для обслуживания своих статических изображений? Если это Apache, вы можете настроить Apache так, чтобы он не передавал запросы css / js на ваш сервер приложений.
Если вы используете Tomcat, вы должны поместить что-то вроде этого в свой httpd.conf:
JkUnMount /*.css webapp
Где 'webapp' - это запись из вашего worker.properties.
Извините, я не могу дать вам чистое решение Spring, но я делаю это так.
Один из способов сделать это - использовать фильтры. Придется написать немного собственного кода, но это неплохо. Вот пример, если вы не хотите передавать файлы * .css или * .js в сервлет Spring:
web.xml:
<filter-mapping>
<filter-name>fileTypeFilter</filter-name>
<filter-class>foo.FileTypeFilter</filter-class>
<url-pattern>/*</url-pattern>
</filter-mapping>
Класс Java:
public class FileTypeFilter implements Filter {
public void init(FilterConfig conf) {
// init logic here
}
public void destroy() {
// release resources here
}
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws ServletException, IOException {
if(shouldExclude(req)) {
chain.doFilter(req, res);
//some logic so the request doesnt go to the servlet
//maybe you could just forward
//the request directly to the file getting accessed. not sure if that would work
}
//file should be passed to the servlet; you can do some logic here
//if you want
}
private boolean shouldExclude(ServletRequest req) {
if(req instanceof HttpServletRequest) {
HttpServletRequest hreq = (HttpServletRequest) req;
return (hreq.getRequestURI().endsWith(".css") ||
hreq.getRequestURI().endsWith(".js"));
}
return false;
}
}
Я не тестировал это, но думаю он будет работать.
EDIT : В спецификации сервлета нет никакой функции исключения. Я не думаю, что в Spring есть хороший способ сделать это, но по существу он достигает того же самого в вашем сообщении.
РЕДАКТИРОВАТЬ 2 : Если вы хотите иметь возможность легко изменять то, что фильтруется, вы можно просто использовать Spring для вставки чего-либо в фильтр во время выполнения.
РЕДАКТИРОВАТЬ 3 : Я только что понял, что если вы перейдете прямо к файлу, он снова выполнит фильтрацию, и вы попадете в бесконечный цикл.
Есть ли у вас согласованные расширения для запросов, которые вы хотите обработать диспетчером Spring (я считаю, что большинство из примеров Spring использовать * .htm)? В этом случае вы можете сопоставить расширения, которые хотите обработать, чтобы обходить ваши файлы css и js.
В противном случае я бы согласился с Nalandial, подход фильтра, вероятно, является лучшим решением на данном этапе.
Я решил, обслуживая статический контент через сервлет «по умолчанию», который просто передает контент клиенту. Итак, мой файл web.xml выглядит так:
<servlet>
<servlet-name>MyApp</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyApp</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping> <!-- The 'dynamic' content -->
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.css</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.jpg</url-pattern>
</servlet-mapping> <!-- The 'static' content -->
Надеюсь, это поможет.
Было бы проще использовать UrlRewriteFilter для перенаправления запроса на ваш сервлет, вот пример urlrewrite.xml
<urlrewrite>
<rule>
<from>^/img/(.*)$</from>
<to>/img/$1</to>
</rule>
<rule>
<from>^/js/(.*)$</from>
<to>/js/$1</to>
</rule>
<rule>
<from>^/css/(.*)$</from>
<to>/css/$1</to>
</rule>
<rule>
<from>^/(.*)$</from>
<to>/app/$1</to>
</rule>
<outbound-rule>
<from>/app/(.*)$</from>
<to>/$1</to>
</outbound-rule>
</urlrewrite>
ПРИМЕЧАНИЯ:
<правило>
находится внизу, поэтому сначала будут обнаружены img, js, css
не является обязательным и используется только для того, чтобы существующее
render / some
вместо / app / some