일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 자바
- 리액트
- Spring
- Sort()
- qqOperater
- Oracle
- 오류
- 코딩테스트
- push함수
- 콘솔게임
- mybatis
- dart
- 다형성
- 네임드생성자
- int와 integer
- app.use
- Middleware
- js
- 추상클래스
- 깃허브
- git
- 배열
- DB
- Node.js
- 자바스크립트
- 생성자
- 삼항연산자
- Pug
- React
- java
- Today
- Total
평행코드
Servlet이란? 본문
서블릿(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 |