반응형
Spring 프레임워크를 배우기 전에 JSP, Servlet에 대한 개념을 익히고자 한다.
JSP
Java Server Page의 약자로, HTML 문서 내에서 JAVA 코드를 사용할 수 있는 파일 형식이다.
태그를 추가하는 형식으로 태그 내부에 JAVA 코드를 사용한다.
JSP는 톰캣과 같은 웹 컨테이너에서 java file로 만들어지고, class file로 만들어진 후 html 파일 형식으로 출력된다.
<!-- page 지시어 태그 -->
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!-- include 태그 -->
<%@ include file="file 명"%>
<!-- taglib -->
<%@ taglib url="url" prefix="#"%>
1) page : 페이지 기본 설정, 속성에 대한 속성 값
2) include : 해당 JSP 파일에 다른 파일을 추가함.
3) taglib : 외부 라이브러리 태그 설정. (prefix는 namespace 이름)
<!-- 선언 태그 -->
<%!
int num = 10;
String str;
ArrayList<String> list = new ArrayList<String>();
public void method() {
// to do..
}
%>
선언 태그를 통해 JAVA 변수 선언 및 초기화.
<%-- JSP 주석 --%>
<!-- JSP 주석은 html 페이지 소스에 첨부되지 않음. -->
<!-- 스트립트릿 태그 -->
<%
if (num > 0) {
%>
<p> num > 0 </p>
<%
} else {
%>
<p> num <= 0 </p>
<%
}
%>
JSP에서 스트립트릿 태그를 사용해 JAVA 코드를 사용한다. java 코드와 html을 번갈아가면서 사용할 수 있는데, 헷갈리지 않게 주의해야 함. for문도 사용 가능하다.
<!-- 표현식 태그 -->
num is <%= num %>
변수에 대한 값을 포현할 때는 표현식 태그를 사용한다.
Servlet
Servlet은 자바 코드를 통해 html 파일을 출력한다. HTTPServlet을 추상 클래스를 상속받아 doGet, doPost 등의 메서드 등을 구현해 사용한다. PrintWriter 객체를 생성해 html에서 사용하는 태그들을 사용할 수 있다.
import java.io.IOException;
import java.util.Arrays;
import java.util.Enumeration;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
// java annotation 사용
// annotation 외에도 Servlet mapping, web.xml에서 servlet, servlet-mapping 설정을 통해 가능
@WebServlet("/mSignUp")
public class MemSignUp extends HttpServlet { //HttpServlet 상속
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println(" -- doGet() -- ");
// 변수, 배열을 가져옴.
String m_name = request.getParameter("m_name");
String[] m_hobbys = request.getParameterValues("m_hobby");
System.out.println("m_name : " + m_name);
System.out.println("m_hobbys : " + Arrays.toString(m_hobbys));
// 받은 파라미터 전부 출력할 때
Enumeration<String> names = request.getParameterNames();
while (names.hasMoreElements()) {
String name = (String) names.nextElement();
System.out.println("name : " + name);
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println(" -- doPost() -- ");
doGet(request, response);
}
}
'Java' 카테고리의 다른 글
[JAVA] DB와 관련된 (순수 JDBC, JDBC 템플릿, JPA) (0) | 2021.04.06 |
---|---|
[JAVA] 접근 제어자 (0) | 2021.04.01 |
Lambda (0) | 2021.03.30 |
Maven, Gradle (0) | 2021.03.30 |
DAO, DTO (0) | 2021.03.29 |