국비지원교육 (22.01-22.07)/강의노트
22-04-11(월) 051일차 [HTML, JavaScript] jQuery 페이지 넘어가기, RequestDispatcher
옌炎
2022. 6. 3. 10:57
728x90
수업내용
1교시 (09:30-10:20)
- mem_jquery.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원 가입 폼</title>
<!-- jQuery CDN 불러오기 -------------------------------------------->
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<!-- 다음 주소록 OPEN API CDN 불러오기 ----------------------------------->
<script src="http://dmaps.daum.net/map_js_init/postcode.v2.js"></script>
<script type="text/javascript">
$(document).ready(function(){
alert("ready >>> : ");
/*====== memForm 태그 START ==========================================*/
// memForm 태그에 바인딩 된 데이터 jsp 로 보내기
$("#memInsertBtn").click(function(){
alert("mzone_btn >>> : ");
console.log("mzone_btn >>> : ");
//############################################# jQuery 버전 START
// id 값 :
// mname
var mname = $('#mname');
console.log("mname >>> : " + mname);
// JSON : 자바스크립트에 있는 JSON을 처리하는 객체
// stringify() : 오브젝트를 JSON 데이터로 변경하는 함수
// parse() : JSON 데이터를 자바스크립트 객체로 변경하는 함수
console.log("JSON.stringify(mname) >>> : " + JSON.stringify(mname));
var mname_val = $('#mname').val();
console.log("mname_val >>> : " + mname_val);
console.log("JSON.stringify(mname_val) >>> : " + JSON.stringify(mname_val));
// mhp
var mhp = $('#mhp');
var mhp_val = $('#mhp').val();
var mhp_length = $('#mhp').length;
var mhp_option = $("#mhp option:selected")
var mhp_option_val = $("#mhp option:selected").val();
var mhp_option_text = $("#mhp option:selected").text();
// mgender
var mgender = $('#mgender');
var mgender_val = $('#mgender').val();
var mgender_length = $('#mgender').length;
var mgender_checked = $("#mgender:checked")
var mgender_checked_val = $("#mgender:checked").val();
var mgender_id_01 = $("input:radio[id='mgedner']:input[value='01']").val();
var mgender_id_02 = $("input:radio[id='mgedner']:input[value='02']").val();
// mhobby
/*
$("#memForm")
.attr({
"action":"#",
"method":"GET",
"enctype":"application/x-www-form-urlencoded"
})
.submit();
*/
});
});
</script>
<style type="text/css">
/*====== div START ==========================================*/
div {
margin: 50px 0px 0px 100px;
}
/*====== div END ==========================================*/
</style>
</head>
<body>
<div>
<h3>회원 가입</h3>
<hr>
<form name="memForm" id="memForm">
<table border="1">
<tr>
<td colspan="2">회원 가입</td>
</tr>
<tr>
<td>회원번호</td>
<td><input type="text" class="mnum" name="mnum" id="mnum" readonly /></td>
</tr>
<tr>
<td>이름</td>
<td><input type="text" class="mname" name="mname" id="mname" /></td>
</tr>
<tr>
<td>아이디</td>
<td>
<input type="text" class="mid" name="mid" id="mid" placeholder="아이디체크" />
<input type="button" class="midCheck" name="midCheck" id="midCheck" value="아이디중복확인" />
</td>
</tr>
<tr>
<td>패스워드</td>
<td>
<input type="text" class="mpw" name="mpw" id="mpw" style="width:100px"/><br>
<input type="text" class="mpw_r" name="mpw_r" id="mpw_r" placeholder="비밀번호확인" style="width:100px"/>
<input type="button" class="mpwCheck" name="mpwCheck" id="mpwCheck" value="비밀번호확인">
</td>
</tr>
<tr>
<td>핸드폰</td>
<td>
<select class="mhp" name="mhp" id="mhp" style="width:50px;">
<option value="010">010</option>
<option value="011">011</option>
<option value="016">016</option>
<option value="017">017</option>
</select>
- <input type="text" class="mhp1" name="mhp1" id="mhp1" maxlength="4" style="width:50px;"/>
- <input type="text" class="mhp2" name="mhp2" id="mhp2" maxlength="4" style="width:50px;"/>
</td>
</tr>
<tr>
<td>이메일</td>
<td>
<input type="text" class="memail" name="memail" id="memail" style="width:100px"/>
@ <input type="text" class="memail1" name="memail1" id="memail1" style="width:100px" placeholder="직접입력" />
<select class="memail2" name="memail2" id="memail2">
<option value="1" selected>직접입력</option>
<option value="naver.com">naver.com</option>
<option value="gmail.com">gmail.com</option>
<option value="daum.net">daum.net</option>
</select>
</td>
</tr>
<tr>
<td>성별</td>
<td>
<input type="radio" class="mgender" name="mgender" value="01" checked="checked" />여자
<input type="radio" class="mgender" name="mgender" value="02" /> 남자
</td>
</tr>
<tr>
<td>취미</td>
<td>
<input type="checkbox" class="mhobby" name="mhobby" value="01" />독서
<input type="checkbox" class="mhobby" name="mhobby" value="02" />운동
<input type="checkbox" class="mhobby" name="mhobby" value="03" />음악감상
<input type="checkbox" class="mhobby" name="mhobby" value="04" />여행
</td>
</tr>
<tr>
<td>주소</td>
<td>
<input type="text" class="mzone" name="mzone" id="mzone" placeholder="우편번호" style="width:70px" maxlength="6" >
<input type="button" class="mzone_btn" name="mzone_btn" id="mzone_btn" value="우편번호 찾기"><br>
<input type="text" class="mroad" name="mroad" id="mroad" placeholder="도로명주소" style="width:250px"><br>
<input type="text" class="mroaddetail" name="mroaddetail" id="mroaddetail" placeholder="도로명주소 상세주소" style="width:250px"><br>
<input type="text" class="mjibun" name="mjibun" id="mjibun" placeholder="지번주소" style="width:250px">
</td>
</tr>
<tr>
<td>소개글</td>
<td>
<textarea class="mmsg" name="mmsg" id="mmsg" rows="5" cols="50"></textarea>
</td>
</tr>
<tr>
<td colspan="2">
<input type="hidden" id="ISUD_TYPE" name="ISUD_TYPE" value="I">
<input type="button" value="jsp_보내기" id="memInsertBtn" />
<input type="reset" value="취소" />
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
- 지난 시간 배운 내용 복습
JSP : 자바 언어를 기반으로 해서 페이지를 이동하는 기술이다.
동적인 데이터 처리
1. Context/WebContent -> New - JSP File : 확장자 test.jsp
test.jsp 파일을 요청하면
test.jsp가 서블릿으로 변경 test_jsp.java (서블릿 Servlet)
test_jsp.java가 컴파일 됨 test_jsp.claa (클래스 파일)
test_jsp.class가 실행됨
\el_web_work\.metdata\.plugins\org.eclipse.wst.server.core\temp\work
Catalina\localhost\KosMember\org\apache\jsp\kosmem
C:\Program Files\Apache Software Foundation\Tomcat 8.5\lib\jsp-api.jar
C:\Program Files\Apache Software Foundation\Tomcat 8.5\lib\servlet-api.jar
C:\Program Files\Apache Software Foundation\Tomcat 8.5\lib\jasper.jar
자스퍼 : jasper.kar
jsp 소스코드를 Servlet 클래스로 변경할 떄 사용하는 라이브러리이다.
2. 태그
<% %>
<%= %>
<%-- --%> : jsp 주석 : 클라이언트로 전송되지 않는다.
<%@ page
<%@ page import="" %>
<%@ include : 페이지를 이동시키는 태그
<%@ taglib : jsp에서 만들어준 태그를 사용하는 것
<jsp:forward : 페이지를 이동시키는 액션태그
<jsp:include : 페이지를 이동시키는 액션태그
<jsp:param : 페이지 이동 시 데이터를 전송하는 액션태그
3. 내장객체
pageContext
request
session
application
response
out
4. UI 요소 (화면구현 요소)
-----------------------------------------
HTML
CSS
JavaScript, jQuery
Ajax
JSON, XML
2교시 (10:30-11:20)
- param.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>파라미터 테스트</title>
</head>
<body>
<h3>파라미터 테스트</h3>
<hr>
<form name="paramForm" id="paramForm">
<input type="text" class="mid" name="mid" id="mid" />
<input type="text" class="mpw" name="mpw" id="mpw" />
<input type="button" id="mid_btn" value="보내기" />
</form>
</body>
</html>
- pram.html
3교시 (11:30-12:20)
- 정리
param.html -> param_a.jsp
form
input name="mid" request.getParameter("mid");
C:\Program Files\Java\jdk1.9.0_202\jre\lib\ext
4교시 (12:30-13:20)
- param_A.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>param_A.jsp</title>
<!--
jQuery CDN 을 사용해서
/kos_jsp/param_B.jsp 파일 을 만들어서
jQuery click 함수를 이용해서 /kos_jsp/param_A.jsp 의
form 태그에 있는 데이터 전송하기
click 이벤트는 버튼에 하기
-->
<!-- 1. jQuery CDN -->
<!-- jQuery CDN 불러오기 -------------------------------------------->
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<!-- 2. 스크립트 블록 -->
<script type="text/javascript">
alert("스크립트 블록");
// 3. jQUery ready() 함수 블록 만들기 : html 문서가 로딩된 이후에 jQuery가 동작을 해야 한다.
$(document).ready(function(){
alert("jQuery ready() 함수 블록");
// 4. 버튼 이벤트
$("#mid_btn").click(function(){
alert("mid_btn 함수 블록");
// 5. form 태그 세팅
// http://localhost:8088/kosMember/kos_jsp/param_B.jsp
$("#paramForm_A").attr({
"action":"/KosMember/kos_jsp/param_B.jsp",
"method":"GET"
}).submit();
});
});
</script>
</head>
<body>
<h3>param_A.jsp</h3>
<hr>
<%
// 스크립틀릿 : 자바 코드를 기술한다.
// <input type="text" class="mid" name="mid" id="mid" />
// request : 내장형 오브젝트
String mid = request.getParameter("mid");
//<input type="text" class="mpw" name="mpw" id="mpw" />
String mpw = request.getParameter("mpw");
System.out.println("mid >>> : " + mid);
System.out.println("mpw >>> : " + mpw);
%>
<!-- <%= mid %> 표현식 : 자바코드를 웹브라우저에 출력하는 것 -->
<%-- <%= mid %> 표현식 : 자바코드를 웹브라우저에 출력하는 것 --%>
<%= mid => -> <%= mid %><br>
<%= mpw => -> <%= mpw %><br>
<h3>el: Expression language</h3>
\${ param.mid } -> ${ param.mid }<br>
\${ param.mpw } -> ${ param.mpw }<br>
<h3>param_A.jsp 에서 form 태그로 전송하기</h3>
<hr>
<form name="paramForm_A" id="paramForm_A">
<input type="text" class="mid" name="mid" id="mid" value="<%= mid %>"/>
<input type="text" class="mpw" name="mpw" id="mpw" value="<%= mpw %>"/>
<input type="button" id="mid_btn" value="보내기" />
</form>
</body>
</html>
- param_B.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>
<h3>param_B.jsp</h3>
<hr>
<%
// 스크립틀릿
// <input type="text" class="mid" name="mid" id="mid" />
// request : 내장형 오브젝트
String mid = request.getParameter("mid");
// <input type="text" class="mid" name="mid" id="mid" />
String mpw = request.getParameter("mpw");
System.out.println("mid >>> : " + mid);
System.out.println("mpw >>> : " + mpw);
%>
<!-- <%= mid %> 표현식 : 자바코드를 웹브라우저에 출력하는 것 -->
<%-- <%= mid %> 표현식 : 자바코드를 웹브라우저에 출력하는 것 --%>
<%= mid %> -> <%= mid %><br>
<%= mpw %> -> <%= mpw %><br>
</body>
</html>
5교시 (14:30-15:20)
- request_A.jsp (미완성)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!-- log4j 객체 import -->
<%@ page import="org.apache.log4j.LogManager"%>
<%@ page import="org.apache.log4j.Logger"%>
<!-- JDBC 연결 객체 import -->
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.PreparedStatement" %>
<%@ page import="java.sql.ResultSet" %>
<!-- Connection 공통 클래스 import kosConnectivity-->
<%@ page import="a.b.c.common.KosConnectivity" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>REQUEST SCOPE</title>
</head>
<body>
<h3>REQUEST SCOPE</h3>
<hr>
<%
Logger logger = LogManager.getLogger(this.getClass());
logger.info("request_A.jsp >>> : ");
// 데이터베이스 연결
Connection conn = KosConnectivity.getConnection();
logger.info("conn >>> : " + conn);
%>
</body>
</html>
6교시 (15:30-16:20)
- request_A.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!-- log4j 객체 import -->
<%@ page import="org.apache.log4j.LogManager"%>
<%@ page import="org.apache.log4j.Logger"%>
<!-- JDBC 연결 객체 import -->
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.PreparedStatement" %>
<%@ page import="java.sql.ResultSet" %>
<!-- Connection 공통 클래스 import kosConnectivity-->
<%@ page import="a.b.c.common.KosConnectivity" %>
<%@ page import="java.util.HashMap" %>
<%@ page import="java.util.ArrayList" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>REQUEST SCOPE</title>
</head>
<body>
<h3>REQUEST SCOPE</h3>
<hr>
<%
Logger logger = LogManager.getLogger(this.getClass());
logger.info("request_A.jsp >>> : ");
// 데이터베이스 연결
Connection conn = KosConnectivity.getConnection();
logger.info("conn >>> : " + conn);
String sqls = "SELECT A.* FROM EMP A WHERE ROWNUM <= 3";
PreparedStatement pstmt = conn.prepareStatement(sqls);
ResultSet rsRs = pstmt.executeQuery();
ArrayList<HashMap<String, String>> aList = null;
if (rsRs != null) {
aList = new ArrayList<HashMap<String, String>>();
while (rsRs.next()){
HashMap<String, String> hp = new HashMap<String, String>();
hp.put("empno", rsRs.getString(1));
hp.put("ename", rsRs.getString(2));
hp.put("job", rsRs.getString(3));
hp.put("mgr", rsRs.getString(4));
hp.put("hiredate", rsRs.getString(5));
hp.put("sal", rsRs.getString(6));
hp.put("comm", rsRs.getString(7));
hp.put("deptno", rsRs.getString(8));
aList.add(hp);
}
}
// ArrayList 객체를 다른 jsp에 넘기기
// http://localhost:8088/KosMember/kos_jsp/request_B.jsp
// setAttribute(key, value)
request.setAttribute("aList", aList);
// request.getRequestDispatcher() 함수는 Context 내부에서 사용하는 함수로
// 자원의 url을 사용할 때는 Context 패스는 생략한다.
// /KosMember/kos_jsp/request_B.jsp --> /Kos_jsp/request_B.jsp
RequestDispatcher rd = request.getRequestDispatcher("/kos_jsp/request_B.jsp");
rd.forward(request, response);
%>
</body>
</html>
- request_B.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!-- log4j 객체 import -->
<%@ page import="org.apache.log4j.LogManager"%>
<%@ page import="org.apache.log4j.Logger"%>
<%@ page import="java.util.HashMap" %>
<%@ page import="java.util.ArrayList" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>request_B.jsp</title>
</head>
<body>
<h3>request_B.jsp</h3>
<hr>
<%
Logger logger = LogManager.getLogger(this.getClass());
logger.info("request_B.jsp 페이지 >>> : ");
Object obj = request.getAttribute("aList");
logger.info("obj >>> : " + obj);
ArrayList<HashMap<String, String>> aList = (ArrayList<HashMap<String, String>>)obj;
if (aList != null && aList.size() > 0) {
%>
<tr>
<td>EMPNO</td>
<td>ENAME</td>
<td>JOB</td>
<td>MGR</td>
<td>HIREDATE</td>
<td>SAL</td>
<td>COMM</td>
<td>DEPTNO</td><br>
</tr>
<%
for (int i=0; i < aList.size(); i++) {
HashMap<String, String> hs = aList.get(i);
logger.info(hs.get("empno"));
logger.info(hs.get("ename"));
logger.info(hs.get("job"));
%>
<tr>
<td><%= hs.get("empno") %></td>
<td><%= hs.get("ename") %></td>
<td><%= hs.get("job") %></td>
<td><%= hs.get("mgr") %></td>
<td><%= hs.get("hiredate") %></td>
<td><%= hs.get("sal") %></td>
<td><%= hs.get("comm") %></td>
<td><%= hs.get("deptno") %></td><br>
</tr>
<%
}
}
%>
</body>
</html>
request_A.jsp를 돌리면 나오는 화면
7교시 (16:30-17:20)
- request_C.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.ArrayList" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>RequestDispatcher</title>
</head>
<body>
<h3>RequestDispatcher.forward :: request_C.jsp</h3>
<hr>
<%
ArrayList aList = new ArrayList();
aList.add("abc");
// 페이지를 이동하면서 넘겨야할 데이터를 세팅하기
request.setAttribute("aaa", aList);
// 이동할 페이지를 세팅하기
RequestDispatcher rd = request.getRequestDispatcher("/kos_jsp/request_D.jsp");
rd.forward(request, response);
%>
</body>
</html>
- request_D.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.ArrayList" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>RequestDispatcher</title>
</head>
<body>
<h3>RequestDispatcher.forward :: request_D.jsp</h3>
<hr>
<%
/*
ArrayList aList = new ArrayList();
aList.add("abc");
request.setAttribute("aaa", aList);
RequestDispatcher rd = request.getRequestDispatcher("/kos_jsp/request_D.jsp");
rd.forward(request, response);
*/
// reqeust.setAttribute("aaa", aList);
Object obj = request.getAttribute("aaa");
ArrayList aList = (ArrayList)obj;
String str = (String)aList.get(0);
%>
<%= str %>
</body>
</html>
request_C.jsp를 돌리면 나오는 화면
8교시 (17:30-18:30)
- 자습
- jQuery를 이용한 mem_jquery.html
Notes
728x90