리턴함수
함수에서 결과값을 반환할 때 사용합니다.
또한 함수에서 return 문이 실행되면 반복문의 break문과 비슷하게 코드가 강제 종료됩니다.
콜백함수
free variable(자유변수)에 의해서 함수가 닫혀(closed)있습니다.
- 두수를 파라미터로 받아 4칙연산을 수행하기 위한 4개의 함수 작성
- 위의 4개의 함수를 파라미터로 받는 function callback(cb) 함수 작성
- callback 함수에서 값을 두개를 입력받아, 콜백함수로 전달된 연산수행
<script>
function funCallback(funCB){
let num = funCB(3,4);
document.write(num + "<br>");
}
function add(x,y){
return x + y;
}
function sub(x,y){
return x - y;
}
function mul(x,y){
return x * y;
}
function div(x,y){
return x / y;
}
funCallback(add)
funCallback(sub)
funCallback(mul)
funCallback(div)
</script>
자바로 구현되는 웹프로그래밍에서 가장 많이 사용되는 JSP, Servlet, 데이터베이스 연동을 비롯하여, 개발 플랫폼에 사용되는 프로그램 함수들을 모아 XML 테이터 처리와 조건문, 반복문과 같은 기능을 수행할 수 있도록 구성한 작은 기능적 단위입니다.
jstl 사용하는 이유
다른 JSP페이지 호출
데이터베이스로의 입력, 수정, 삭제, 조회 가능
XML문서의 처리 가능
문자열을 처리하는 함수 호출
JAVA의 장점을 그대로 사용
다양한 Servlet간의 데이터 공유
많은 사용자의 원활한 접속처리
Java Beans의 활용
사용자 특화 커스텀 태그 라이브러리
pageScope : 같은 페이지 내에서만 지속
applicationScope: 시간에 따라 지속
sessionScope: forwarding까지 유지
requestScope: 서버가 해당 프로젝트를 종료할때까지 유지
-아래를 구현하시오.
DTO - 클래스 EmpVO
DAO - 함수 작성 -위의 객체를 ArrayList로 담는 함수 작성
12명의 아래의 정보 출력
-el 및 jstl을 사용 할것
힌트)
<%
.......
pageContext.setAttribute("empList",emps);
%>
<c:forEach var="emps" items="${empDeptList}">
html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>사원번호를 적으세요</h1>
<form action="emp_info.jsp" method="post">
<input type="text" name="empno">
<input type="submit" value="전송">
</form>
</body>
</html>
jsp
<%@page import="edu.ict.prj.vo.EmpVO"%>
<%@page import="java.util.List"%>
<%@page import="edu.ict.prj.dao.EmpDao"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ 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>
<h1>사원 정보</h1>
<%
EmpDao dao = new EmpDao();
List<EmpVO> empList = dao.empSelect();
pageContext.setAttribute("empList", empList);
%>
<c:forEach var="emp" items="${empList}">
사원번호:${emp.getEmpno()} 사원이름:${emp.ename} 직업:${emp.job} 매니저:${emp.mgr}
입사일:${emp.hiredate} 급여:${emp.sal} 커미션:${emp.comm} 부서번호:${emp.deptno}
<br>
</c:forEach>
</body>
</html>
1. mvc1

model 1은 JSP 또는 Servlet을 사용하고 JSP 또는 Servlet이 요청에 대해서 모든 응답을 처리합니다.
요청 :
request,
valiating data,
handling businness logic,
generating response
model 1 은 business 로직과 presentation 로직이 결합되어 있습니다.
model 1 은 작고 , 개발하기 쉬운 간단한 기능에 사용됩니다.
2. mvc2

model 2는 content를 다루고 구하는데 사용되는 로직으로 부터
content의 display가 분리 되어 있습니다.
model 2는 logic과 display를 분리합니다.
model-view-controller (MVC) 로 구성이 되어집니다.
정확하게 MVC 안의 model 은 model 2 디자인에 의해서 결정된 것은 아닙니다.
model 2 어플리케이션에서는 client browser 가 controller 로 request하고 controller 는 display를 위한 content을 얻어오는데 필요한 logic을 구성합니다.
controller는 request를 전달할 view을 결정합니다.
view는 controller 에 의해서 content 전달 된 것을 render 합니다.
(화면을 구성한다.)
model 2는 중간이나 큰 크기의 어플리케이션에 적합합니다.
<script>
window.setInterval(function(){
var today = new Date();
var hours = ('0' + today.getHours()).slice(-2);
var minutes = ('0' + today.getMinutes()).slice(-2);
var seconds = ('0' + today.getSeconds()).slice(-2);
var timeString = hours + ':' + minutes + ':' + seconds;
document.body.innerHTML = timeString;
}, 1000);
</script>
출력하면 아래 사진처럼 실시간으로 시계가 돌아간다
