HTML + Java
view의 역할을 수행
Java + HTML
controller의 용도로 사용
사용자의 요청을 처리하고 이를 JSP에 인도
Servlet Java Class는 HttpServlet을 상속받는다
<>
init(), service(), destroy()
| (상속)
<>
| (상속)
<>
init()
destroy()
제어의 역행(Inversion of Control)
doGet()
// 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 인턴십