개발자입니다
IT BANK) JSP 8일차 - JSP(내장 객체) 본문
220916
■ 내장 객체
: Request request = new Request(); 로 객체 생성해서 사용하지 않고 JSP에서 제공해주는 객체
네이버 로그인 후 여러 페이지로 이동해도 로그인 값 유지 해야하면 session에 로그인 값 저장
사용빈도 request, session이 높음
-내장 객체 종류
: 많이 사용하나 다 외우기보다 이런게 있다는걸 알고 필요할때 검색해서 사용한다.
jspExam에서 신규 폴더 implicit 생성 후 진행
-웹 브라우저 - 요청 헤더에서 정보 가져오기
<title>ex1</title>
</head>
<body>
<%-- request 내장 객체에서 제공하는 메서드 --%>
<!-- http://localhost:8085/jspExam/implicit/ex1.jsp -->
웹 컨텍스트 패스 : <%=request.getContextPath() %><br>
요청 방식 : <%=request.getMethod() %><br>
요청 URL : <%=request.getRequestURL() %><br>
요청 URI : <%=request.getRequestURI() %><br>
요청한 서버 이름 : <%=request.getServerName() %><br>
요청 프로토콜 : <%=request.getProtocol() %><br>
</body>
-method 전달 방식별 차이(method="get" vs "post")
<form>태그에 담아서 jsp 파일에 전달
get 메서드 전달 시 URL에 데이터를 담아 전달
http://localhost:8085/jspExam/implicit/ex2_result?id=test&pw=1234
post 메서드 전달 시 HTTP Body에 데이터를 담아 전달(URL 표시 X). 아이디, 비밀번호 같은 보안정보는 post 방식 사용.
http://localhost:8085/jspExam/implicit/ex2_result.jsp
<title>ex2_form</title>
</head>
<body>
<form action="ex2_result.jsp" method="get">
<input type="text" name="id"><br>
<input type="text" name="pw"><br>
<input type="submit" value="로그인">
<input type="reset" value="취소"><br>
</form>
</body>
POST 방식일 때 한글깨짐 발생. 전달된 데이터의 인코딩과 데이터를 갖고 올때 인코딩이 서로 다르기에 깨짐
HTTP body에서 정보 담아올때 운영체제 기본 인코딩으로 데이터 가져와서 한글 깨짐. UTF-8 request 코드 추가 필요
//ex2_result.jsp
<%
request.setCharacterEncoding("UTF-8"); // POST 방식일때 코드 추가
String id = request.getParameter("id");
String pw = request.getParameter("pw");
%>
아이디 : <%=id %><br>
비밀번호 : <%=pw %>
-checkbox 여러 데이터 다른 페이지로 전송
request.getParameter("") 는 딱 1개의 데이터만 가져온다. 그래서 체크박스 2개 이상 선택한 것은 다 가져오지 못한다.
→ request.getParameterValues 사용
<title>ex3_form</title>
</head>
<body>
<form action="ex3_result.jsp" method="get">
<input type="text" name="name"><br>
<input type="text" name="address"><br>
<p>좋아하는 항목을 체크하세요.</p>
<input type="checkbox" name="like" value="꿀잠자기">꿀잠자기<br>
<input type="checkbox" name="like" value="멍때리기">멍때리기<br>
<input type="checkbox" name="like" value="침대에서 누워있기">침대에서 누워있기<br>
<input type="submit" value="가입">
</form>
</body>
//ex3_result.jsp
<%@ page import="java.util.Arrays" %>
<%
request.setCharacterEncoding("UTF-8");
String name = request.getParameter("name");
String address = request.getParameter("address");
String[] likes = request.getParameterValues("like");
%>
이름 : <%=name %><br>
주소 : <%=address %><br>
좋아하는 것 : <%=Arrays.toString(likes) %><br>
위 코드에서 아래 코드 추가해서 for문으로 나타낼 수도 있다.
// 추가
<%
for(String like : likes){
out.print(like + " ");
}
%>
-예제(1)
<title>infoForm</title>
</head>
<body>
<form action="infoResult.jsp" method="post">
ID : <input type="text" name="id"><br>
Password : <input type="password" name="pw"><br>
자기소개<br>
<textarea rows="3" cols="50" name="si"></textarea><br>
<input type="submit" value="전송">
<input type="reset" value="초기화">
</form>
</body>
// infoResult.jsp
<%
request.setCharacterEncoding("UTF-8");
String id = request.getParameter("id");
String pw = request.getParameter("pw");
String si = request.getParameter("si");
%>
입력한 정보는 아래와 같습니다.<br>
ID : <%=id %><br>
Password : <%=pw %><br>
자기 소개 : <%=si %>
-예제(2)
<body>
<form action="selectResult.jsp" method="post">
<table>
<tr>
<td>
학력
</td>
<td>
<select name="edu">
<option>재학생</option>
<option>학사</option>
<option>석사</option>
<option>박사</option>
</select>
</td>
</tr>
<tr>
<td>
소속 국가
</td>
<td>
<select size="4" name="country">
<option>대한민국</option>
<option>미국</option>
<option>일본</option>
<option>중국</option>
</select>
</td>
</tr>
<tr>
<td>
관심 분야
</td>
<td>
<select size="4" multiple="multiple" name="like">
<option>컨설팅</option>
<option>프로듀서</option>
<option>프로그래머</option>
<option>서버관리자</option>
</select>
</td>
</tr>
</table>
<input type="submit" value="전송">
<input type="reset" value="초기화">
</form>
</body>
<title>selectResult</title>
</head>
<body>
<%
request.setCharacterEncoding("UTF-8");
String edu = request.getParameter("edu");
String country = request.getParameter("country");
String[] likes = request.getParameterValues("like");
%>
입력하신 정보는 아래와 같습니다.<br><br>
학력: <%=edu %><br>
소속 국가: <%= country %><br>
관심 분야:
<%
for(String like : likes){
out.print(like+" ");
}
%>
</body>
'JSP > IT BANK - JSP' 카테고리의 다른 글
IT BANK) JSP 10일차 - JSP(쿠키) (0) | 2022.09.20 |
---|---|
IT BANK) JSP 9일차 - JSP(form, result, 응답) (0) | 2022.09.20 |
IT BANK) JSP 7일차 - JSP(태그 종류, 기초) (0) | 2022.09.15 |
IT BANK) JSP 6일차 - Javascript, 코드 분리 (0) | 2022.09.14 |
IT BANK) JSP 5일차 - Javascript (0) | 2022.09.13 |