JSP
<%@ page 속성="속성값" />
<%-- jsp페이지에 대한 정보를 설정한다. -->
<% page contentType="text/html; charset=utf-8" %>
<% page contentType="text/xml; charset=utf-8" %>
<% page contentType="application/json; charset=utf-8" %>
<% page contentType="text/plain; charset=utf-8" %> <%@ page pageEncoding="utf-8" %> <% page import="java.util.List"%>
<% page import="java.util.List,java.util.ArrayList"%> <% page errorPage="serverError.jsp" %> <% page isErrorPage="true" %> <% page trimDirectiveWhiteSpace="true" %> <%@ include file="현재페이지에 포함시킬 jsp파일의 경로와 이름" />
<%@ include file="common/header.jsp" %> <%@ taglib prefix="속성값" uri="속성값" />
<%@ prefix="c" taglib="http://java.sun.com/jsp/jstl/core" %>
<%@ prefix="fmt" taglib="http://java.sun.com/jsp/jstl/fmt" %>
<c:out value="값" />
<fmt:formatNumber value="값" /> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ prefix="fmt" taglib="http://java.sun.com/jsp/jstl/fmt" %> <%
자바코드를 작성할 수 있다.
%>
<%
int x = 10;
EmployeeService service = new EmployeeService();
// 접근제한자를 가지는 변수를 정의할 수 없다.
private int y = 10; // 오류
// 메소드를 정의할 수 없다.
private void log(Employee emp) {
System.out.println(emp.getName());
}
%>
<태그><%=값 %></태그>
<태그><%=값을 반환하는 메소드 %></태그>
<%
int empNo = 100;
EmployeeService employeeService = EmployeeService.getInstance();
Employee emp = employeeService.getEmployeeDetailInfo(empNo);
%>
<table>
<tr>
<th>직원이름</th><td><%=emp.getName() %></td>
<th>소속부서번호</th><td><a href="dept.jsp?deptno=<%=emp.getDeptNo() %>"><%=emp.getDeptNo() %></a></td>
<th>전화번호</th><td><input type="text" value="<%=emp.getTel() %>" /></td>
</tr>
</table>
<%!
private DecimalFormat df = new DecimalFormat("##,###");
private String numberToCurrency(long number) {
return df.format(number);
}
%>
<%-- jsp 주석을 여기에 적는다. -->
<%-- 아래의 모든 코드는 주석처리되어서 실행되지 않는다. --%>
<%--
int bookNo = Integer.parseInt(request.getParameter("no"));
BookService bookService = BookService.getInstance();
Book book = bookService.getBookInfo(bookNo);
--%>
| 변수명 | 클래스명 | 설명 |
|---|---|---|
| request | HttpServletRequest | 클라이언트가 보낸 요청메세지 정보를 저장한다. |
| response | HttpServletResponse | 클라이언트로 보낼 응답메세지 정보를 저장한다. |
| session | HttpSession | 세션정보를 저장한다.(로그인처리와 관련) |
| out | JspWriter | 응답컨텐츠를 클라이언트로 출력하는 스트림 |
| application | ServletContext | 웹 애플리케이션을 나타내는 객체다.. |
| config | ServletConfig | 서블릿의 초기화에 필요한 정보를 저장한다. |
| pageContext | PageContext | JSP 페이지에 대한 정보를 저장한다. |
| exception | Throwable | 에러정보를 저장한다.(isErrorPage="true")에서만 사용가능 |
| page | Object | JSP 페이지를 구현한 자바객체가 저장된다. |
| 반환타입 | 메소드명 | 설명 |
|---|---|---|
| String | getParameter(String name) | 지정된 이름의 요청파라미터값을 반환한다. 요청파라미터값이 없으면 null을 반환한다 |
| String[] | getParameterValues(String name) | 지정된 이름의 모든 요청파라미터값을 배열의 형태로 반환한다 요청파라미터값이 없으면 null을 반환한다 |
| void | setCharacterEncoding(String encoding) | 요청파라미터값을 지정된 인코딩방식으로 복원한다 |
| void | setAttribute(String name, Object value) | 요청객체에 이름,객체 쌍의 속성(객체)을 저장한다. |
| Object | getAttribute(String name) | 요청객체에서 지정된 이름으로 저장된 속성(객체)를 반환한다. 지정된 이름의 속성이 존재하지 않으면 null을 반환한다. |
| void | removeAttribute(String name) | 요청객체에서 지정된 이름으로 저장된 속성(객체)을 삭제하다. |
| HttpSession | getSession() | 요청객체의 세션아이디에 해당하는 세션객체를 반환한다. 세션아이디가 없으면 세션객체를 새로 생성한 후 반환한다. 세션아이디에 해당하는 세션객체가 없으면 새로 생성한 후 반환한다 |
| HttpSession | getSession(boolean create) | create값을 true로 설정하면 위의 getSession() 메소드와 동일. create값을 false로 설정하면 세션아이디에 해당하는 세션객체가 있을 때만 세션객체를 반환하고, 아닌 경우 null을 반환한다 |
| String | getHeader(String name) | 지정된 이름의 요청헤더값을 반환한다 |
| String | getRequestURI() | 요청 URI 경로를 반환한다 |
| String | getContextPath() | 현재 웹애플리케이션의 컨텍스트 경로를 반환한다 |
| String | getRemoteAddr() | 요청을 보낸 클라이언트의 ip주소를 반환한다 |
| 반환타입 | 메소드명 | 설명 |
|---|---|---|
| void | sendRedirect(String url) | 지정된 url을 재요청하게 하는 응답을 보낸다 |
| void | setContentType(String type) | 응답컨텐츠의 타입을 설정한다 |
| void | setStatus(int statuscode) | HTTP 응답코드를 설정한다 |
| void | setHeader(String name, String value) | 응답헤더값을 설정한다 |
| 반환타입 | 메소드명 | 설명 |
|---|---|---|
| void | setAttribute(String name, Object value) | 세션객체에 이름,객체 쌍의 속성(객체)을 저장한다. |
| Object | getAttribute(String name) | 세션객체에서 지정된 이름으로 저장된 속성(객체)를 반환한다. 지정된 이름의 속성이 존재하지 않으면 null을 반환한다. |
| void | removeAttribute(String name) | 세션객체에서 지정된 이름으로 저장된 속성(객체)을 삭제하다. |
| void | invalidate() | 세션객체를 무효화시킨다. 로그아웃 요청시 실행한다 |
| void | setMaxInactiveInterval(int second) | 세션객체의 최대 비활성화 시간을 초단위로 설정한다 지정된 시간동안 세션객체에 대한 엑세스가 없으면 세션객체는 무효화된다 |
| String | getId() | 세션객체의 고유한 아이디를 반환한다 |
<%--
contentType
클라이언트로 보내는 응답 컨텐츠의 변환방식(인코딩방식)을 지정한다.
charset=UTF-8 혹은 charset=EUC-KR 일 때만 한글 컨텐츠를 제대로 보낼 수 있다.
pageEncoding
jsp파일을 저장할 때 텍스트의 변환방식을 지정한다.
UTF-8 혹은 EUC-KR일 때만 한글이 포함된 텍스트를 저장할 수 있다.
--%>
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello</title>
</head>
<body>
<%--
선언식
- 객체의 멤버변수, 정적변수, 멤버메소드, 정적메소드를 정의할 때 사용한다.
- 변수나 메소드에 접근제한자를 앞에 붙일 수 있다.
--%>
<%!
// 멤버변수, 정적변수의 선언을 권장하지 않음!!!!! 하지마. 절대로 네버
private int x = 0;
/*
// 멤버변수 선언
private int count;
// 멤버메소드 선언
public int getCount() {
return count;
}
*/
%>
<%--
스크립틀릿 : <% 자바코드 작성영역을 만든다. %>
변수의 선언, 변수의 초기화, 객체 생성, 제어문, 반복문, 메소드 호출 등이 가능하다.
스크립틀릿안에서 주석은 자바의 주석을 사용한다.
스크립트릿안에서 작성한 자바코드는 jsp를 java로 변환했을 때
전부 _jspService(req, res) 메소드 안에 포함된다.
--%>
<%
// 변수 선언하기
int y = 0;
// 변수 선언하기
String name = "영업팀";
/*
객체 생성 및 메소드 실행도 가능하다.
*/
// 영업팀의 1 ~ 6월까지 매출현황
int[] sales = {1000000, 2000000, 32000000, 540000, 400000, 12000000};
int totalSales = 0;
for (int amount : sales) {
totalSales += amount;
}
// 멤버변수x와 지역변수y의 값을 1씩 증가시키기
x++;
y++;
%>
<h1>Hello, JSP!</h1>
<h3><%= name %> 부서 전반기 매출현황</h3>
<dl>
<dt>부서명</dt><dd><%= name %> 부서</dd>
<dt>총 매출금액</dt><dd><%= totalSales %> 원</dd>
</dl>
<h3>멤버변수와 지역변수의 값 출력해보기</h3>
<dl>
<dt>멤버변수</dt><dd><%= x %></dd>
<dt>지역변수</dt><dd><%= y %></dd>
</dl>
</body>
</html>