티스토리 뷰

학교공부/JSP

JSP - 3

날따라해봐요요롷게 2021. 3. 9. 22:28

CHAPTER 5

 

CHARPTER 5 : 내장 객체

  • 내장 객체
  • request
  • response
  • out

내장객체

 

: JSP페이지에서 사용할 수 있도록 JSP 컨테이너에 미리 정의된 객체이다.

 

#속성 처리 메소드

  • setAttribute : 해당 내장 객체의 속성 이름이 name인 속성 값을 value로 저장
  • getAttribute : 해당 내장 객체의 속성 이름이 name인 속성 값을 가져온다.
  • removeAttribute : 해당 내장 객체의 속성 이름이 name인 속성을 삭제
  • getAttributeNames : 해당 내장 객체의 모든 속성 이름을 가져온다.

##request 내장 객체

 : 웹 브라우저에서 서버의 JSP 페이지로 전달하는 정보를 저장

 

요청 파라미터 메소드

  • getParameter : 요청 파라미터 이름이 name인 값을 전달 받는다.
  • getParameterValues : 모든 요청 파라미터 이름이 name인 값을 배열 형태로 전달받음
  • getParameterNames : 모든 요청 파라미터의 이름과 값을 Enumeration 객체 타입으로 전달받음
  • getParameterMap : 모든 요청 파라미터의 이름과 값을 Map 객체 타임으로 전달받음
<%@ page contentType = "text/html; charset=utf-8" %>
<html>
<head>
<title>Implicit Objects</title>
</head>
<body>
	<form action="request01_pocess.jsp" method="post">
		<p>아이디 : <input type="text" name="id">
		<p>비밀번호 : <input type="text" name="passwd">
		<p> <input type="submit" value="전송">
	</form>
</body>
</html>

=================================

<%@ page contentType = "text/html; charset=utf-8" %>
<html>
<head>
<title>Implicit Objects</title>
</head>
<body>
	<%
		request.setCharacterEncoding("utf-8");
		String userid = request.getParameter("id");
		String password = request.getParameter("passwd");
	%>
	<p> 아이디 : <%= userid %>
	<p> 비밀번호 : <%= password %>
</body>
</html>

 : form 태그를 작성하여 input 태그를 이용해 아이디와 비밀번호를 입력받는다.

input 태그의 name 속성 값을 보낸다.

인코딩 메소드를 request를 사용하여 한글이 깨지지 않도록 한다.

userid 를 request.getParameter로 하여 name="id" 속성 값을 받는다.

password를 request.getParameter로 하여 name="passwd" 속성 값을 받는다.

 

# 요청 HTTP 헤더 관련 메소드

 : 웹 브라우저는 HTTP 헤더에 부가적인 정보를 담아 서버로 전송.

request 내장 객체는 헤더 정보나 쿠키 관련 정보를 얻을 수 있는 메소드를 제공.

<%@ page contentType = "text/html; charset=utf-8" %>
<%@ page import="java.util.Enumeration" %>
<html>
<head>
<title>Implicit Objects</title>
</head>
<body>
	<%
		Enumeration en = request.getHeaderNames();
		while(en.hasMoreElements()){
			String headerName = (String) en.nextElement();
			String headerValue = request.getHeader(headerName);
	%>
	<%=headerName%> : <%=headerValue%><br>
	<%
		}
	%>
</body>
</html>

모든 헤더 이름을 가져오록 request 내장 객체 getHeaderNames 메소드를 작성하고, Enumeration 객체 타입의 변수에 저장한다.

en 변수의 hasMoreElements 메소드를 통해 저장된 헤더 이름이 있을 때 까지 반복한다.

현재의 헤더 이름을 가져오도록 nextElement 메소드를 작성한다

 

#웹 프라우저 / 서버 관련 메소드

request 내장 객체는 웹 브라우저의 요청 및 서버 관련 정보를 얻을 수 있는 메소드를 제공한다.

  • getRemoteAddr : 웹 브라우저의 ip주소를 가져온다.
  • getContentLength : 웹 브라우저의 요청 파라미터의 길이 가져옴
  • getCharacterEncoding : 웹 브라우저의 문자 인코딩을 가져옴
  • getContentType : 웹 브라우저의 콘텐츠 유형을 가져옴
  • getMethod : 웹 브라우저의 HTTP 요청 메소드 GET, POST 를 가져옴
<%@ page contentType = "text/html; charset=utf-8" %>
<html>
<head>
<title>Implicit Objects</title>
</head>
<body>
	<form action="request02_process.jsp" method="post">
		<p>아이디 : <input type="text" name="id">
		<p>비밀번호 : <input type="text" name="passwd">
		<p> <input type="submit" value="전송">
	</form>
</body>
</html>

============================

