2016년 9월 6일 화요일

34day / WEB / Servlet Basic

http://tutorials.jenkov.com
Servlets inside a Java Servlet Container
Servlet이란! Servlet 기초


  • Servlet

자바를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램이며
웹에서 Java 프로그래밍을 구현하기 위해 탄생 (IO 중심) 형식으로 개발된다
Java로 구현된 CGI(Common Gateway Interface) 라고 생각하면 된다.

Browser
http 기반 응답 메세지를 분석하고 html 정보를 번역해서 브라우저 화면에 표현
-> client 측 프로그램

WAS
멀티 스레드 기반 서버로 웹컨테이너를 지원한다

Web Container
Servlet과 JSP가 개발되고 실행할 수 있는 환경을 제공
Servlet LifeCycle을 관리하고 JSP를 Servlet(java class)로 변환하는 역할을 한다.

HttpServletRequest
클라이언트 요청받은 정보
Client -> Server

HttpServletResponse
클라이언트에게 응답하기 위한 정보
Server -> Client



  • HTTP 요청 방식 get & post

1) get 방식
브라우저 url에 파라미터로 노출된다
정보 조회용으로 사용되는 요청방식이다.
form tag에 별도의 method를 명시하지 않으면 기본적으로 get방식요청
html상의 모든 링크는 get 방식요청이다

2) post 방식
브라우저 url에 파라미터가 노출되지 않는다
정보 전송용으로 사용되는 요청방식이다
사용자 정보 및 노출되면 안되는 정보, 용량이 큰 정보를 전송할때 post방식

# post 방식 요청시 파라미터(클라이언트 데이터) 한글 처리를 따로 해줘야한다
-> ex) request.setCharacterEncoding("utf-8");

ex) Servlet 예제
public class DevJang extends HttpServlet {
    public DevJang() {
        super();
    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=utf-8");
        String name = request.getParameter("userName"); <- client 정보를 반환받는다
        PrintWriter out = response.getWriter();
        out.println("<html><body bgcolor=yellow>");
        out.println("doGet() 실행:  전달받은 이름은 " + name);
        out.println("</body></html>");
        out.close();
    }
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        request.setCharacterEncoding("utf-8"); <- post 방식 요청 한글 처리
        response.setContentType("text/html;charset=utf-8");
        String name = request.getParameter("userName");
        String address = request.getParameter("userAddress");
        PrintWriter out = response.getWriter();
        out.println("<html><body bgcolor=orange>");
        out.println("doPost() 실행:  전달받은 이름은 " + name);
        out.println(" 주소는 " + address);
        out.println("</body></html>");
        out.close();
    }
}
cs

0 개의 댓글:

댓글 쓰기