일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- googleColaboratory
- 타자 게임 만들기
- intllij 내 Bean을 찾지 못해서 발생하는 오류
- spring-boot
- DB Browser
- 따라하며 배우는 노드 리액트 기본 강의
- Spring-Framework
- JS 개념
- 거북이 대포 게임
- 자바스크립트
- react오류
- Concurrently
- Colaboratory 글자 깨짐
- props
- 모던자바스크립트
- 리액트
- node.js로 로그인하기
- vs code 내 node
- 인프런
- 노드에 리액트 추가하기
- ReactDOM.render is no longer supported in React 18. Use createRoot instead
- 웹 게임을 만들며 배우는 리액트
- 모두의 파이썬
- node.js 설치
- intellij
- Python
- 계산맞추기 게임
- You are importing createRoot from "react-dom" which is not supported. You should instead import it from "react-dom/client"
- react
- Do it 자바스크립트 + 제이쿼리 입문
- Today
- Total
프로그래밍 삽질 중
JSP 내장 객체 (request 등) 본문
※ 내장 객체(implicit object)
- JSP 페이지에서 사용할 수 있도록 JSP 컨테이너에 미리 정의된 객체
- JSP 페이지 → 서블릿 프로그램 번역 시 JSP컨테이너가 자동으로 내장(각종 참조변수(객체) 포함)
- JSP 페이지에 별도의 impot문 없이 자유롭게 사용 가능
- 스크립틀릿 태그나 표현문 태그에 선언하거나 객체 생성하지 않고도 직접 호출, 사용 가능
※ 요청 파라미터 관련 메소드
- 요청 파라미터 : 사용자가 폼 페이지에 데이터를 입력한 후 서버에 전송 시 전달되는 폼 페이지의 입력된 정보 형태
- 요청 파라미터는 <name=value>형식으로 웹 브라우저에서 서버의 JSP 페이지로 전송
※ 속성 처리 메소드 종류
1) setAttribute(String name, Object value) <-- void 반환
- 객체 속성 이름이 name인 속성 값을 value로 저장
2) getAttribute(String name) <-- Object 반환
- 속성 이름이 name인 속성 값을 가져옴
3) removeAttribute(String name) <-- void 반환
- 속성 이름이 name인 속성을 삭제
4) getAttributeNames() <-- Java.util.Enumeration 반환
- 모든 속성 이름을 가져옴 단, pageContext 제외
※ request 내장 객체
- JSP 페이지에서 가장 많이 사용되는 기본 내장 객체
- 웹 브라우저 → 서버의 JSP 페이지로 전달하는 정보 저장
: 폼 페이지로부터 입력된 데이터를 전달하는 요청 파라미터 값을 JSP 페이지로 가져옴
- JSP 컨테이너는 웹 브라우저에서 서버로 전달되는 정보 처리를 위해
javax.servlet.http.HttpServletRequest 객체 타입의 request 내장 객체를 사용하여 사용자 요구사항 얻어냄
※ request 내장 객체(1)
- 요청 패라미터 관련 메소드 종류(<name=value>형식으로 웹 브라우저에서 JSP 페이지로 전송)
1) getParameter(String name) <-- void 반환
- 요청 패러미터 이름이 name인 값을 전달받음, 해당 패러미터 값이 없으면 null값 반환
2) getParameterValues(String name) <--String[] 반환
- 패러미터 이름이 name인 값을 배열 형태로 전달, 해당 패러미터 값이 없으면 null값 반환
3) getParameterNames() <-- Java.util Enumeration 반환
- 패러미터 이름과 값을 Enumeration 객체 타입으로 전달
4) getParameterMap() <--Java.util.Map 반환
- 모든 요청 패러미터의 이름과 값을 Map 객체 타입으로 반환
※ request 내장 객체(2)
- request 객체의 한글 인코딩
= request.setCharacterEncoding("UTF-8");
※ request 내장 객체(3)
※ RequestDispatcher
- 요청 재지정
- 다른 페이지로 이동하는 forward(), include()를 가지고 있는 객체
[예시 1] 로그인(공란일 때 loginFrm으로 돌아가게 함)
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
31
32
33
34
35
36
37
38
39
|
[loginFrm.jsp] - 화면 창
<body>
<!-- get은 주소창에 아이디, 비번이 보임 / post: 주소창에 아이디, 비번이 보이지 않음 -->
<!-- method=get 예: http://localhost:9090/JSP_global/0408/loginProc.jsp?userId=ddd&userPwd=ddd -->
<!-- method=post 예: http://localhost:9090/JSP_global/0408/loginProc.jsp -->
<form action="loginProc.jsp" method="post">
ID:<input type="text" name="userId"/><br>
PW: <input type="password" name="userPwd"><br>
<input type="submit" value="로그인">
</form>
</body>
[loginProc.jsp] - loginFrm의 부가 창
<body>
<!--한글이 나오게 함-->
<!-- = request.setCharacterEncoding("UTF-8"); -->
<%
request.setCharacterEncoding("UTF-8");
String userId = request.getParameter("userId");
String userPwd = request.getParameter("userPwd");
if(userId.isEmpty() || userPwd.isEmpty()) {
RequestDispatcher rd = request.getRequestDispatcher("loginFrm.jsp"); //공란일 때 loginFrm으로 돌아감
rd.forward(request, response);
return;
}
%>
아이디 : <%=userId %> / 비밀번호 : <%=userPwd %>
</body>
|
cs |
[예시 2] 글자색 따라 배경색 바뀜
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
[background_color_test.jsp]
<%@ 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>
<form action="background_color.jsp" method="post">
이름:<input type="text" name="name"/><br>
좋아하는 색깔: <select name="color" size="1" muliple>
<option value="파랑색" selected>파랑색</option>
<option value="붉은색">붉은색</option>
<option value="초록색">초록색</option>
<option value="오렌지색">오렌지색</option>
<option value="기타(하얀색)">기타(하얀색)</option>
<input type="submit" value="로그인">
</body>
</html>
[background_color.jsp]
<%@ 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>
<%
request.setCharacterEncoding("UTF-8");
String name = request.getParameter("name");
String color = request.getParameter("color");
if (color.equals("파랑색")) {
%> <body bgcolor="blue">
<%
}
%>
<%
if (color.equals("붉은색")) {
%> <body bgcolor="red">
<%
}
%>
<%
if (color.equals("초록색")) {
%> <body bgcolor="green">
<%
}
%>
<%
if (color.equals("오렌지색")) {
%> <body bgcolor="orange">
<%
}
%>
<%
if (color.equals("기타(하얀색)")) {
%> <body bgcolor="white">
<%
}
%>
<h1>IF-else Example</h1>
이름 : <%=name %> / 좋아하는 색깔 : <%=color %>
</body>
</html>
|
cs |
※ request 내장 객체(4)
- 요청 HTTP 헤더 관련 메소드
= 웹 브라우저는 HTTP헤더에 부가적인 정보를 담아 서버로 전송
※ request 내장 객체(5)
- 요청HTTP 헤더 관련 메소드 종류
1) getHeader(String name) <-- String 반환
- 설정한 name의 헤더값을 반환
2) getHeaders(String name) <-- Enumeration 반환
- 설정한 name의 헤더 목록값을 반환
3) getHeaderNames() <--Enumeration 반환
- 모든 헤더 이름 반환
4) getIntHeader(String name) <-- int 반환
- 설정한 name의 헤더값을 정수로 반환
5) getDateHeader(String name) <-- long 반환
- 설정한 name의 헤더값을 시간 값으로 반환
6) getCookies() <--Javax.servlet.http.Cookie
- 모든 쿠키값을 반환
※ request 내장 객체(6)
- 웹 브라우저/서버 관련 메소드
1) getRemoteAddr() <--String 반환
- 웹 브라우저의 IP 주소를 반환
2) getContentLength() <--long 반환
- 웹 브라우저의 요펑 패러미터 길이를 반환
3) getCharacterEncoding() <--String 반환
- 웹 브라우저의 문자 인코딩을 반환
4) getContentType() <-- String 반환
- 웹 콘텐츠 유형을 반환
5) getProtocol() <-- String 반환
- 웹 브라우저의 요청 프로토콜을 반환
6) getMethod() <-- String 반환
- 웹 브라우저의 요청 메소드를 반환
7) getRequestURI() <--String 반환
- 웹 브라우저가 요청한 URI 경로를 반환
8) getContextPath() <-- String 반환
- 현재 JSP 페이지의 웹 앱 콘텍스트 경로 반환
9) getServerPort() <-- int 반환
- 실행중인 서버 포트 번호 반환
10) getQueryString() <-- String 반환
- 웹 브라우저의 질의 문자열 반환
※ request 내장 객체
- 사용자의 요청을 처리한 결과를 서버에서 웹 브라우저로 전달하는 정보 저장,
서버는 응답 헤더와 요청 처리 결과 데이터를 웹 브라우저로 보냅
- JSP 컨테이너는 서버에서 웹 브라우저로 응답하는 정보를 처리하기 위해
javax.servlet.http.HttpServletResponse 객체 타입의 response 내장 객체를 사용하여 사용자의 요청에 응답
※ request 페이지 이동(redirection)
- 사용자가 새로운 페이지를 요청할 때와 같이 페이지를 강제로 이동하는 것
= <%response.sendRedirect("http://www.google.com"); %>
※ request 내장 객체(1)
-응답 HTTP 헤더 관련 메소드
- 서버가 웹 브라우저에 응답하는 정보에 헤더를 추가하는 기능을 제공
- 헤더 정보에는 주로 서버에 대한 정보 저장되어 있음
※ request 내장 객체(2)
- 응답 HTTP 헤더 관련 메소드
1) addCookies(Cookie cookie) <-- void 반환
- 쿠키를 추가
2) addHeader(String name, long value) <-- void 반환
- 설정한 헤더 이름 name에 value를 추가
3) addIntHeader(String name, int value) <-- void 반환
- 설정한 헤더 이름 name에 정수 value를 추가
4) setHeader(String name) <-- void 반환
- 헤더 이름 name에 문자열 값 value 설정
5) setIntHeader(String name) <-- void 반환
- 헤더 이름 name에 정수 value설정
6) containsHeader(String name) <--boolean 반환
- 헤더 이름 name이 HTTP 헤더에 포함되었는지 여부 확인
7) getHeader(String name) <-- String 반환
- 설정한 header의 이름을 반환
[예시 3]
아이디와 비밀번호 둘 다 'admin' 성공 시 로그인에 성공했음!
실패 시 2_loginFrm.jsp로 돌아가서 다시 시도
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | [2_loginFrm.jsp] <%@ 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> <form action="./loginProc.jsp" method="post"> ID: <input type="text" name="userId"><br> PW: <input type="password" name="userPwd"><br> <input type="submit" value="로그인"> </form> </body> </html> [2_loginProc.jsp] <%@ 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> <% request.setCharacterEncoding("utf-8"); String userId = request.getParameter("userId"); String userPwd = request.getParameter("userPwd"); if(userId.equals("admin") && userPwd.equals("admin")) { response.sendRedirect("2_loginSuccess.jsp"); } else { response.sendRedirect("2_loginFail.jsp"); } %> </body> </html> [2_loginSuccess.jsp] <body> 로그인에 성공했음! </body> [2_loginFail.jsp] <body> <p>로그인 실패</p> <p><a href="2_loginFrm.jsp">로그인 하러 가기</a> </body> | cs |
※ request 내장 객체(3)
- 응답 컨텐츠 관련 메소드
= response 내장 객체는 웹 브라우저로 응답하기 위해 MIME 유형, 문자 인코딩, 오류 메시지,
상태 코드 등을 설정하고 가져오는 응답 콘텐츠 관련 메소드 제공
※ 응답 컨텐츠 관련 메소드
1) setContentType(String type) <-- void 반환
- 웹 브라우저에 응답할 MIME 유형 설정
2) getContentType() <-- String 반환
- 웹 브라우저에 응답할 MIME 유형 반환
3) setCharacterEncoding(String charset) <-- void 반환
- 웹 브라우저에 응답할 문자 인코딩 설정
4) getCharacterEncoding() <--String 반환
- 웹 브라우저에 응답할 문자 인코딩 반환
5) sendError(int status_code, String message) <-- void 반환
- 웹 브라우저에 응답할 오류 설정
6) setStatus(int statuscode) <-- void 반환
- 웹 브라우저에 응답할 HTTP 코드 설정