본문 바로가기

Archived(Programming)/Spring #1(기초)

Web_JSP와 SERVLET

CF. markup Language > tag와 text로 이루어진 언어(대표적으로 JSP)

servlet의 생명주기는 container가 관리(IOC 제어역행)

CF. http://127.0.0.1:8088/incWEB/greeting.do?key=value(>>query string)

 

servlet 만들어서 구현하기(init, destroy, doGet, doPost)

JSP는 요청에 대한 응답도 가능, SERVLET도 요청에 대한 응답 가능

SERVLET은 사용자 요청(진입)만 받고 JSP에 넘기자!

즉, SERVLET은 CONTROLLER / JSP는 VIEW의 역할

그러나, 자바와 브라우저로 서로 보내는 한글 다 깨짐(이러한 부분 주의)

package ctrl;

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

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({ "/GreetingServlet", "/greeting.do" })
public class GreetingServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	public void init(ServletConfig config) throws ServletException {
		System.out.println("init");
	}

	public void destroy() {
		System.out.println("destroy");
	}

	protected void doGet(HttpServletRequest request, HttpServletResponse response) 
	throws ServletException, IOException {
		System.out.println("doGet~restart");
		
		// 한글 인코딩
		response.setContentType("text/html;charset=utf-8");
		PrintWriter out = response.getWriter();
		out.print("<html>");
		out.print("<body>");
		out.print("<div align='center'> 뭣이 중한디~~</div>");
		out.print("</body>");
		out.print("</html>");
		out.close();
	}
	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) 
    throws ServletException, IOException {
		System.out.println("doPost");
	}
}

즉, Servlet은 Business Logic, Data Access Logic 등의 Controller의 역할만을 수행

(DB까지 넘어갈 수 있는 역할들 포함, 이를 통해 Model과의 연결 및 데이터 주고 받기)

 

이러한 처리된 부분을 JSP에 넘겨서 JSP가 응답을 받을 수 있도록 사용자에게 VIEW의 역할을 수행하며 제공

JSP에 넘기기

package ctrl;

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

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({ "/GreetingServlet", "/greeting.do" })
public class GreetingServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	public void init(ServletConfig config) throws ServletException {
		System.out.println("init");
	}

	public void destroy() {
		System.out.println("destroy");
	}

	protected void doGet(HttpServletRequest request, HttpServletResponse response) 
	throws ServletException, IOException {
		System.out.println("doGet~restart");
		
		/*
		 * // 한글 인코딩 response.setContentType("text/html;charset=utf-8"); PrintWriter out
		 * = response.getWriter(); out.print("<html>"); out.print("<body>");
		 * out.print("<div align='center'> 뭣이 중한디~~</div>"); out.print("</body>");
		 * out.print("</html>"); out.close();
		 */
		response.sendRedirect("greeting.jsp");
	}
	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) 
    throws ServletException, IOException {
		System.out.println("doPost");
	}
}
response.sendRedirect("greeting.jsp");


RequestDispatcher view = request.getRequestDispatcher("greeting.jsp");
view.forward(request, response);

둘 다 가능!

'Archived(Programming) > Spring #1(기초)' 카테고리의 다른 글

Web_Spring  (0) 2020.02.03
Web_JSON  (0) 2020.02.03
Web_JSON  (0) 2020.02.02
Web_MVC  (0) 2020.01.31
Web_웹의 기본  (0) 2020.01.30