서블릿을 이용하는 방식과 JSP를 이용하는 방식을 비교해 보자
두 방식을 비교하기 위해 간단한 회원가입 save 기능을 구현한다.
클라이언트에서 유저의 이름과 나이를 전송한다.
서블릿이용
@WebServlet(name = "memberSaveServlet", urlPatterns = "/servlet/members/save")
public class MemberSaveServlet extends HttpServlet {
private MemberRepository memberRepository = MemberRepository.getInstance();
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("MemberSaveServlet.service");
String username = request.getParameter("username");
int age = Integer.parseInt(request.getParameter("age"));
Member member = new Member(username, age);
System.out.println("member = " + member);
memberRepository.save(member);
response.setContentType("text/html");
response.setCharacterEncoding("utf-8");
PrintWriter w = response.getWriter();
w.write("<html>\n" +
"<head>\n" +
" <meta charset=\"UTF-8\">\n" +
"</head>\n" +
"<body>\n" +
"성공\n" +
"<ul>\n" +
" <li>id="+member.getId()+"</li>\n" +
" <li>username="+member.getUsername()+"</li>\n" +
" <li>age="+member.getAge()+"</li>\n" +
"</ul>\n" +
"<a href=\"/index.html\">메인</a>\n" +
"</body>\n" +
"</html>");
}
}
서블릿에서 html을 사용하기 위해 response.getWriter().write()메서드를 통해 위와 같이 html을 작성해 주어야 해서 불편하다
JSP이용
서블릿은 자바 코드로 HTML을 만들어 내는데 이것보다 HTML문서에 동적으로 변경해야 한느 부분만 자바 코드를 넣을 수 있는 게 더 편한다 그래서 템플릿 엔진이라는 것이 나온 것이다. 그중 JSP에 대해 알아보자.
먼저 JSP를 사용하려면 build.gradle에 추가해 주어야 한다.
스프링 3.0미만
//JSP 추가 시작
implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'
implementation 'javax.servlet:jstl'
//JSP 추가 끝
코드를 작성해 보자.
<%@ page import="hello.servlet.domain.member.MemberRepository" %>
<%@ page import="hello.servlet.domain.member.Member" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
// request, response 사용 가능
MemberRepository memberRepository = MemberRepository.getInstance();
System.out.println("save.jsp");
String username = request.getParameter("username");
int age = Integer.parseInt(request.getParameter("age"));
Member member = new Member(username, age);
System.out.println("member = " + member);
memberRepository.save(member);
%>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
성공
<ul>
<li>id=<%=member.getId()%></li>
<li>username=<%=member.getUsername()%></li>
<li>age=<%=member.getAge()%></li>
</ul>
<a href="/index.html">메인</a>
</body>
</html>
위 코드를 분석해 보자
JSP는 서버 내부에서 서블릿으로 변환한다.
JSP문서라는 뜻이라는 코드를 아래와 같이 추가해 주어야 한다.
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
JSP에서 자바 코드를 그대로 사용할 수 있다
<% ~~~ %> 이 ~~ 부분에 자바 코드를 입력하면 된다.
<%= ~~ %> 이 ~~ 분은 자바 코드를 출력할 수 있다.
HTML은 그냥 사용하면 된다.
JSP에서 request와 response는 바로 사용할 수 있다.
출처 : 스프링MVC 1편 - 백엔드 웹 개발 핵심 기술 김영한
'스프링MVC' 카테고리의 다른 글
MVC 프레임워크 구현해 보기 (0) | 2023.08.07 |
---|---|
MVC패턴 (0) | 2023.08.04 |
HttpServletResponse 사용 (0) | 2023.08.02 |
HTTP 요청 데이터 (0) | 2023.08.02 |
서블릿 사용해 보기 (0) | 2023.08.01 |