평행코드

Servlet이란? 본문

Servlet JSP

Servlet이란?

나의 오류는 누군가 겪었던 오류 2023. 10. 22. 20:19
서블릿(Servlet)

Server + Applet의 합성어로 JAVA언어를 이용하여 사용자의 요청을 받아 처리하고 

그 결과를 다시 사용자에게 전송하는 역할의 Class파일을 말함
즉 웹에서 동적인 페이지를 java로 구현한 서버 측 프로그램

 

* 애플릿(영어: applet)은 플러그인의 하나로서 전용 위젯 엔진이나 더 큰 프로그램 범위 내에서 실행되는 특정한 작업을 수행하는 조그마한 응용 프로그램을 말한다.

서블릿 설계 규약

1. 모든 서블릿은 javax.servlet.Servlet 인터페이스를 상속 받아 구현
2. 서블릿 구현 시 Servlet 인터페이스와 ServletConfig 인터페이스를
javax.servlet.GenericServlet에 구현
3. HTTP프로토콜을 사용하는 서블릿은 javax.servlet.http.HttpServlet
클래스는 javax.servlet.GenericServlet을 상속한 클래스로
서블릿은 HttpServlet클래스를 상속 받음
4. 서블릿 Exception처리를 하기 위해서는
javax.servlet.ServletException을 상속 받아야 함

 

개인적으로 정리하는 서블릿요청하기
더보기

1. webapp폴더에
index.html 생성 -> general text editor
use it for all~ 박스클릭
2. 서버에서 add and remove클릭
3. 주소창에 추가한 폴더명입력  ex)01_firstweb
4. Servers폴더에 server.xml파일실행 
path ="/" , path = "/01_firstweb" (163번째 줄)
src/main/java-> 패키지생성 -> 서블릿클래스생성
-> HttpServlet클래스를 상속받게 한다.
-> doget, dopost메소드 생성
alt shift s v 로 오버라이딩해준다

5. 생성된 서블릿 등록
<servlet>
<servlet-name>
<servlet-class>설정
6. 서블릿 맵핑주소 등록
<servlet-mapping>
<servlet-name>
<url-pattern> 설정
요청(주소창에 검색)을 톰캣이 받으면, 서블릿을 호출(컨트롤러안의 서블릿)
7. 서블릿 요청할  a태그 작성
서블릿경로를 주소창에 입력하면 get메소드실행됨

서블릿 매핑

- web.xml 예시

<servlet>
    <servlet-name>mapping 명칭</servlet-name>
    <servlet-class>실제 클래스 명칭</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>mapping 명칭</servlet-name>
    <url-pattern>사용자 접근 명칭</url-pattern>
</servlet-mapping>

- @annotation 예시

@web-Servlet(“/매핑명칭”)
    public class 서블릿명칭 extends HttpServlet{
    // servlet code
}​
사용자 데이터 전송 방식

- get 방식

URL창에 “?” 뒤에 데이터를 입력하는 방법(쿼리스트링)
데이터가 여러 개일 경우 &로 묶어서 보냄
데이터 검색에 많이 사용하고 데이터 크기에 한계가 있으며 보안 취약

 

- post 방식

BODY에 내용을 보내는 방식으로 데이터 크기에 제한이 없고
보안이 뛰어남

서블릿 메소드

- doGet

client에서 데이터 전송 방식을 get방식으로 전송하면 호출되는 메소드

- doPost

client에서 데이터 전송 방식을 post방식으로 전송하면 호출되는 메소드

 

서블릿 매개변수 객체

- HttpServletRequest

HTTP Serlvet을 위한 요청 정보(request information) 제공
* 인터페이스나 인터페이스 구현은 컨테이너가 알아서 설정하므로 메소드만 이용
상속 : javax.servlet.ServletRequest

메소드 명  내 용
getParameter(String) client가 보내준 값이 저장된 명칭이 매개변수와 같은
명칭에 저장된 값을 불러오는 메소드
getParameterNames() client가 보내준 값을 저장한 명칭을 불러오는 메소드
getParameterValues(String) client가 보내준 값이 여러 개일 경우 그 값을 배열로
불러오는 메소드
getParameterMap() client가 보내준 값이 전체를 Map방식으로 불러오는
메소드
setAttribute(String, object) request객체에 전달하고 싶은 값을 String 이름으로
Object저장하는 메소드
getAttribute(String) 매개변수와 동일한 객체 속성값 불러오는 메소드
removeAttribute(String) request객체에 저장되어 매개변수와 동일한 속성값
삭제하는 메소드
setCharacterEncoding(String) 전송 받은 request객체의 값들의 CharaterSet을 설정
해주는 메소드
getRequestDispatcher(String) 컨테이너 내에서 request, response객체를 전송하여
처리할 컨포넌트( jsp파일 등)를 불러오는 메소드
forward()메소드와 같이 사용

- HttpServletResponse

요청에 대한 처리 결과를 작성하기 위해 사용하는 객체

메소드 명 내용
setContentType(String) 응답으로 작성하는 페이지의 MIME type을
정하는 메소드
setCharacterEncoding(String) 응답하는 데이터의 CharacterSet을
지정해주는 메소드
getWriter() 문자를 페이지에 전송을 위한 Stream을
가져오는 메소드
getOutputStream() byte단위로 페이지에 전송을 위한 Stream을
가져오는 메소드
sendRedirect(String) client가 매개변수의 페이지를 다시 서버에
요청하게 하는 메소드

 

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

JSON & Gson  (0) 2023.11.05
RequestDispatcher 란?  (0) 2023.10.31