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 |