<%@ page contentType = "text/html; charset=utf-8" %>
<html>
<head>
<title>Implicit Objects</title>
</head>
<body>
	<%
		request.setCharacterEncoding("utf-8");
		String userid = request.getParameter("id");
		String password = request.getParameter("passwd");
	%>
	<p> 아이디 : <%= userid %><br>
		비밀번호 : <%= password %><br>
		요청 정보 길이 :<%=request.getContentLength() %> <br>
		클라이언트 전송 방식 : <%=request.getMethod() %><br>
		요청 URI : <%=request.getRequestURI() %><br>
		서버 이름 : <%=request.getServerName() %><br>
		서버 포트 : <%=request.getServerPort() %><br>
</body>
</html>

출력문 태그 안에 request서버 관련 메소드를 이용하여 정보를 얻어 올 수 있다.

 

##response 내장 객체

 : response 내장 객체는 사용자의 요청을 처리한 결과를 서버에서 웹 브라우저로 전달하는 정보를 저장한다.

즉, 서버는 응답 헤더와 요청 처리 결과 데이터를 웹 브라우저로 보낸다.

 

#페이지 이동 관련 메소드

 : 사용자가 새로운 페이지를 요청할 때와 같이 페이지를 강제로 이동하는 것을 리다이렉션 이라고 한다.

서버는 웹 브라우저에 다른 페이지로 강제 이동하도록 reponse 내장 객체의 리다이렉션 메소드를 제공한다.

페이지 이동 시에 문자 인코딩을 알맞게 설정해야한다.

 

※페이지 이동방법

 - forward <jsp:forward page="이동할 페이지" />

  : 현재 JSP페이지에서 이동할 url로 요청 정보를 그대로 전달하므로 최초의 정보가 이동된 url에서도 유효하다.

 - redirect : response.sendRedirect("이동할 페이지")

 : 현재 JSP페이지로부터 이동할 URL을 웹 브라우저로 반환한다. 사용자가 새로운 페이지를 요청한 것과 같은 방식

 

<%@ page contentType = "text/html; charset=utf-8" %>
<html>
<head>
<title>Implicit Objects</title>
</head>
<body>
	<form action="response01_process.jsp" method="post">
		<p> 아이디 : <input type="text" name = "id">
		<p> 비밀번호 : <input type="text" name="passwd">
		<input type="submit" value="전송">
	</form>
</body>
</html>

===================================
<%@ page contentType = "text/html; charset=utf-8" %>
<html>
<head>
<title>Implicit Objects</title>
</head>
<body>
	<%
		request.setCharacterEncoding("utf-8");
		String userid = request.getParameter("id");
		String password = request.getParameter("passwd");
		
		if(userid.equals("asd") && password.equals("1234")){
			response.sendRedirect("response01_success.jsp");
		} else {
			response.sendRedirect("response01_fail.jsp");
		}
	%>
</body>
</html>

================

로그인 실패

================

로그인 성공

 

폼 태그를 이용해 아이디와 비밀번호를 작성하면 -> request.getParameter로 해당 name의 속성값을 받아온다. 

->equals() 메소드를 사용하여 입력한 아이디와 비밀번호가 같은지 확인한 후 -> response.sendRedirect 메소드를 사용하여 성공/실패 jsp 페이지로 이동시킨다.

 

#응답 HTTP 헤더 관련 메소드

 : 서버가 웹 브라우저에 응답하는 정보에 헤더를 추가하는 기능을 제공한다.

헤더 정보에는 주로 서버에 대한 정보가 저장

 

#응답 콘텐츠 관련 메소드

 : response 내장 객체는 웹 브라우저로 응답하기 위해 MIME 유형, 문자 인코딩, 오류 메시지, 상태 코드 등을 설정하고 가져오는 응답 콘텐츠 관련 메소드를 제공한다.

 

## out 내장 객체

 : out 내장 객체는 웹 브라우저에 데이터를 전송하는 출력 스트림 객체이다.

out 내장 객체는 스크립틀릿 태그에 사용하여 단순히 값을 출력하는 표현문태그<%= %> 와 같은 결과를 얻을 수 있다.

  • print(String str) : 설정된 str 값을 웹 브라우저에 출력
  • println(String str) : 설정된 str 값을 웹 브라우저에 출력

 

<%@ page contentType = "text/html; charset=utf-8" %>
<html>
<head>
<title>Implicit Objects</title>
</head>
<body>
	<%
		out.println("오늘의 날짜 및 시각" + "<br>");
		out.println(java.util.Calendar.getInstance().getTime());
	%>
</body>
</html>

=================================
<%@ page contentType = "text/html; charset=utf-8" %>
<html>
<head>
<title>Implicit Objects</title>
</head>
<body>
	<%
		request.setCharacterEncoding("utf-8");
		String userid = request.getParameter("id");
		String password = request.getParameter("passwd");
	%>
	<p> 아이디 : <% out.println(userid); %>
	<p> 비밀번호 : <% out.println(password); %>
</body>
</html>

 

'학교공부 > JSP' 카테고리의 다른 글

JSP - 10  (0) 2021.04.15
JSP - 9  (0) 2021.04.06
JSP - 7  (0) 2021.03.24
JSP - 4  (0) 2021.03.09
JSP - 2  (0) 2021.03.09
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함