JSP

[JSP] Scriptlet

SangRok Jung 2022. 7. 8. 21:44
반응형

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 + ",&nbsp;&nbsp;&nbsp; 값 : " +  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