
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %>
JSP 페이지를 자바(서블릿)코드로 변환하는 데 필요한 정보를 JSP엔진에 알려준다. 주로 스크립트 언어나 인코딩 방식등을 설정한다. 지시자 or 디렉티브라고 부르기도 한다.
<%@ 지시어 종류 속성1 = "값1" 속성2="값" ... %>
###language, contentType, pageEncoding 속성
기본형태 <%! %>
선언부에서는 스크립틀릿, 표현식에서 사용할 변수나 메서드를 선언함
_jspService() 외부에 선언
선언부에서 선언한 메소드를 호출함--%>
<% 자바 코드 %>
jsp 페이지가 요청을 받을 때 실행되어야할 자바 코드들이 작성되는 공간
_jspService() 메서드 내부에 위치함
실행결과로 하나의 값이 남는 문장
<%@ page import="static java.awt.AWTEventMulticaster.add" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%!
public int add(int num1, int num2){
return num1+num2;
}
%>
<%--//선언부(메서드 선언)
//선언부에서는 스크립틀릿, 표현식에서 사용할 변수나 메서드를 선언함
//_jspService() 외부에 선언
//선언부에서 선언한 메소드를 호출함--%>
<html>
<head>
<title>스크립트 요소</title>
</head>
<body>
<%--
JSP 실행될 때 서블릿(java code)으로 변환되고 클래스로 컴파일되어서 응답하게 된다.
이 변환 과정에서 _jspService() 메서드가 생성이 된다.
선언부, 스크립틀릿,표현식
--%>
<%
//스크립틀릿
//jsp 페이지가 요청을 받을 때 실행되어야할 자바 코드들이 작성되는 공간
//_jspService() 메서드 내부에 위치함
int result = add(1,2);
%>
<%--//표현식
//실행결과로 하나의 값이 남는 문장--%>
덧셈 결과 : <%= result%> <br/>
덧셈 결과 : <%= add(10, 20)%>
</body>
</html>
https://velog.io/@ansalstmd/JSP5.-%EB%82%B4%EC%9E%A5-%EA%B0%9D%EC%B2%B4
request 내장객체는 JSP에서 가장 많이 사용한다.
클라이언트(주로 웹 브라우저)가 전송한 요청 정보를 담고 있다.
//RequestMain
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>내장 객체 - Request </title>
</head>
<body>
<%--
## request 내장객체
request 내장객체는 JSP에서 가장 많이 사용한다.
클라이언트(주로 웹 브라우저)가 전송한 요청 정보를 담고 있다.
- 클라이언트와 서버의 정보 읽기
- 클라이언트가 전송한 매개변수 읽기
- 요청 헤더 및 쿠키 정보 읽기
--%>
<h2>1. 클라이언트와 서버의 환경 정보 읽기</h2>
<%--Get 방식으로 요청--%>
<a href="RequestWebInfo.jsp?eng=Heool&han=안녕">
Get 방식 요청
</a>
<form action="RequestWebInfo.jsp" method="post">
영어 : <input type="text" name="eng" value="Bye"><br/>
한글 : <input type="text" name="han" value="잘 가"><br/>
<input type="submit" value="POST 방식 전송" />
</form>
<h2>2. 클라이언트의 요청 매개변수 읽기</h2>
<form method="post" action="RequestParameter.jsp">
아이디 : <input type="text" name="id" value=""/> <br/>
성별 : <input type="radio" name="sex" value="man"/>남자
<input type="radio" name="sex" value="woman"/>여자
<br/>
관심사항 :
<input type="checkbox" name="favo" value="eco"/> 경제
<input type="checkbox" name="favo" value="pol"/> 정치
<input type="checkbox" name="favo" value="ent"/> 연애
자기소개 :
<textarea name="intro" cols="30" rows="4"></textarea>
<br/>
<input type="submit" value="서버 전송"/>
</form>
<h2>3. HTTP 요청 헤더 읽기</h2>
<a href="RequestHeader.jsp">
요청 헤더 정보 읽기
</a>
</body>
</html>
//RequestWebInfo
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>내장 객체 request의 정보 읽기</title>
</head>
<body>
<h2>1. 클라이언트와 서버의 환경정보 읽기</h2>
<ul>
<li>데이터 전송 방식 : <%= request.getMethod() %></li>
<li>URL : <%= request.getRequestURL() %></li>
<li>URI : <%= request.getRequestURI() %></li>
<li>프로토콜 : <%= request.getProtocol() %></li>
<li>서버명 : <%= request.getServerName() %></li>
<li>서버 포트 : <%= request.getServerPort() %></li>
<li>클라이언트 IP 주소 : <%= request.getRemoteAddr() %></li>
<li>쿼리스트링 : <%= request.getQueryString() %></li>
<li>전송된 값 1 : <%= request.getParameter("eng") %></li>
<li>전송된 값 2 : <%= request.getParameter("han") %></li>
</ul>
</body>
</html>
//RequestParameter
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Request 파라메터</title>
</head>
<body>
<%
request.setCharacterEncoding("UTF-8");
String id = request.getParameter("id");
String sex = request.getParameter("sex");
String[] favo = request.getParameterValues("favo");
String favoStr = "";
if (favo != null) {
for (String temp : favo) {
favoStr += temp;
}
}
String intro = request.getParameter("intro").replace("\r\n", "<br/>");
%>
<ul>
<li> 아이디 : <%=id%></li>
<li> 성별 : <%=sex%></li>
<li> 관심사항 : <%=favoStr%></li>
<li> 자기소개 : <%=intro%></li>
</ul>
</body>
</html>
//requestHeader
<%@ page import="java.util.Enumeration" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h2>3. 요청 헤더 정보 출력하기</h2>
<%
Enumeration headers = request.getHeaderNames();
while (headers.hasMoreElements()){
String headerName = (String)headers.nextElement();
String headerValue = request.getHeader(headerName);
out.print("헤더명 : " + headerName + ",헤더값 : " + headerValue + "<br/>");
}
%>
<p>이 파일을 직접 실행하면 referer 정보는 출력되지 않습니다.</p>
</body>
</html>