Spring

JSP

조밈밍 2022. 4. 18. 17:09

일일이 자바 코드로 HTML을 만들어 내는 것 보다 차라리 HTML 문서에 동적으로 변경해야 하는 부분만

자바 코드를 넣을 수 있다면 더 편리할 것이다 => 템플릿 엔진 이용

 

🔎 템플릿 엔진을 사용하면 HTML 문서에서 필요한 곳만 코드를 적용해 동적으로 변경할 수 있다

종류) JSP, Thymeleaf, Freemarker 등

 

💡 JSP 

- JSP는 자바 코드를 그대로 다 사용할 수 있다

- <% ~~ %> : 이 부분에 자바 코드를 입력할 수 있다

- <%= ~~ %> : 이 부분에 자바 코드를 출력할 수 있다

- 실행시 .jsp 까지 적어야 한다.

 

📌 JSP 라이브러리 추가

- build.gradle

//JSP 추가 시작
implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'
implementation 'javax.servlet:jstl'
//JSP 추가 끝

📌 각 폼 JSP 파일을 작성한다

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

* JSP 문서라는 뜻으로 JSP 문서는 이렇게 시작해야 한다.

 

- 회원 저장 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를 보면 코드의 상위 절반은 회원을 저장하기 위한 비즈니스 로직이고, 

  나머지 하위 절반은 결과를 보여주기 위한 뷰 영역이다 => MVC 패턴 등장