반응형
객체화 없이 사용할 수 있는 객체이며, JSP파일이 서블릿으로 변환될 때 웹 컨테이너가 자동으로 메모리에 할당하며 제공한다.
문법 | 내용 |
request | 웹 브라우저의 요청 정보를 저장 |
response | 웹 브라우저 요청에 대한 응답 정보 저장 |
out | JSP페이지 body에 출력할 내용 작성 시 사용 |
session | 하나의 웹 브라우저의 정보를 유지하기 위한 세션 정보를 저장 |
pageContext | JSP 페이지에 대한 정보를 저장 (상대경로가 안될때 절대 경로 관련 정보가 있다) |
exception | JSP 페이지에 예외가 발생한 경우 사용되는 객체 (오류 발생 시 오류 관련 객체가 담긴다.) |
//Main Source
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>내장 객체 예제</title>
</head>
<body>
<form action="object_ok.jsp" name="join" method="post">
<fieldset>
<legend>개인정보</legend>
<input type="text" name="name"> <input type="date"
name="birthday">
<!-- onclick을 쓴다는건 전송전에 확인해야할게 있다. -->
<input type="button" value="확인" onclick="send()">
</fieldset>
</form>
</body>
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script>
$("input[name='name']").on("click",function(){
$(this).removeArrt('style');
$(this).removeattr('placeholder');
});
$("input[name='birthday']").on("click",function(){
$(this).removeArrt('style');
});
// 버튼이 서브밋이 아니라는 의미는 전송을 판단후에 진행하겠다는 의미
// 아래의 작업으로 입력이 안되어있으면 적으라고 표현할 것!
function send() {
var frm = document.join;
if (frm.name.value == "") {
$("input[name='name']").css('border-color', 'red');
$("input[name='name']").attr('placeholder', '성함을 입력하세요');
return;
}
if (frm.birthday.value == "") {
$("input[name='birthday']").css('border-color', 'red');
return;
}
frm.submit();
}
</script>
</html>
// 받은 내용을 표현
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%request.setCharacterEncoding("UTF-8");%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>내장객체 request 예제</title>
</head>
<body>
<table>
<tr>
<th>이름</th>
<th>생일</th>
</tr>
<tr>
<td><%=request.getParameter("name") %></td>
<td><%=request.getParameter("birthday") %></td>
</tr>
</table>
</body>
</html>
+) request와 response.redirect로 데이터 주고 받기
★Point! 데이터를 주고 받다가 문제가 생겼을때 해결 방법!
<%request.setCharacterEncoding("UTF-8");%>
위의 내용으로 request의 캐릭터 포맷을 맞춰준다.
그방법도 안된다면 URL 인코딩을 맞춰준다.
예제
// Main Source
<%@ 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>
<!-- test2로 입력한 이름 전달하기 -->
<form action="test2.jsp" method="post">
<input type="text" name="name">
<button>전송</button>
</form>
<%-- <%=request.getParameter("name") %>--%>
<!-- null이 아닐때에만 출력 -->
<%
String name = request.getParameter("name");
if(name != null){
out.println(name);
}
%>
</body>
</html>
// 받아서 처리해주는 2번째 페이지 1번방식(form으로 데이터 전달), 2번방식(redirect로 바로 페이지 전달)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%-- <%request.setCharacterEncoding("UTF-8"); %> --%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- 이름 전달받기 -->
<%-- <%request.setCharacterEncoding("UTF-8"); %>
<% out.print(request.getParameter("name"));%> --%>
<!-- 전달받은 이름을 test.jsp로 전달 -->
<!-- (1) -->
<%-- <form action="test.jsp">
<input type="text" name="name" value="<%=request.getParameter("name")%>">
<button>전송</button>
</form> --%>
<!-- (2) -->
<%response.sendRedirect("test.jsp?name=" + request.getParameter("name"));%>
</body>
</html>
반응형
'프로그래밍 공부 > JSP' 카테고리의 다른 글
[DoIt] JSP - 기본 데이터 전달(JSP -> Servlet) , get/post 전달방식 (0) | 2023.01.10 |
---|---|
[lesson] JSP - 쿠키(Cookie) + 세션(Session) (0) | 2023.01.10 |
[lesson] JSP - Ajax (Asynchronous Javascript and Xml) (0) | 2023.01.10 |
[lesson] JSP - 개요 (0) | 2021.09.08 |
[lesson] JSP - 태그(디렉티브, 스크립트, include, 액션) (0) | 2021.09.07 |