JSP 점프 방식
4837 단어 jsp
서버 쪽 에서 작 동 합 니 다.forward()를 사용 할 때 Servlet engine 는 현재 Servlet 에서 HTTP 요청 을 전달 합 니 다. or jsp 다른 Servlet JSP 나 일반 HTML 파일 로 이동
다음 과 같이 매개 변 수 를 전달 할 수 있 습 니 다.
RequestDispatcher rd = context.getRequestDispatcher("/jsp/forward.jsp?name=zhangsan");
RequestDispatcher rd = context.getRequestDispatcher("/F?name=jingjing");
다시 지정 하면 브 라 우 저 주소 표시 줄 URL 이 변 하지 않 습 니 다.
: servlet
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
ServletContext context = getServletContext();
//forward() jsp
RequestDispatcher rd = context.getRequestDispatcher("/jsp/forward.jsp?name=zhangsan");
//forward() servlet F servlet url-pattern servlet
//RequestDispatcher rd = context.getRequestDispatcher("/F?name=jingjing");
request.setAttribute("info", "hello"); //
rd.forward(request, response);
}
경로 앞 에"/"가 있어 야 합 니 다. , "/"항목 이름 그렇지 않 으 면 다음 과 같은 이상 을 보고 합 니 다.java.lang.IllegalArgumentException: Path F does not start with a "/" character
com.org.MyServlet.doGet(MyServlet.java:31)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
forward.jsp 에서 인 자 를 얻 은 것 은: String name = request.getParameter("name");
servlet :
String name = request.getParameter("name");
String info = (String)request.getAttribute("info");
:response.sendRedirect()
,sendRedirect() , servlet?name=zhangsan
URL
: jsp
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
response.sendRedirect("jsp/forward.jsp");
//
//response.sendRedirect("jsp/forward.jsp?name=zhangsan");
}
servlet
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
response.sendRedirect("F");
//
//response.sendRedirect("F?name=zhagnsan");
}
비교:
a)두 개 모두 페이지 의 이동 forward 를 실현 할 수 있 습 니 다.용기 에서 제어 권 의 방향 입 니 다.클 라 이언 트 브 라 우 저 주소 표시 줄 에 방향 을 바 꾼 주 소 를 표시 하지 않 습 니 다.
response.sendRedirect()는 완전한 점프 입 니 다.브 라 우 저 는 점프 주 소 를 얻 고 요청 링크 를 다시 보 냅 니 다.그러면 브 라 우 저의 주소 표시 줄 에서 점프 후의 링크 주 소 를 볼 수 있 습 니 다.
b)둘 다 jsp 나 servlet 로 넘 어 갈 수 있다. 매개 변 수 를 전달 할 수 있 습 니 다.
그러나 response.sendRedirect()가 뛰 면 뒤의 코드 는 더 이상 실행 되 지 않 습 니 다.
예:
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("hello kity"); //
response.sendRedirect("F?name=zhagnsan");
out.println("good"); //
}
전 자 는 더욱 효율 적 이 고 전자 가 기본 적 인 수 요 를 만족 시 킬 수 있 을 때 RequestDispatcher.forward()방법 을 사용 합 니 다.
3.다른 점프 방식
a)HTTP header 의 Location 속성 을 수정 하여 방향 을 바꾼다.
b)주소 표시 줄 을 직접 수정 하여 페이지 의 방향 을 바 꿉 니 다.
c)jsp 설정 후 몇 초 후 자동 방향 변경 response.setHeader("refresh","3;url=forward2.jsp");
: 。
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JSP| EL (Experession Language)텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.