2014-09-17 3 views
1

하이퍼 링크를 통해 연결하려고하는 서블릿이 있습니다. 해당 폴더의 JSP 파일에 대한 하이퍼 링크를 사용하여 Servlet의 폴더 가용성을 확인했습니다. 확장자가 .java 인 하이퍼 링크에서 요청했을 때 서블릿 자체를 확인한 결과 브라우저에 해당 서블릿 코드 이 있습니다.서블릿 리소스를 사용할 수 없습니다. HTTP 404

해당 서블릿에 doGet 또는 doPost 중 하나를 연결하려고하면 리소스가 사용할 수없는 404 HTTP 오류가 발생합니다.

의 Web.xml :

<!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>Archetype Created Web Application</display-name> 
    <servlet> 
     <servlet-name>TestServlet</servlet-name> 
     <servlet-class>controllers.TestServlet</servlet-class> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>TestServlet</servlet-name> 
     <url-pattern>/controllers</url-pattern> 
    </servlet-mapping> 
    <welcome-file-list> 
     <welcome-file>/views/welcomePage.jsp</welcome-file> 
    </welcome-file-list> 
</web-app> 

에 어떤 문제가 있습니까?

+1

브라우저에 입력하신 URL은 무엇입니까? – msrd0

답변

0

당신은 URL 패턴에 /컨트롤러을 서블릿을 매핑 - 당신은 당신의 질문에 게시 할 수 있도록 귀하의 게시물이 http://localhostOrWhatever/maybeYourWebAppDirectoryDependingOnSetup/controllers

+0

이것이 실제로 OP의 문제라는 것을 어디에서 알 수 있습니까? – msrd0

+0

@ msrd0 "확장자가 .java 인 하이퍼 링크에서 요청할 때 브라우저에서 해당 서블릿 코드를 얻었습니다." - 자신의 서블릿에 액세스하려고 시도하는 URL과 같은 소리가 내게 정확하지 않습니다. –

+0

OP가'file : //'프로토콜을 사용하는 것처럼 보입니다. 그러나 그 질문은 현재 매우 불분명하다고 생각합니다. – msrd0

1

에 가야

그것을 요청할 때 나는 또한 서블릿 자체를 확인

.java 확장자를 가진 하이퍼 링크

나는 서블릿 클래스 파일을 웹 폴더 아래의 폴더에 넣고 있다고 생각한다. 여물통을 통해 액세스하십시오. JSP로의 반대로

project 
    src 
    web 
    controllers 
     TestServlet.java 
    page.jsp 
    WEB-INF 
     classes 

은 서블릿 클래스는 WEB-INF/classes 폴더합니다 (의 .class 파일이 아닌 된 .java 파일)에 있어야합니다 파일 및 클래스의 소스 코드는 src에 있어야합니다 그래서 패키지 컨트롤러에서 프로젝트의 폴더 : 이클립스, 넷빈즈 또는 다른 IDE를 사용하는 경우

project 
    src 
    controllers 
     TestServlet.java 
    web  
    page.jsp 
    WEB-INF 
     classes 
      controllers 
      TestServlet.class 

원본 폴더에 자바 클래스를 넣을 때 자동으로 WEB-INF에의 .class를 넣어/클래스 폴더.

관련 문제