(1). forward() 방법 javax.servlet.RequestDispatcher 클래스를 사용하세요 RequestDispatcher rd = getServletContext().getRequestDispatcher("url"); rd.forward(requestVar, requestVar); 서블렛의 진입 매개변수를 전달합니다. 즉: getServletContext().getRequestDispatcher("url").forward(requestVar,responseVar);
서버 측 서블릿을 회전시키는 방법은 4가지가 있습니다: 1. getRequestDispatcher() for ServletContext 2. getNamedDispatcher() for ServletContext 3. getRequestDispatcher() for ServletRequest 4. ServletResponse의 sendredirect() 조향. 앞으로는 더 효율적이기 때문에 앞으로 나아가는 방법입니다. 서블렛응답의 sendredirect() 메서드는 순방향 메서드가 사용할 수 없을 때만 사용하세요.
(2).response.sendRedirect(url); 사실, 이 기능은 브라우저에 특별한 헤더를 보내고, 브라우저는 지정된 페이지로 전환하기 때문에 sendRedirect를 사용하면 브라우저의 주소 변경을 브라우저의 주소 표시줄에서 확인할 수 있습니다. 새 페이지는 이전 페이지의 pagecontext(request, response,...를 처리할 수 없습니다. 반대. response.sendRedirect 뒤에는 return이 따라야 합니다;
(3). HTML 언어로의 자동 점프 <html> <head> <meta http-equiv="refresh" content="0;url="http://www.baidu.com"> 0은 대기 시간이며, 5로 설정하면 5초 대기 후 점프가 시작된다는 의미입니다 </head> …………
(4). 자바스크립트 점프 A: <script languate="javascript"> window.location.replace("http://www.baidu.com"); </script> B: window.location 속성에 window.location="url"이라는 값을 직접 할당할 수도 있는데, 이는 A와 달리 이력이 있습니다 C: <script languate="javascript"> document.location.href("http://www.google.com"); </script> 문서의 경우, 위치는 객체가 아닙니다. document.location=document.url D:history 객체의 forward(), back(), go() 메서드는 셰이핑 항목 매개변수를 필요로 합니다 <a href="javascript:history.go(-1)" > 이전 단계로 돌아가</a>세요 <a href="javascript:history.back()"과 동등한 > 이전 단계로 돌아가</a>는 방식입니다 E: document.formName.action="test.jsp"; document.formName.submit(); JS 커밋 메서드 첫 번째 유형: <스크립트 언어="javascript" 유형="text/javascript"> window.location.href="login.jsp?backurl="+window.location.href; </script> 두 번째 유형: <스크립트 언어="javascript"> alert("return"); window.history.back(-1); </script> 세 번째 유형: <스크립트 언어="javascript"> window.navigate("top.jsp"); </script> 네 번째 유형: <script language="JavaScript"> self.location='top.htm'; </script> 다섯 번째 유형: <스크립트 언어="javascript"> 경고("불법 접근!") ); top.location='xx.jsp'; </script>
(5). <jsp:forward page="nextpage.jsp"/> 만큼: <jsp:forward page="/servlet/login" /> <jsp:forward page="/servlet/login"> <jsp:param name="username" value="jsmith" /> </jsp:forward> <jsp:forward> 태그는 사용자 요청이 포함된 요청 객체를 한 JSP 파일에서 다른 파일로 전달합니다. <jsp:forward>tag, 실행되지 않습니다. <jsp:param> 태그를 사용해 매개변수와 값을 객체 파일로 전송할 수 있으며, 객체는 매개변수를 처리할 수 있는 동적 파일이어야 합니다. 버퍼가 없는 출력을 사용 중이라면 <jsp:forward> 사용할 때 주의하세요. 만약 <jsp:forward> 사용하기 전에 jsp 파일에 이미 데이터가 있다면, 파일 실행이 잘못될 수 있습니다. JSP 페이지 점프 방법 컬렉션 1. response.sendRedirct("페이지로 점프"); 이 방법은 HTTP 프로토콜의 HEADER 부분을 수정하여 브라우저에 리디렉션 명령을 발송하여 리디렉션 웹 페이지의 내용을 표시하도록 합니다. 요청은 값을 패스 패스할 수 없습니다. 페이지로 넘어가기 전에 페이지의 모든 코드를 실행하세요. 주소 표시줄로 이동해 변경하세요. 다른 서버의 response.sendRedirct(http://www.sun.com) 페이지로 점프할 수 있습니다. 2.response.setHeader(); 이 방법은 response.sendRedirect와 마찬가지로 HTTP 프로토콜의 헤더 부분을 수정하여 수행됩니다. <% response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); 스트링 newLocn="/index.html"; response.setHeader("Location", newLocn); % > 3.<jsp:forward page="jump page"/> 이 방법은 서버가 먼저 버퍼에 데이터를 출력한 후 클라이언트로 콘텐츠를 보내는 메커니즘을 사용합니다. 원본은 전송하지 않고 페이지 내용을 전송합니다. 만약 <jsp:forward> 이전에 많은 출력이 있으면 이전 출력으로 버퍼가 가득 차면 자동으로 클라이언트로 출력됩니다. 이 경우 문장이 작동하지 않으므로 특히 주의해야 합니다. 요청은 값을 패스패스할 수 있습니다. 바로 페이지로 점프하면 다음 코드는 실행되지 않습니다. 점프 후에도 주소 표시줄은 변함이 없습니다. 다른 서버의 페이지로 점프할 수 없습니다. 그림은 절대적인 경로가 아니며 표시할 수 없습니다. 4. request.getRequestDispatcher("페이지로 이동"); 요청은 값을 패스패스할 수 있습니다. 페이지로 넘어가기 전에 페이지의 모든 코드를 실행하세요. 점프 주소 표시줄은 변함이 없습니다. 다른 서버의 페이지로 점프할 수 없습니다 <% RequestDispatcher rd = request.getRequestDispatcher("to.jsp"); rd.forward(request, response); %> 출력을 리디렉션하는 방법은 세 가지가 있습니다: RESPONSE. SETREDERECT("URL") 이 메서드는 HTTP 프로토콜의 HEADER 부분을 수정하여 브라우저에 리디렉션 명령을 발송하여 리디렉션된 웹 페이지의 내용을 표시하도록 합니다. response.sendRedirect("http://localhost:7001/index.html"); 다음 메서드는 HTTP HEADER 속성도 변경할 수 있으며, 이는 1과 동일하게 작동합니다. <%response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); 문자열 newLocn="/index.html"; response.setHeader("Location", newLocn); % > < JSP:FORWORD > 채택됨 이 방법은 서버가 먼저 버퍼에 데이터를 출력한 후 클라이언트로 버퍼 콘텐츠를 보내는 메커니즘을 사용합니다. 원본은 보내지 않고 페이지 내용을 전송합니다. 만약 <JSP:FORWORD> 이전에 많은 출력이 있으면 이전 출력이 버퍼를 채워 자동으로 클라이언트로 출력되면, 문장이 작동하지 않으므로 특히 주의해야 합니다. 한 JSP 페이지 내에 또 다른 JSP 페이지를 중첩하는 방법은 세 가지가 있습니다: 1. <%@ include file="header.jsp"%> 이 방법은 정적 페이지 로딩만 가능하며, 프로젝트 내 일반 페이지 헤더 header.jsp 및 footer.jsp 로딩을 구현하는 데 가장 일반적으로 사용됩니다. 2. <%@ include page="tt.jsp"%> 이 방법은 동적 페이지 로딩을 구현할 수 있지만, 페이지에 매개변수를 전달해야 합니다; 3. <iframe src="jsp's path" >(인라인 프레임워크)로 다른 jsp 페이지를 불러옵니다. 매개변수를 전달할 때 forward를 사용한다면, 다음과 같이 작성하세요: <%String str="You are logged in!"; %> <jsp:forward page="index.jsp> <jsp:param name="name" value= <%=str%>/> </jsp:forward> |