쌍용교육(JAVA)/JSP
쌍용교육 -JSP수업 46일차 nestedObject(3)
구 승
2024. 4. 23. 15:46
s13_bufferInfo.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>버퍼 정보</title>
</head>
<body>
버퍼 크기 : <%= out.getBufferSize() %><br>
남은 크기 : <%= out.getRemaining() %><br>
auto flush : <%= out.isAutoFlush() %>
</body>
</html>
s14_scopeA.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSP 4개 기본객체와 영역</title>
</head>
<body>
<% // 속성명 속성값
pageContext.setAttribute("msg1","봄");
request.setAttribute("msg2", "여름");
session.setAttribute("msg3","가을");
%>
page 영역의 msg1 = <%= pageContext.getAttribute("msg1") %><br>
request 영역의 msg2 = <%= request.getAttribute("msg2") %><br>
session 영역의 msg3 = <%= session.getAttribute("msg3") %><br>
</body>
</html>
s15_scopeB.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSP 4개 기본객체와 영역</title>
</head>
<body>
page 영역의 msg1 = <%= pageContext.getAttribute("msg1") %><br>
request 영역의 msg2 = <%= request.getAttribute("msg2") %><br>
<!-- session은 클라이언트를 식별하기위해 사용,클라이언트가 같으면 세션을 공유한다. 그치만 다른 클라이언트가 들어오면 서버는 새로운 세션을 만듬-->
<!-- 모든 브라우저를 종료한뒤 이 파일만 다시 처음부터 실행하면 세션도 null이 나옴 why? 서버가 새로운 클라이언트로 인식하기 때문에 -->
session 영역의 msg3 = <%= session.getAttribute("msg3") %><br>
</body>
</html>
s16_setApplication.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>application 속성 지정</title>
</head>
<body>
<%
String name = "id";
String value = "dragon";
application.setAttribute(name, value);
%>
application 기본객체의 속성 설정:
<%= name %> = <%= value %>
</body>
</html>
s17_getApplication.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.Enumeration" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>application 기본객체 속성 보기</title>
</head>
<body>
<%
Enumeration<String> attrEnum =
application.getAttributeNames();
while(attrEnum.hasMoreElements()){
//속성명
String name = attrEnum.nextElement();
//속성값
Object value = application.getAttribute(name);
%>
application 속성 : <b><%= name %></b> = <%= value %> <br>
<%
}
%>
</body>
</html>
session은 브라우저를 종료하면 세션이 삭제되지만 Appication은 유지된다. tomcat을 껐다가 키면 Appication도 사라진다.
기본객체 pageContext request session application
영역 page < request < session < application
일반데이터 o o o x
|
환경설정정보공유
s18_orderForm.jsp(내답)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>음식주문</title>
<script type="text/javascript">
/*
수량을 입력(주문안할시 0이라고 입력하기), 세가지 음식 중 하나는 꼭 주문
짜장면 4000원 짬뽕5000원 볶음밥6000원
[출력예시]
짜장면 2개
짬뽕 1개
총 지불금액 : 13,000원
*/
window.onload = function(){
const myForm = document.getElementById('myForm');
myForm.onsubmit = function(){
let foodOrdered = false; // 최소한 한 가지 음식을 선택했는지 확인하기 위한 변수
const input = document.querySelectorAll('.input-check');
for(let i=0;i<input.length;i++){
if(input[i].value.trim()==''){
const label = document.querySelector('label[for="'+input[i].id+'"]');
const label_text = label.textContent;
alert(label_text + ' 항목은 필수 입력');
input[i].value = '';
input[i].focus();
return false;
}
// 수량이 0보다 크다면 해당 음식이 선택된 것으로 간주
if(parseInt(input[i].value) > 0) {
foodOrdered = true;
}
}
// 최소한 한 가지 음식을 선택하지 않았다면 경고 메시지 표시 후 전송 취소
if (!foodOrdered) {
alert('최소한 한 가지 음식을 선택해주세요.');
return false;
}
};
};
</script>
</head>
<body>
<form action="s19_order.jsp" method="post" id="myForm">
<table>
<tr>
<td class="title">식사류</td>
<td>
<ul>
<li>
<label for="c0">짜장면</label>
<input type="number" name="food_c0" id="c0" min="0" max="99" value="0" class="input-check">
</li>
<li>
<label for="c1">짬뽕</label>
<input type="number" name="food_c1" id="c1" min="0" max="99" value="0" class="input-check">
</li>
<li>
<label for="c2">볶음밥</label>
<input type="number" name="food_c2" id="c2" min="0" max="99" value="0" class="input-check">
</li>
</ul>
</td>
</tr>
<tr align="center">
<td colspan="2">
<input type="submit" value="전송">
</td>
</tr>
</table>
</form>
</body>
</html>
s19_order.jsp(내답)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import ="java.util.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>주문내역</title>
</head>
<body>
<%
request.setCharacterEncoding("utf-8");
//가격정보
HashMap<String,Integer> map = new HashMap<String,Integer>();
map.put("짜장면",4000);
map.put("짬뽕",5000);
map.put("볶음밥",6000);
//총지불금액
int sum =0;
%>
<%
String[] foods = {"짜장면", "짬뽕", "볶음밥"};
String[] counts = {request.getParameter("food_c0"),
request.getParameter("food_c1"),
request.getParameter("food_c2")};
%>
<%
for(int i=0; i<foods.length;i++){
int count = Integer.parseInt(counts[i]);
if(count>0){
%>
<%= foods[i] %> : <%= counts[i] %> 개<br>
<%
sum += count*map.get(foods[i]);
}
}
%>
총지불금액:<%= String.format("%,d원",sum) %>
</body>
</html>
s18_orderForm.jsp(강사님답)