* 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="보내기">
<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="로그인">
<input type="reset" value="다시입력">
</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 값이 입력되면
마지막 사진처럼 회원이 아닌 게스트 입장으로 화면이 출력된다.
'국비 과정 > JSP' 카테고리의 다른 글
| 국비 - 1017 ( 게시판 폼 만들기 ) (0) | 2022.10.17 |
|---|---|
| 국비 - ( JSP MVC 패턴 ) (4) | 2022.10.12 |
| 국비 - 1011 ( javabeans , template ) (2) | 2022.10.11 |
| 국비 - 1005 ( Implicit Object(내장객체) request , exception) (2) | 2022.10.05 |
| 국비 - 1004 JSP(Java Server Page) (0) | 2022.10.04 |