개발 문제 기록: java. lang. IllegalStateException 이상

프로그램 테스트 를 할 때 자주 문제 가 발생 합 니 다. 이번 에는:
java.lang.IllegalStateException

response. sendRedirect () 방법 을 사용 하 는 줄 에서 발생 합 니 다.
영문 도 모 르 고 검색 하여 해결 방법 을 얻 었 습 니 다. 즉, response. sendRedirect () 입 니 다.
문장 후 return 증가;문장 만 있 으 면 된다.
인용 하 다.http://topic.csdn.net/t/20040915/11/3374277.html의 설명:
인용 하 다.
response. sendRedirect 이후 return 한 마디 를 따라 가 야 합 니 다.  
  response. sendRedirect 가 브 라 우 저 를 통 해 방향 을 바 꾸 는 것 을 알 고 있 기 때문에 페이지 처리 가 끝 난 후에 만 실제 동작 이 있 습 니 다.기왕 네가 이미 방향 을 바 꾸 려 고 한다 면, 뒤의 수출 은 또 어떤 의의 가 있 겠 니?그리고 뒤의 출력 으로 인해 전향 에 실패 할 수도 있 습 니 다.
이 이상 을 일 으 킬 수 있 는 다른 코드 와 해결 방법 을 얻 을 수 있 습 니 다.
인용 하 다http://hi.baidu.com/%E6%E4վ%B7 카르보닐 / blog / item / 74a9cc 90362a8f8ba977a4be. html
인용 하 다.
이상 던 지기:
ERROR [Engine] StandardWrapperValve[jsp]: Servlet.service() for servlet jsp threw exception
java.lang.IllegalStateException: getOutputStream() has already been called for this response
종합 분석 원인 은 다음 과 같다.
이것 은 웹 용기 에서 생 성 된 servlet 코드 에 out. write (") 가 있 습 니 다. 이것 은 JSP 에서 호출 된 response. getOutputStream () 과 충돌 합 니 다.
즉, Servlet 규범 설명 은 response. getOutputStream () 을 호출 할 수 없고 response. getWriter () 를 호출 할 수 없습니다. 어느 것 을 먼저 호출 하 든 두 번 째 호출 할 때 IllegalState Exception 을 던 져 야 합 니 다. jsp 에서 out 변 수 는 response. getWriter 를 통 해 얻 을 수 있 기 때문에 프로그램 에서 response. getOutputStream 도 사용 하고 out 변 수 를 사 용 했 습 니 다.이상 의 오류 가 발생 했 습 니 다.
해결 방안:
1. 프로그램 에 추가:
out.clear();
out = pageContext.pushBody();
하면 된다.
나 는 페이지 에서 그림 을 출력 한 후에 이 두 마디 를 썼 다. 코드 는 다음 과 같다.
/ / 페이지 로 이미지 출력
ImageIO.write(image, "JPEG", response.getOutputStream());
out.clear();
out = pageContext.pushBody();
2.%] [% 사이 에 내용 을 쓰 지 마 세 요. 빈 칸 과 줄 바 꿈 자 를 포함 합 니 다.
3. 페이지 에 그림 을 쓸 때 flush () 가 필요 합 니 다.
 OutputStream output=response.getOutputStream();
 output.flush();
4, 페이지 에 < meta http - equiv = "Content - Type" content = "text / html; charset = GB 18030" > 을 쓰 는 것 을 확인 합 니 다.

좋은 웹페이지 즐겨찾기