Web 기본

13375 단어 webMVCMVC

개요

Server - Apache tomcat

JSP

HTML + Java

view의 역할을 수행

Servlet

Java + HTML

controller의 용도로 사용

사용자의 요청을 처리하고 이를 JSP에 인도

Servlet Class

Servlet Java Class는 HttpServlet을 상속받는다

<>

init(), service(), destroy()

| (상속)

<>

| (상속)

<>

메소드

init()

  • 딱 한 번만 호출(생성자와 같은 역할)
  • Servlet 인스턴스는 싱글톤으로 관리된다
  • 초기화 코드가 들어간다

destroy()

  • 리소스에 대한 해제 코드들이 들어간다

제어의 역행(Inversion of Control)

  • Servlet에 대한 라이프사이클은 개발자가 아닌 컨테이너가 관리한다

doGet()

  • default service method
// GET 방식
// URL + query string(parameter)
http://127.0.0.1:8088/incWEB/greeting.do?key=value&key=value

doPost()

// POST 방식
// URL
http://127.0.0.1:8088/incWEB/greeting.do
// GreetingServlet.java
package ctrl;

import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/greeting.do")
public class GreetingServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	public GreetingServlet() {
		super();
		// TODO Auto-generated constructor stub
	}

	public void init(ServletConfig config) throws ServletException {
		// TODO Auto-generated method stub
		System.out.println("init");
	}

	public void destroy() {
		// TODO Auto-generated method stub
		System.out.println("destroy");
	}

	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		System.out.println("doGet");

		response.setContentType("text/html;charset=utf-8");
		
		/*
		// 이렇게 Java 코드에 HTML 코드를 담는건 부적절 --> 사용자의 요청을 처리하고 이를 JSP에 넘기자
		PrintWriter out = response.getWriter();
		out.print("<html>");
		out.print("<body>");
		out.print("<div align='center'>뭐이 중한디~~</div>");
		out.print("</body>");
		out.print("</html>");
		out.close();
		*/
		
		/*
		// 요청 재지정
		// JSP를 숨기고 Servlet .do의 request 페이지에서 JSP로 포워딩
		
		1. .do로 요청하지만 jsp로 요청을 재지정
		response.sendRedirect("greeting.jsp");
		
		2. RequestDispatcher 방식 사용 --> 현업에서 많이 사용
		RequestDispatcher view = request.getRequestDispatcher("greeting.jsp");
		view.forward(request, response);
		*/
		
		RequestDispatcher view = request.getRequestDispatcher("greeting.jsp");
		view.forward(request, response);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		System.out.println("doPost");
	}

}
// greeting.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<div align="center">hello</div>
	<hr />
</body>
</html>

출처: SHINSEGAE I&C 인턴십

좋은 웹페이지 즐겨찾기