2013-08-23 1 views
2

서블릿 MainContent를 작성했습니다. 그리고 나는 그런 매핑을 가지고서블릿 url-pattern을 "/"로 작성하십시오.

<servlet> 
    <display-name>MainContent</display-name> 
    <servlet-name>MainContent</servlet-name> 
    <servlet-class>ge.test.servlet.MainContent</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>MainContent</servlet-name> 
    <url-pattern>/main</url-pattern> 
</servlet-mapping> 

그래서, 내가 링크에 갈 때 : // localhost를 : 8080/MyAppl/I는 서블릿의 doGet() 메소드에 입력 주. 그런 다음 index.jsp에 RequestDispatcher 전달을 작성합니다.

모두 작동합니다!

RequestDispatcher rd = context.getRequestDispatcher("/index.jsp?language="+ lang); 
rd.forward(request, response); 

모든 작품!

질문 :

지금 내가 URL 패턴을 변경해야합니다. 그와 같은 것이 필요합니다. : localhost : 8080/MyAppl/에 입력하면 내 서블릿으로 리디렉션해야합니다. 그래서 나는 그 같은 것을 만들 :

<url-pattern>/</url-pattern>

확인, 작동! 서블릿으로 리디렉션되었습니다. 하지만 뭔가 잘못되었습니다. 서블릿에서 RequestDispatcher를 전달하면 index.jsp에 이미지와 CSS가 없습니다.

Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://localhost:8080/MyApp/font/font_big.css". localhost/:15 
Resource interpreted as Image but transferred with MIME type text/html: "http://localhost:8080/MyApp/IMG/company.gif". 

내가 어떻게 문제를 해결할 수 있습니다 : 나는 불을 지르고 콘솔에서 볼 때 오류가 있음을 , 내가 본 것?

+0

당신이 발생한 문제는 모든 자원 경로가 /로 시작한다는 것입니다. 리소스를 처리하기 위해 (예를 들어 모든 리소스가 "/ Resourcde"로 시작하는) 일반적인 URL 패턴을 사용하여 리소스를 처리하고 리소스 처리기 서블릿 매핑을 "/"web.xml 파일 – DwB

+0

에 매핑하면 스프링 솔루션을 보여줍니다. http://stackoverflow.com/questions/6047150/using-spring-resourceservlet-to-serves-multiple-resources-simultaneously – DwB

+0

스프링을 사용하지 마십시오. 서블릿과 JSP 만 사용합니다. 예를 들어 줄 수 있습니까? – grep

답변

2

예, @DwB가 지적한 것처럼 '/'컨텍스트는 문제가되는 URL 패턴이며 문제가 발생합니다.

사용

<servlet-mapping> 
    <servlet-name>MainServlet</servlet-name> 
    <url-pattern></url-pattern> 
</servlet-mapping> 

대신. 이것을 수행하는 것은 "서블릿 3.0 방식"입니다.

소스

[1] http://www.coderanch.com/t/366340/Servlets/java/servlet-mapping-url-pattern

[2] How can I map a "root" Servlet so that other scripts are still runnable?

+0

그래서 특수 URL 패턴으로 빈을 사용하십시오. – mico

+0

예! 그 작품! – grep

관련 문제