전송 요청, 방향 변경 요청 및 페이지 이동 문제

3436 단어 웹 학습

전송 요청


요청 전송은 서버 행위이다. 즉, 사용자가 서버에 http 요청을 한 번 보냈는데 이 요청은 여러 개의 정보 자원 처리를 거친 후에 사용자에게 되돌아갈 수 있다. 각 정보 자원은 요청 전송 메커니즘을 사용하여 서로 요청을 전송한다. 사용자의 감각적으로 볼 때 요청 전송을 감지하지 못한다.
전송 요청 포인트:
  • 첫 번째 요청을 보내고 마지막 요청을 보내는 과정에서 웹 용기는 리퀘스트와response 대상을 한 번만 만들고 새로운 페이지는 같은 요청을 계속 처리합니다..
  • 그 본질은 서버가 리퀘스트 대상을 페이지 간에 서로 전달하는 것이다..
  • request 대상 정보 공용 가능..
  • 서버 내부에서 전송됩니다
  • 단 한 번의 요청
  • 주소 표시줄은 변하지 않습니다
  • 동일한 서버에서 완료해야 합니다

  • 코드 구현:
    // 
    RequestDispatcher dispatcher = req.getRequestDispatcher("/myservlet04.do");
    // 
    dispatcher.forward(req, resp);

    리디렉션 요청:


    요청은 클라이언트 비헤이비어입니다.서버 측은 첫 번째 요청에 응답할 때 브라우저가 다른 URL에 다시 요청을 보내서 전송의 목적을 달성하도록 한다.그것은 본질적으로 두 개의 request 대상에 대응하는 두 차례의 HTTP 요청이다.
    몇 가지 중요한 문제
  • 두 번의 요청이 있습니다
  • 주소 표시줄이 바뀔 수 있습니다
  • HttpServletRequest는 이 두 번의 요청에서 데이터를 공유할 수 없습니다
  • context,session역의 데이터를 공유할 수 있습니다
  • 서로 다른 서버에서 완성할 수 있습니다

  • 코드 구현
  • 방식1: 응답 헤더를 설정합니다
  • resp.setStatus(302);
    resp.setHeader("Location", "/myservlet04.do");
  • 방식 2: servlet에서 제공하는api를 사용합니다
  • resp.sendRedirect("myservlet04.do")

    전송과 리디렉션의 차이

  • 서버에서 전송된 것;방향을 바꾸는 것은 클라이언트가 완성한 것이다
  • 전송 속도가 빠르다.리디렉션 속도가 느리다
  • 전송된 것은 같은 요청이다.방향을 바꾸는 것은 두 번의 다른 요청이다
  • 전송은 전송된 코드를 실행하지 않습니다.리디렉션은 리디렉션 후의 코드를 실행합니다
  • 전송 주소 표시줄에 변화가 없음;주소 표시줄에 변화가 있습니다
  • 전송은 반드시 같은 서버에서 이루어져야 한다.방향을 바꾸면 서로 다른 서버에서 완성할 수 있다

  • 페이지 건너뛰기 문제


    방식1:javascript에서 페이지 이동
    window.location.href="http://localhost:8080/index.html";

    방식2: Html의 탭을 사용하여 페이지의 메타정보를 정의합니다.
    
    <meta http-equiv="refresh" content="5;url=http://www.baidu.com"/>

    방식 3: 전송을 요청하는 방식
    // 
    RequestDispatcher dispatcher = req.getRequestDispatcher("/a=index.html");
    // 
    dispatcher.forward(req, resp);

    방식 4: 리디렉션 방식
    resp.sendRedirect("/a.html")

    ajax 점프 페이지


    성공:
     $(window).attr("location","index.html");

    좋은 웹페이지 즐겨찾기