Citat:
preff.net: Joksim...
Code:
java.lang.StackOverflowError
at javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.java:216)
at org.apache.catalina.core.ApplicationHttpRequest.getSession(ApplicationHttpRequest.java:545)
at javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.java:216)
at org.apache.catalina.core.ApplicationHttpRequest.getSession(ApplicationHttpRequest.java:545)
at javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.java:216)
at org.apache.catalina.core.ApplicationHttpRequest.getSession(ApplicationHttpRequest.java:545)
at javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.java:216)
at org.apache.catalina.core.ApplicationHttpRequest.getSession(ApplicationHttpRequest.java:545)
at javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.java:216)
at org.apache.catalina.core.ApplicationHttpRequest.getSession(ApplicationHttpRequest.java:545)
...
Da to ima smisla, jer je servlet-mapping * pa se stalno zove isti servlet. Onda mozes koristiti ovo sto je napisao Ivan, a uspeo sam da uradim i uz pomoc filtera. Dakle potpuno ista ideja kao servlet, u web.xml se deklarise filter i u filter-mappingu se upise url-pattern *, zatim kod filtera izgleda ovako:
Code:
public class RequestFilter implements Filter {
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest)request;
String path = req.getRequestURI();
String name = path.substring(path.lastIndexOf("/"));
if (name.endsWith(".jsp")) { // ako je JSP stranica onda je prikazi
chain.doFilter(request, response);
} else { // inace forwarduj do nje
req.getRequestDispatcher(name+".jsp").forward(request, response);
}
}
public void destroy() { }
public void init(FilterConfig cfg) throws ServletException { }
}
Prednost filtra nad servletom je ta da mozes prekinuti izvrsavanje tako sto na kraju metode ne napises chain.doFilter(request, response); tako da Tomcat nece uci u peskonacnu petlju...
Mada vidim da ces i ovako imati probleme sa slikama i drugim ne-jsp fajlovima, pa mozda ti je bolje da ne koristis format
http://www.mojsajt.com/stranica nego neki drugi npr. sa .html ekstenzijom? Napravis servlet ili filter ili koristis mod_rewrite tako da .html requeste forwarduje ka .jsp?