Obecně mi ten přístup přes váš vlastní servlet přijde jako
perspektivnější řešení - stanovíte si tvar URL a ten budete v servletu
interpretovat. Až budete chtít mít soubory v blobech v databázi nebo v
document management systému nebo někde v mracích, tak předěláte
implementaci servletu, ale rozhraní (URL) vám zůstane. Možná se vám z
toho DefaultServletu podaří leccos převzít, jako třeba logiku zjišťování
typu MIME nebo výrobu všech možných hlaviček odpovědi.
Honza Dvořák
MathAn Praha
Dne 10.2.2010 9:27, Ondra Medek napsal:
Aha, jestli není problém v security manageru, a navíc chcete řídít
přístup podle IP klienta, tak nejlepší bude asi ten vlastní download
servlet. Zagooglujte na "servlet static content". V Tomcatu statický
obsah servíruje jakýsi DefaultServlet.
Také možné řešení je dát Apache před Tomcat, a řídít přístup z Apache.
Ale ten servlet je více flexibilní (dělal jsem něco podobného).
2010/2/9 Martin Kuba<[email protected]>:
Ondra Medek napsal(a):
Administrator Tomcatu by mel moci vasemu servletu povolit primy
pristup do (vsech, vybranych) souboru kdekoliv na filesystemu, viz
http://tomcat.apache.org/tomcat-5.5-doc/security-manager-howto.html
V security manageru problém není, jestli to dobře chápu.
Jde o to, že soubory jsou mimo adresář webaplikace, takže tomcat
je nemůže sám servírovat.
Napadlo mě jedno řešení, a to ve WEB-INF/web.xml zaregistrovat
ServletContextListener, tj.
<listener>
<listener-class>cz.moje.MujListener</listener-class>
</listener>
který při startu aplikace zkontroluje, jestli
existuje link na adresář, a když ne, vytvoří ho. Kam má link
ukazovat může brát z getServletContext().getInitParameter("adresar")
a hodnota bude v META-INF/context.xml jako
<Parameter name="adresar" value="/nekde" override="true"/>
takže po redeploy bude link vždycky existovat.
Makub
2010/2/9 Ivan Polak<[email protected]>:
Zdravim konferenciu,
chcel som si spravit jednoduchy publikacny system, kde pouzivatel zada
clanok a vie pripojit subory ako prilohy. tieto subory ukladam do
adresara, ktory je mimo aplikacie, tak aby undeploy a nasledny deploy
novej verzie nemal "dosah" na tento adresar. administrator kde chcem v
tomcat-e spustit tuto aplikaciu ma upozornil, ze ak chcem priamo
pristupovat k tomuto adresaru bude vzdy po deploy novej verzie musiet
vytvorit linku na tento adresar, ktoru vytvori v adresary webapp teda
tam kde je subor index.jsp. Alebo druha moznost, musim vytvorit tzv.
download servlet, ktory bude tieto subory nacitavat a odovzdavat na
vystup. je este aj nejaka ina moznost, pripadne co by ste odporucali.
dakujem
Ivan
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Supercomputing Center Brno Martin Kuba
Institute of Computer Science email: [email protected]
Masaryk University http://www.ics.muni.cz/~makub/
Botanicka 68a, 60200 Brno, CZ mobil: +420-603-533775
--------------------------------------------------------------