Template Engine 사용하기

Jan 25, 2024
Template Engine 사용하기

템플릿 엔진(Template Engine)

  • 동적으로 웹 페이지나 문서를 생성하기 위해 사용되는 도구나 소프트웨어
  • 정적인 템플릿(양식)과 데이터를 결합> 동적으로 콘텐츠를 생성, 표시하는 역할
  • 주로 웹 애플리케이션에서 서버 측에서 HTML을 동적으로 생성하는 데 사용
  • 이름이 정해져 있음
 
컨버터(Converter) : 한 형식이나 시스템에서 다른 형식이나 시스템으로
데이터를 변환하는 데 사용되는 도구나 소프트웨어
💡
자바 코드에 html 코드를 섞는게 불편….
html코드에 자바 코드를 넣을 때 자바 Servlet으로 바꿔주는 역할을 함
html 코드에 자바 코드가 섞인 걸 ⇒ 자바 코드에 html 코드가 섞인 것으로 바꿔 줌
 
  • 템플릿 엔진 이용해서 더 쉽게 만들어보기
notion image
 
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <h1>회원가입 페이지</h1> <hr> <form action="/join" method=""> <input type="text" placeholder="username" name="username"> <input type="text" placeholder="password" name="password"> <input type="text" placeholder="email" name="email"> <button>회원가입</button> </form> </body> </html>
notion image
 
  • 요청은 파일 명
  • .jsp 파일이라서 톰캣에게 위임
톰캣은 이 파일을 Servlet으로 변환해서 실행
💡
<% %> : %%사이에 자바 코드 입력 가능
<%= %> : 출력 가능
notion image
 
  • 리다이렉트하면 그림이 필요 없음
get 요청만 디자인이 있음
  • 자유도가 너무 높으면 같이 협업하기 힘듦 → 프레임워크 필요
디자인이 없으면 Servlet으로 해도 되지만 통일성을 주는 것
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <% // 템플릿 엔진에는 이름이 정해져 있음 response.setHeader("Content-type", "text/html; charset=utf-8"); // 헤더에 바디를 설명 // 1. 파싱 쉽게 하기 -> 커퍼에 키값을 찾아줌 String username = request.getParameter("username"); String password = request.getParameter("password"); String email = request.getParameter("email"); System.out.println("username : " + username); System.out.println("password : " + password); System.out.println("email : " + email); // 2. 유효성 검사(1000줄 정도 됨...) if(username.length() < 3 || username.length() > 10) { // 필터링으로 사용 response.getWriter().println("<h1>username 글자수가 3~10 사이여야 합니다."); return; } // 3. DB연결 -> DAO에 연결하기 위함 // 4. DAO의 insert 메서드를 회출 // 5. 메인 페이지 그리기 // 6. 리다이렉트 : 내가 요청한 주소를 자기 안에 있는 다른 것을 응답해주는 것 //resp.sendRedirect("/main"); // 톰캣이 만들어준 메서드 response.setStatus(302); response.setHeader("Location", "/board/main.jsp"); // 헤더에 정보 담기 response.setHeader("clock", "12pm"); // 프로토콜이 없어서 안뜸 %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <h1>main page</h1> <hr> </body> </html>
notion image
notion image
 
 
Share article

vosw1