ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JSP/Servlet 이론(2)
    JSP Servlet 2022. 4. 29. 14:57

    <데이터 전송 : 3가지 조건>
    데이터를 전송하기 위해 사용하는 태그? <form> 태그

    1) action 값을 어디로 보낼지
    2) name 어떤 값을 보내는지
    3) submit 값을 보내는 시점
    <form "action" >
     ID : <input type="text" "name">
     PW : <input type="text" "name">
      <input "submit" value = "login">
    </form>

     

    ch2. 데이터 전송방식(Get/Post)

    (1) GET : 데이터 조회 요청
    - URL에 데이터를 포함시켜 요청
    - 데이터를 패킷의 Header(헤더)에 포함하여 전송
    - 전송하는 데이터의 길이에 한계(브라우저에서 제한)
    - 보안에 취약
    - 캐싱할 수 있음

     


    Query String이란?
    사용자가 입력한 데이터를 URL 주소 뒤에 함께 제공하는 방법
    ex) http://localhost:8081/test/servlet?키1=값&키2=값2

    (2) POST : 데이터 생성 요청
    - URL에 데이터를 노출하지 않고 요청
    - 데이터를 패킷의 Body(바디)에 담아서 전송
    - 전송하는 데이터의 길이에 제한 없음
    - 보안에 강함
    - 캐싱할 수 없음
    - 링크공유x
    ex) localhost:8082/1014/ex05login

     

    -----> 주의할 점 --> request.setCharacterEncoding잡아줘야 한글 인코딩 가능!!!


    (3) PUT : 데이터 수정 요청

    (4) DELETE : 데이터 삭제 요청

     

    * 참고
    tomcat 8버전 이상부터는 get방식의 한글 인코딩이 자동으로 UTF-8로 잡혀져 있음
    tomcat 8보다 낮은 버전을 사용한다면
    Sercers폴더 - server.xml - Connector 태그를 찾아서 속성으로 URIEncoding = "인코딩 방식"

     

     

    Servlet 
    - 요청 객체 : request
    - 응답 객체 : response
    - 화면에 출력스트림 : PrintWriter 
    ----> response.getWriter()
    - 한글 인코딩 : response.setCharacterEncoding
                      : response.setContentType

    - Servlet에서 데이터 받아오는 방법
    : request.getParameter("name값")
    --> 리턴타입 무조건 String
    : request.getParameterValues("name값")
    --> 값이 여러개일때 , 리턴타입 String[]

     

    <정리>

    Servlet
    - java언어 기반 
    - multi thread
    - HttpServlet 상속
    데이터전송 3가지 조건
    1) action : 어디로 보낼건지
    2) name : 어떤 값을 보낼건지
    3) submit : 언제보낼건지
    <form action = "ex01DataSend">
       <input type = "text" name = "data">
       <input type = "submit">
    </form>
    1. Servlet에서 데이터를 가져오기
    String data = request.getParameter("data");
    2. Servlet에서 웹페이지 출력
    2-1) 출력스트림 가져오기
    PrintWriter out = response.getWriter();
    2-2) 출력하기
    out.print(data);
    2-3) 인코딩
    response.setCharacterEncoding("UTF-8");
    response.setContentType("text/html; charset=")
    ---> 출력스트림 꺼내기 전에 완성할 것
    데이터 전송방식
    1) Get
    : 패킷의 헤더에 데이터를 전송
    : url 데이터가 붙어서 전송!
    : 길이에 제한이 있다.(1024byte)
    : 보안에 취약
    : 캐싱이 가능
    2) Post
    : 패킷의 바디에 데이터를 담아 전송
    : 길이에 제한이 없다
    : 보안상으로 좋다.
    : url 공유할 수는 없다.
    form태그의 action 속성값으로 전송방식 지정
    *post 방식으로 전송할 때 인코딩 추가*
    request.setCharacterEncoding("UTF-8");
    ---> 데이터 가져오기 전에 작성할 것
    https://localhost:8081:/www.~~?data=temp
    --> QueryString
    **데이터가 여러개였을때
    String[] data = request.getParameterValues("hobby")
    3) Put 
    4) Delete

    'JSP Servlet' 카테고리의 다른 글

    JSP 실습(2)  (0) 2022.05.02
    JSP 실습(1)  (0) 2022.05.02
    Servlet 실습(2)  (0) 2022.04.29
    Servlet 실습(1)  (0) 2022.04.28
    JSP/Servlet 이론(1)  (0) 2022.04.28

    댓글

Designed by Tistory.