본문 바로가기
국비 과정/JSP

국비 - 1006 ( response , page context , 액션태그)

by 코딩호야 2022. 10. 6.


* response

내장객체 response 는 서버가 클라이언트에게 요청에 대한 응답을 보내기 위한 객체이다
내장 객체 response 의 자료 유형인  HttpServletResponse 는 상위 인터페이스로 
ServletResponse를 가지며 다음과 같은 메서드를 가지고 있다.

반환값                               메서드                                                사용용도

void                 addCookie(Cookie cookie)                             쿠키 데이터 기록

void                     addHeader(String name,String value)         response 헤더 내용기록

void                        sendRedirect(String location)                    지정된 location 페이지로 이동

void                       setBufferSize(int size)                                  버퍼크기 지정

void                       setContentType(String type)                        Content type 지정

int                             getBufferSize(int size)                                 버퍼크기 반환

 

sendRedirect 사용예

html 페이지

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>sendredirect test</title>
</head>
<body>
<h2> 검색할 단어를 입력하세요</h2>
<hr size="5" color="red">
<form action="sendredirect_1.jsp" method="get">
검색 키워드 : <input type="text" name="word"><p>

검색할 사이트 : 네이버<input type="radio" name="search1" value="naver">
			다음<input type="radio" name="search1" value="daum">
			구글<input type="radio" name="search1" value="google"><br>

<input type="submit" value="보내기">&nbsp;&nbsp;
<input type="reset" value="취소">
</form>

</body>
</html>

 

JSP 페이지

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>sendredirect_1.jsp Test</title>
</head>
<body>
<hr size="5" color="green">
<% 
String search = request.getParameter("search1");

if(search.equalsIgnoreCase("google"))
{
   String URL = "https://www.google.com/search?q=";
   String keyword = request.getParameter("word");
   
   URL += keyword;
   response.sendRedirect(URL);
}
else if (search.equalsIgnoreCase("daum")){

   String URL = "https://search.daum.net/search?nil_suggest=btn&w=tot&DA=SBC&q=";
   String keyword = request.getParameter("word");
   
   URL += keyword;
   response.sendRedirect(URL);
}
else {
   String URL = "https://search.naver.com/search.naver?where=nexearch&sm=top_hty&fbm=1&ie=utf8&query=";
   String keyword = request.getParameter("word");
   
   URL += keyword;
   response.sendRedirect(URL);
}
%>


</body>
</html>

위의 HTML 페이지에서  검색할 사이트를 radio 타입에서 한가지 체크 하면 JSP 페이지에서 

String search = request.getParameter("search1");  이 코드로 받아온후 search 에 담긴 검색 사이트를 

아래의 if 문으로 구글, 네이버 , 다음인지 확인한다. 

그뒤에 String keyword = request.getParameter("word");  이코드로 검색어를 keyword로 담아준다 

그 후 각각의 검색 쿼리가 담긴 URL 뒤에 검색어가 담긴 keyword 를 붙여준후 URL 을 

response.sendredirect() 메서드 안에 담아줘서 지정된 검색창으로 검색을 할수 있게 보내준다. 

 

이런식으로  검색 키워드에 korea 를 입력한후 네이버로 검색 사이트를 지정한후 보내기를 누르면 

네이버에서 korea 를 검색 한 것을 확인할 수 있다.

 

위에서 주소창을 보면 

https://search.naver.com/search.naver?where=nexearch&sm=top_hty&fbm=1&ie=utf8&query=korea

라고 나와있는데 이것을 활용하여서 JSP 코드에 URL 에 담는 쿼리문을 넣어줬다.

korea 가 검색 한 검색어이고 그 전 주소창은  네이버에서 검색을 할 수 있는 쿼리문이다.

저것을 활용하여 다음과 구글도 각각의 검색창의 쿼리문을 확인할 수 있다.


 

 

pageContext

내장 객체 pageContext 는 자료유형 클래스 javax.servlet.PageContext 로
JSP 페이지에 관한 정보와 다른 페이지로 제어권을 넘겨줄때 이용하는 메서드를 제공한다

반환값 메서드 사용용도

void forward(String) 다른 서블릿 혹은 JSP 로 요청을 이동

void  include(String) 지정된 페이지를 현재 위치에 삽입

Exception getException() Exception 객체를 반환

Object getPage() page 객체를 반환

HttpSession getSession() HttpSession 객체를 반환



* 액션 태그

JSP 액션 태그는 XML 스타일의 태그로 기술하며 특정한 동작 기능을 수행한다.
JSP 액션태그는 다음과 같이 '<' 와 접두어 jsp : 를 사용한다

종류 

태그 종류                          태그 형식                                      사용용도

include            <jsp:include page="test.jsp" />        현재 JSP 페이지에 다른 페이지 삽입(결과 삽입)

  param          <jsp:include page="test.jsp">
                              <jsp:param name="id" value="korea"/>
                         </jsp:include>

forward             <jsp:forward page="test.jsp" />      현재 JSP 페이지의 제어를 다른 페이지에 전달

param           <jsp:forward page="test.jsp>
                          <jsp:param name="id" value="seoul"/>
                        </jsp:forward>

plugin               <jsp:plagin  type="applet" code="test"/>          자바 애플릿 등을 플러그인

useBean           <jsp:useBean id="login" class="LoginBean" />        자바 빈즈 사용

setProperty       <jsp:setProperty name="login" property="pass"/>    자바빈즈 속성을 지정하는 메서드 호출

getProperty      <jsp:getProperty name="login" property="pass" />    자바빈즈 속성을 반환하는 메서드 호출 

 

 

로그인 예시  include , param 사용

HTML 페이지

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Login Test</title>
</head>
<body>
<h2>로그인</h2>
<form action="Login_1.jsp" method="post">

	아이디 : <input type="text" name="userid"><br>
	암호  : <input type="password" name="passwd"><br>
	전화번호  : <input type="text" name="tel"><br>
	
	<input type="submit" value="로그인">&nbsp;&nbsp;
	<input type="reset" value="다시입력">&nbsp;&nbsp;
</form>

</body>
</html>

 

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>login.jsp test</title>
</head>
<body>
<h2> 로그인 테스트 </h2>
<% 
	request.setCharacterEncoding("utf-8");
	String userid = request.getParameter("userid");
	String passwd = request.getParameter("passwd");
%>

<%
	if(userid.equals("")){
%>
	<jsp:include page="loginhandle.jsp">
			<jsp:param value="guest" name="userid"/>
			<jsp:param value="anonymous" name="passwd"/>
			<jsp:param value="12341234" name="tel"/>
	</jsp:include>
<%} else { %>

	<jsp:include page="loginhandle.jsp" />
	<%
	}	
	%>
</body>
</html>

위처럼 include 를 통해 현재 JSP 페이지에 다른 페이지 삽입 하고 위와같이 간단한 로그인 페이지를 만들 수 있다.

로그인 화면에서 아이디 , 암호 ,전화번호를 입력하면 전송되서 로그인이 되고  아이디에 null  값이 입력되면 

마지막 사진처럼 회원이 아닌 게스트 입장으로 화면이 출력된다.