SORU
25 EYLÜL 2008, PERŞEMBE


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
7 Mayıs 2009, PERŞEMBE


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);
    }
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • FrameCityJackal

    FrameCityJac

    4 Aralık 2010
  • LaKe Lightroom Tutorials

    LaKe Lightro

    22 Temmuz 2014
  • Matt Stokes

    Matt Stokes

    22 Ocak 2008