본문 바로가기

JSP 이론

[JSP] Servlet에 대해 알아보자

728x90

 

 

Servlet이란?

자바를 사용하여 웹을 만들기 위해 필요한 기술로 클라이언트가 어떠한 요청을 하면 그에 대한 결과를 다시 전송

해주어야 하는데 이때 이 역할을 하는 게 서블릿이다

 

예를 들어 어떠한 사용자가 로그인을 하려고 할 때, 사용자는 아이디와 비밀번호를 입력하고 로그인 버튼을 누른다

그 때 서버는 클라이언트의 아이디와 비밀번호를 확인하고 다음 페이지를 띄워주어야 하는데 이러한 역할을 수행하는 게 서블릿이다

 

 


Servlet 특징

 


 1. 동적 웹어플리케이션 컴포넌트 (순수 자바코드)
 2. java 확장자
 3. 클라이언트의 요청에 동적으로 작동하고 , 응답은 html을 이용
 4. java thread를 이용하여 동작
 5. MVC 패턴에서 Controller로 이용

 

 

  Thread(스레드)란 무엇인가?
    일반적인 자바 프로그램을 실행하면 작성한 코드가 위에서부터 아래로 순차적으로 실행한다
    이러한 흐름을 하나의 스레드라고 표현한다 (하나의 실행의 흐름으로 프로세스 내부에 존재)
    대표적으로 main함수가 스레드이다

  스레드를 사용하는 이유는?
    동시성! 동시에 여러 일들을 할 수 있어 효율성을 높일 수 있기 때문이다
    또한 스레드끼리 메모리를 공유하기에 메모리가 절약되는 효과를 볼 수 있다

 

 

 

 

서블릿 구분 방법

 

  1. URL Mapping

    URL 매핑을 하지 않으면 URL 주소가 너무 길어지고 , 경로가 노출되어 보안에 위험이 생기기 때문에

    URL 매핑을 사용해 해결한다

   예시)   http://localhost: 8181 /JSPBasic/servlet/kr.co.park.HelloWorld
    >>>    http:// 8181 /JSPBasic/HelloWorld

< 사용 방법 >


  1. 어노테이션 이용 , 클래스 선언부 바로 위에 작성
   ex) @WebServlet ("/HelloWorld")

  어노테이션이란?
   사전적 의미로는 주석이라는 뜻을 가지고 있고,
   자바의 어노테이션은 소스코드에 추가해서 사용할 수 있는
메타데이터의 일종이다

 

 

 

HttpRequest방식 

  GET 방식


  1. 서버에 데이터를 요청하는 용도
  2. 전송하는 데이터가 주소에 묻어서 간다
  3. 전송했던 데이터는 브라우저의 히스토리에 접속했던 주소와 함께 남아 있어 보안성에 취약하다
  4. 게시판 글 조회나 검색같이 서버의 정보를 가져올 필요성이 있을 때 사용한다
  5. 전송할 수 있는 최대 크기는 브라우저별로 다르지만 크기가 정해져 있다
  6. HTML form태그가 반드시 필요하지는 않다

 

 

 

 

POST 방식


  1. 서버에 데이터를 전송하는 용도
  2. 전송되는 데이터가 URL에 묻어나가지 않고 전송 객체의 메시지 바디를 통해 전달됨
  3. 브라우저에 전달되는 데이터가 남지 않기 때문에 보안성에 강함
  4. 비밀번호나 주민번호 등 private한 데이터를 서버에 전송해야 할 때 사용함
  5. 반드시 HTML form 태그가 필요하다
  6. 데이터 양의 제한이 없기 때문에 대량의 데이터를 전송할 수 있습니다

 

 

 

 

GET/ POST방식 브라우저 한글처리


  톰캣서버의 기본 문자처리 방식은 IOS-8859-1 방식이기에 개발자가 별도의 한글 인코딩을 하지 않으면 

  서버로 전송된 데이터의 한글들이 깨져보이는 현상이 발생한다


   1. GET 방식의 한글처리
       server.xml 파일 수정
      <connector> 에 속성 값으로 URIEncoding ="utf 8"


   2. POST 방식의 한글처리
       post 방식을 처리하는 메서드에 request.setCharacterEncoding("utf 8");

 

 

 

 

 

 

'JSP 이론' 카테고리의 다른 글

[JSP] JSP 예외 페이지 생성방법  (0) 2022.12.10
쿠키(Cookie)  (0) 2022.12.08
[JSP] JSP 내장 객체란 무엇인가  (0) 2022.12.07