2014-07-11 2 views
1

사용자 이름과 암호를 허용하는 기본 로그인 페이지가 있으며 로그인 서블릿으로 리디렉션되어 세부 정보를 인증합니다.doPost()의 매개 변수 변경

또한 로그인 서블릿에 오는 모든 요청을 캡처하고 들어오는 요청 개체를 매개 변수 중 하나로 포함하는 새 개체를 만들고 전달합니다.

doPost() 메소드의 매개 변수를 변경하여 수신해야하는 새 객체를 반영했습니다. 나는 또한 서비스 방법의 변화를 반영했다.

그러나 여전히 오류가 발생합니다. HTTP 상태 405 - HTTP 메서드 POST는이 URL에서 지원되지 않습니다.

저를 도와주세요.

+1

코드를 입력하십시오. –

답변

0

doPost(...)의 서명을 변경 했으므로 메소드가 defaut doPost(HttpServletRequest, HttpServletResponse)을 덮어 쓰지 않으며 더 이상 호출되지 않습니다. 대신에 기본 메소드가 호출됩니다. doPost은 405 오류를 발생시키는 기본값입니다.

대신에 당신의 doPost의 서명을 변경하는, request.getAttribute("nameOfMyAttribute")

중요한 일을 사용하여 필터 (request.setAttribute("nameOfMyAttribute", myObject))에서 요청의 속성에서 개체를 포함하고, 서블릿에서의 doPost 내부를 검색 :하지 매개 변수와 속성을 혼동합니다.

+0

문제는 브라우저가 쿠키를 사용할 수없는 경우에 대비하여 해결 방법을 찾고 있다는 것입니다. 들어오는 요청 객체와 현재 세션 객체가있는 사용자 정의 Request 객체를 전달하기 위해 doPost()의 서명을 변경하려고합니다. 제안한대로 세션 객체를 속성으로 추가하려고하면 다른 JSP 페이지에서 해당 값을 가져올 수 없습니다. – user3828158

+0

P. URL 재 작성은 보안 문제 때문에 실현 가능한 해결책이 아닙니다. – user3828158

관련 문제