Hi, PROBLEM: Please help with my servlet mapping issue. It's calling my redirector class repeately and the redirector does not work.
REQUIREMENTS: I want to give my client a personalized URL like http://www.mydomain.com/myWebApp/FirstName_LastName (NOTE: no file extension). When the user enters that URL above, it would be processed by a servlet RequestProfileRedirectorServlet, which is defined in web.xml and it has a servlet mapping to "/*" (NOTE: see servlet code and web.xml config below). The main task for the RequestProfileRedirectorServlet is to get the request path info (NOTE: in my case it's /FirstName_LastName), build a redirect URL, and redirect it to a Struts welcome action (welcome.do) to query the user profile from the database and display the user profile in a welcome view. An example of a redirect URL would be http://www.mydomain.com/myWebApp/welcome.do?cid=FirstName_LastName SOURCE: public final class RequestProfileRedirectorServlet extends HttpServlet implements IConstants { /** * Commons Logging instance. */ private Log log = LogFactory.getLog(PACKAGE); public RequestProfileRedirectorServlet() { super(); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { } /** * This method handles the GET requests from the client. */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { String servletPath = request.getServletPath(); String contextPath = request.getContextPath(); String pathInfo = request.getPathInfo(); String queryString = request.getQueryString(); String requestURL = request.getRequestURL().toString(); String requestURI = request.getRequestURI(); log.debug("servletPath --> " + servletPath); log.debug("contextPath --> " + contextPath); log.debug("pathInfo --> " + pathInfo); log.debug("queryString --> " + queryString); log.debug("requestURL --> " + requestURL); log.debug("requestURI --> " + requestURI); String customerId = pathInfo; StringBuffer sbURL = new StringBuffer(); sbURL.append("http://localhost:8080/msa/welcome.do?"); sbURL.append("&cid=" + customerId); response.sendRedirect(response.encodeRedirectURL(sbURL.toString())); } } WEB.XML <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <display-name>My Application</display-name> <servlet> <servlet-name>Log4jInitServlet</servlet-name> <servlet-class>com.pps.msa.actions.Log4jInitServlet</servlet-class> <init-param> <param-name>LOG4J_CONFIG_FILE</param-name> <param-value>WEB-INF/classes/com/pps/msa/resources/log4j.properties</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet> <servlet-name>redirector</servlet-name> <servlet-class>com.pps.msa.actions.RequestProfileRedirectorServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping> <servlet-name>redirector</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <!-- more other stuffs... --> </web-app> Do you know what I'm missing? Thanks in advance for your help! Tuan --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]