2012-06-21 1 views
2

Main.jsp리디렉션 페이지

String name = session.getAttribute("name").toString(); 
if (name == "" || name == null) { 

    response.sendRedirect("index.jsp"); 

} 

사용자 액세스 로그인하여이 페이지, 메인 페이지에 아무 문제가 없다. 사용자가 로그인하지 않고 페이지에 액세스하려고 할 때, 나는 index.jsp를 할 수있는 페이지를 리디렉션 할 만의 index.jsp로 리디렉션 방법

org.apache.jasper.JasperException: An exception occurred processing JSP page /main.jsp 

+0

TO 이 경우 세션의'name' 속성은'null'이 될 것입니다. 조금이라도이 프레임 워크를 모르지만 NullReferenceException이 발생한다고 생각합니다. 'name' 속성은 null이며 null 인 객체의 인스턴스 메소드 ('toString()')를 사용할 수 없습니다. 귀하의 경우'name == null' 검사는 null 참조 예외가 발생하기 전에 null을 검사 할 수 없기 때문에 완전히 쓸모가 없습니다! 내 힌트 :'toString()'을 실행하기 전에'session.getAttribute ("name")'이 null인지 확인하십시오. – sinni800

+0

자바를 쓰지 않지만 toString() 줄에서 try ... catch를 사용할 수 있습니까? 그런 다음 리디렉션을 수행하십시오. –

+0

@JasperMogg 그 방법도 효과가 있지만 "오류"라인에서 해결 방법과 비슷합니다. 그냥 시도해보십시오! " 또한 내가 아는 한 try-catching은 널 참조가 null 인 경우 모두 null에 대한 검사를 수행하는 것보다 CPU에서 훨씬 비쌉니다. – sinni800

답변

1

변화

String name = session.getAttribute("name").toString(); 

내가 SUS

String name = (String)session.getAttribute("name"); 
+0

왜 작동합니까? –

+0

나는 그것을 얻지도 못한다. 그것은'Attribute'가 빈 문자열에 캐스팅 할 수있는 프레임 워크 쿼크가 될 수도있다 ;-). 누가 알아? – sinni800

+0

@JasperMogg http://stackoverflow.com/questions/709263/whats-the-difference-between-casting-an-int-to-a-string-and-the-tostring-meth 이것은 나를 위해 일합니다! 고마워요 둘 다 FM –