컴퓨터 지식 네트워크 - 컴퓨터 프로그래밍 - request.setAttribute()의 사용법이 너무 걱정됩니다.

request.setAttribute()의 사용법이 너무 걱정됩니다.

"forward는 클라이언트로부터의 리디렉션입니다. sendRedirect는 서버로부터의 리디렉션입니다. 서버에서 리디렉션하고 싶습니다."

위의 설명은 완전히 오해되었습니다! !

Forward는 현재 요청을 전달하는 리디렉션입니다. 동일한 컨테이너에서만 사용할 수 있으며 클라이언트의 요청 상태를 저장합니다.

sendRedirect는 리디렉션이며 동일한 컨테이너에서 사용하거나 다른 컨테이너로 요청을 보낼 수 있지만 요청 정보는 손실됩니다. 이는 요청을 다시 보내는 것과 같습니다.

request.setAttribute는 요청 필드에 요청 매개변수를 추가하므로 sendRedirect 이후에는 request.setAttribute 요청을 얻을 수 없습니다.

해결책(2개):

1. 동일한 서버(컨테이너)에서 리디렉션 작업을 수행하는 경우. 그런 다음 다음과 같이 변경할 수 있습니다.

request.setAttribute("cha", cha);

request.getSession () .setAttribute("cha", cha);

그러면

lt; Object a = (Object)request.getSession().getAttribute("cha");gt;

p>

그 외 사항은 변경되지 않습니다.

2. 서블릿에 다음과 같이 작성합니다:

Change

response.sendRedirect(“a.jsp”);

response.sendRedirect("a.jsp?a=cha");

그런 다음 a.jsp 페이지에서 직접

lt;=request. ("a")gt;

그렇습니다. lt; Object a = (Object)request.getAttribute("cha");gt;를 작성할 필요가 없습니다.

물론이죠. .forward도 구현할 수 있으니 더 이상 쓰지 않겠습니다.

上篇: 중국 시골의 DIY 야생 모델에서 글로벌 슈퍼모델까지, Lu Xianren은 어떻게 그렇게 유명해졌나요? 下篇: 엔트리급 중고 컴퓨터 조립기
관련 내용