Scriptlet
JSP에서 Java Code를 실행할때 사용되는 코드 블록
지시어 : <%@ %>
Meta data page, import, buffer, language, contentstype
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
선언부 : <%! %>
Java에서의 선언 영역, Function정의, Class 정의...
구현부 : <% %>
실제 실행 Code의 호출
<%
// request가 가지고 있는 모든 문자정보의 코드를 UTF-8로 변환.
request.setCharacterEncoding("UTF-8");
%>
표현 : <%= %>
값, Expression
<ul>
<li>데이터전송방식 (Method) : <%= request.getMethod() %></li>
<li>URL : <%= request.getRequestURL() %></li>
<li>URI : <%= request.getRequestURI() %></li>
<li>Protocol : <%= request.getProtocol() %></li>
</ul>
Request
JSP에서 Client 정보를 Server로 전달하는 예제를 알아보자.
RequestMain
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>Request test page</title>
</head>
<body>
<h1>클라이언트 정보를 서버로 전달하는 예제</h1>
<!-- GET방식으로 정보를 전달 -->
<a href="./RequestWebInfo.jsp?id=Hello&pw=hi">GET방식으로 전달</a>
<br><br>
<a href="./RequestHeader.jsp?id=Hello&pw=hi">GET방식 헤더정보 출력</a>
<br><br>
<!-- POST방식으로 정보를 전달 -->
<form name="testform" action="RequestWebInfo.jsp" method="post">
국어성적<input type="text" name="kor" value="90"><br>
영어성적<input type="text" name="eng" value="70"><br><br>
<input type="submit" value="POST로 성적전달">
</form>
<br><br>
<!-- 다양한 input방식의 전달 -->
<form action="RequestParam.jsp">
성별 :
<input type="radio" name="gender" value="남자">남자
<input type="radio" name="gender" value="여자" checked>여자
<br>
관심언어 :
<input type="checkbox" name="favorite" value="JAVA" checked="checked">자바언어
<input type="checkbox" name="favorite" value="Python">파이썬
<input type="checkbox" name="favorite" value="HTML">HTML
<br><br>
자기소개 :<br>
<textarea name="intro" cols="40" rows="5"></textarea>
<br>
<br>
<input type="submit" value="POST로 다양한 정보 전달">
</form>
</body>
</html>
RequestHeader
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.Enumeration" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
Enumeration headers = request.getHeaderNames();
while(headers.hasMoreElements())
{
String headerName = (String)headers.nextElement();
String headerValue = request.getHeader(headerName);
out.print("헤더명 : " + headerName + ", 값 : " + headerValue);
out.print("<br>");
}
%>
</body>
</html>
RequestWebinfo
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>클라이언트에서 전달된 정보(request)를 출력하는 예제</h1>
<ul>
<li>데이터전송방식 (Method) : <%= request.getMethod() %></li>
<li>URL : <%= request.getRequestURL() %></li>
<li>URI : <%= request.getRequestURI() %></li>
<li>Protocol : <%= request.getProtocol() %></li>
<li>Server Name : <%= request.getServerName() %></li>
<li>Server Port : <%= request.getServerPort() %></li>
<li>Client : <%= request.getRemoteAddr() %></li>
<li>Query String: <%= request.getQueryString() %></li>
<li>Param1 : <%= request.getParameter("kor") %></li>
<li>Param2 : <%= request.getParameter("eng") %></li>
</ul>
</body>
</html>
RequestParam
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
// request가 가지고 있는 모든 문자정보의 코드를 UTF-8로 변환.
request.setCharacterEncoding("UTF-8");
String strGender = request.getParameter("gender");
String[] favo = request.getParameterValues("favorite");
String strFavorite = "";
int i;
for (i = 0; i < favo.length - 1; i++)
{
strFavorite += favo[i];
strFavorite += ", ";
}
strFavorite += favo[i];
String strIntro = request.getParameter("intro").replace("\r\n", "<br>");;
%>
<h1>Request Param 정보 예제</h1>
<ul>
<li>성별 : <%= strGender %></li>
<li>관심언어 : <%= strFavorite %></li>
</ul>
<p>자기소개 : <br> <%= strIntro %></p>
<br><br>
<h1>HTTP 헤더정보 읽기</h1>
</body>
</html>
_jspService()
매개변수로 request와 response를 가지고 있다.
JSP의 <% %>의 내용과 html Tag들이 _jspService() 에 입력된다.
- request
- HttpServletRequest
- response
- HttpServletResponse
내장객체
1. 미리 new로 할당되어진 객체.
2. <% %>, <%= %> 에서만 사용가능
request : 클라이언트(웹브라우저 등)에서 요청한 정보를 저장.
javax.servlet.http.HttpServletRequest
response : 클라이언트의 요청에 대한 응답 정보를 저장.
javax.servlet.http.HttpServletResponse
out : JSP 출력스트림
javax.servlet.jsp.JspWriter
application : 웹 어플리케이션에 대한 정보
exception : 예외처리
java.lang.Throwable
----------------------------------------------------
session : 웹브라우저 정보에 대한 유지
javax.servlet.http.HttpSession
pageContext : jsp페이지에 대한 정보를 저장
javax.servelt.jsp.PageContext
page : jsp 페이지 자체
javax.lang.Object
config : jsp 설정정보
javax.servlet.ServletConfig
* Dispatcher : 호출자
'JSP' 카테고리의 다른 글
[JSP] Application (0) | 2022.07.15 |
---|---|
[JSP] 내장객체, DTO & JavaBeans (0) | 2022.07.13 |
[JSP] Request (0) | 2022.07.13 |
[JSP] Response (0) | 2022.07.12 |
[JSP] out. (0) | 2022.07.12 |