Sunucu uygulaması hizmet statik içerik için
Ben dağıtmak bir Web uygulaması üzerinde iki farklı kaplar (Tomcat ve İskelesi olan) varsayılan sunucu uygulamalarına hizmet veren statik bir içeriğe sahip farklı bir şekilde ele URL yapısı kullanmak istiyorum (details).
Bu nedenle kendi statik içerik (resim, CSS, vb.) hizmet vermek için web uygulaması içinde küçük bir sunucu eklemek için arıyorum. Sunucu uygulaması aşağıdaki özelliklere sahip olmalıdır:
- Hiçbir dış bağımlılıkları
- Basit ve güvenilir
If-Modified-Since
başlık için (getLastModified
yani özel yöntem) desteği- (İsteğe bağlı) gzip kodlama desteği, etags,...
Böyle bir sunucu uygulaması müsait bir yerde? Bulabildiğim en yakın sunucu uygulaması defterinden example 4-10.
Güncelleme:Kullanmak istediğim URL yapısı olduğunu merak ediyorsanız - - basitçe:
<servlet-mapping>
<servlet-name>main</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/static/*</url-pattern>
</servlet-mapping>
Tüm istekleri static
yol olmadıkça ana sunucu uygulaması geçirildi. Asıl sorun Tomcat varsayılan sunucu uygulaması değil al ServletPath hesap (yani göründüğü için statik dosyaları ana klasör) iken, İskele yok (öyle görünüyor static
klasör).
CEVAP
Tamamen bu durumda varsayılan sunucu özel uygulama, bu basit bir sunucu uygulaması kabın uygulanmasını talep sarmak için kullanabilirsiniz ihtiyaç var
package com.example;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class DefaultWrapperServlet extends HttpServlet
{
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
RequestDispatcher rd = getServletContext().getNamedDispatcher("default");
HttpServletRequest wrapped = new HttpServletRequestWrapper(req) {
public String getServletPath() { return ""; }
};
rd.forward(wrapped, resp);
}
}
Nasıl dosyaları kullanarak JSP/Sunucu ...
Sunucu uygulaması için bağımlılık 3.0 ...
Nasıl Java sunucu uygulaması bir filtr...
JSONP hizmet etmek için en iyi içerik ...
Nasıl IIS7 klasör ve uzantı için stati...