Home

Jeong-Yoon

17 Mar 2020

Web 02

forward

  • 현재 url에서 결과물만 가지고 와서 보여주기 때문에 url은 변화가 없다.
  • 결과를 가져와서 보여주기 때문에 영역을 공유한다.
  • HTML의 페이지 이동 방식
    • JSP와 별개로 영역 공유의 개념과 관련이 없다. (form, a)
    • a 태그(HTML의 이동 방식) - 영역을 공유하지 않는다.
  • JSP의 페이지 이동 방식
    • JSP 내장 영역에 대한 개념이 존재 (forward, sendRedirect)

JSP 태그(액션 태그)

  • 파라미터 전달(Parameter)
    • 대상에게 메소드의 인자처럼 단순히 데이터 전달
    • HTML 문서 상에 존재하는 데이터 -> *클라이언트
      서버단의 데이터가 아닌 클라이언트단의 데이터 활용(param. , getParameter)
  • 영역을 공유(Attribute)
    • 내 자신 영역에 존재하는 데이터를 같이 사용
    • 서버단에서 공유되는 영역 -> *서버
  • indexTest.jsp -> forwardSet.jsp
    • 파라미터 전달, 영역을 공유하는 것은 아니다.
  • forwardSet.jsp -> user.jsp
    • 파라미터 전달, 영역을 공유하는 것은 아니다.
  • : forward, include에서 활용, 파라미터 전달

[전달된 파라미터를 받는 방법]
- param.id -> EL의 받는 방법
- request.getParameter("id") -> JSP의 받는 방법

ex) forwardSet.jsp?id=yes
- 파라미터(전달 인자) -> id
- 값(전달된 데이터)   -> yes
<!-- 파라미터를 전달하지 않은 경우 -->
<jsp:forward page="admin.jsp"/>

<!-- 파라미터를 전달하는 경우 -->
<jsp:forward page="user.jsp">
	<jsp:param name="uid" value="${ param.id }" />
</jsp:forward> --%>
<!-- 전달되는 파라미터로 하는 것은 html. 여태까지 실행되는 것은 html. jsp가 아님. -->

redirect

  • 결과물을 가져와서 보여주는 것이 아니라 이동을 한다.
  • 현재 url에서 redirect를 만나면 해당 url로 이동을 하기 때문에 url이 달라진다.
  • html의 a태그 처럼 이동만 하기 때문에 영역을 공유하지 않는다.
  • sendRedirect 방식으로 이동 시 스크립틀릿 활용
<% response.sendRedirect("admin.jsp"); %>
<!-- 유저에게 응답으로 admin.jsp로 이동시키겠다. -->
  • 영역을 공유하지 않기 때문에 sendRedirect는 파라미터를 포함하여 전달하는 방법이 없다.
    따라서 URL에 파라미터 정보를 포함하는 GET 방식을 흉내내야한다.
GET URL 표현 : www.google.com/search?q=java
// 구글 주소를 분석 -> www.google.com/search 페이지로 이동하되, GET 방식 파라미터인 q를 포함해라.
// URL의 ? 기호 이후는 GET 전송의 파라미터 형식임을 활용
String path = "user.jsp?id=" + request.getParameter("id");
response.sendRedirect(path); // user.jsp?id=yes

cookie

HTTP의 특징

  • Connection-less
    • 클라이언트의 request를 서버에 보내고 서버는 클라이언트에게 response를 보내면 연결이 끊기는 특징
    • request : 요청 정보를 저장하는 객체
  • State-less
    • 접속을 끊는 순간 서버와의 통신 유지가 사라지는 특징

쿠키(Cookie)

  • HTTP의 일종으로 클라이언트에 데이터를 저장하는 파일
  • Login, HOST 정보 등을 저장
    • 단, 서버가 아닌 클라이언트에 저장되는 방식이므로 보안에 취약
      쿠키로 저장하는 정보는 중요 정보가 아니어야 하며, 어쩔 수 없는 상황이라면 데이터를 암호화하여 저장

Percent-Encoding (퍼센트 인코딩, URL Encoding)

  • URL에 문자를 표현하기 위한 문자 인코딩 방법
  • 16진수 단위로 표현
    ex) %ED%8F%AC%EC%8A%A4

Til next time,
Jeong-Yoon at 00:00

scribble