java 언어를 사용하여 웹 애플리케이션을 개발하는 기술이다. 클라이언트의 요청에 응답하고, 동적인 웹 컨텐츠를 생성하고 처리하는데 사용된다.
HttpServlet 클래스는 Java Servlet API에서 제공되는 클래스로, HTTP 프로토콜을 기반으로 동작하는 서블릿을 작성할 때 사용된다. HttpServlet 클래스를 상속한 서블릿 클래스는 다양한 HTTP 메서드를 사용할 수 있다.
- get : 주로 데이터를 조회할 때 사용한다. 요청한 리소스를 url에 담아서 전송한다.
- post 서버에 데이터를 전송하여 리소스를 생성 또는 수정한다. 요청한 데이터는 요청 본문에 포함되어 전송된다.
- delete : 서버의 리소스를 삭제하기 위해 사용된다.
- init : 서블릿이 처음으로 생성되고 초기화될 때 호출된다. 서블릿의 생명주기 동안 한 번만 실행된다. 보통 리소스를 초기화하거나 설정을 수행하는 데 사용된다.
- destroy : 서블릿이 종료되기 전에 호출된다. 주로 서블릿이 사용한 리소스의 해제 또는 정리 작업을 수행한다.
1. HttpServletRequest request : 클라이언트로부터 들어오는 요청(request)에 대한 정보를 가지고 있는 클래스다. 서블릿에서 클라이언트의 요청에 대한 처리를 수행할 때, HttpServletRequest 객체를 통해 요청에 관련된 정보를 얻을 수 있다.
2. HttpServletResponse response : 서블릿에서 클라이언트로 응답(response)을 보내는 데 사용되는 클래스다. 서블릿에서 클라이언트에게 데이터를 전송할 때, 응답에 관련된 정보를 설정하고 전송할 수 있다.
3. PrintWriter out = response.getWriter() : 일반적으로 쓰는 응답 방식이다.
4. String name = request.getParameter("name"): 클라이언트가 보낸 요청에서 파라미터 이름을 통해 값을 가져온다.
String[] job = request.getParameterValues("job"): job이라는 name을 가진 파라미터 값을 모두 job 배열에 저장하는 코드이다.
※응답과 요청은 String값이다.
response.setContentType("text/html;charset =utf-8");
이 코드로 전송 시에 생기는 한글 깨짐 문제는 대부분 해결되는 것 같다. 그러나 post 방식을 사용할 때 한글이 깨지는 경우가 생기는데 그럴 때는 코드 하나를 더 추가해야 한다.
response.setCharacterEncoding("utf-8");
post방식으로 정보를 서버에 전달해줄 때 한글이 깨지게 된다. 이 코드를 추가하면 그 문제를 해결할 수 있다.
리다이렉션은 클라이언트가 요청한 페이지를 처리하지 않고, 다른 페이지로 이동시키는 걸 의미한다.
- 페이지 이동: 사용자가 웹 애플리케이션에서 다른 페이지로 이동해야 할 때, 예를 들어 로그인 후 메인 페이지로 이동하는 경우 등.
- URL 재작성: URL을 변경해야 하는 경우, 예를 들어 URL을 수정하거나, 사용자가 입력한 URL을 특정 포맷에 맞추기 위해 수정하는 경우 등.
- 외부 사이트로 이동: 다른 도메인이나 외부 사이트로 사용자를 리다이렉트하여 추가 서비스를 제공하는 경우 등.