forward_quiz01
<%@ 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>과제</h3>
<%--
1. form태그를 이용해서 post형식으로 이름, 국어, 영어, 수학점수을 받습니다.
2. 2번페이지 에서는 평균을 구합니다
3. 평균이 60이상이라면 성공페이지에 (평균점수를 출력하세요)
4. 평균이 60이하라면 실패페이지로 리다이렉트 시키세요
--%>
<form action="forward_quiz01_result.jsp" method="post">
이름:<input type="text" name="name"><br>
국어:<input type="number" name="kor"><br>
영어:<input type="number" name="eng"><br>
수학:<input type="number" name="math"><br>
<input type="submit" value="확인"><br>
</form>
</body>
</html>
forward_quiz01_result
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("utf-8");
Integer k = Integer.parseInt(request.getParameter("kor"));
Integer e = Integer.parseInt(request.getParameter("eng"));
Integer m = Integer.parseInt(request.getParameter("math"));
Double d = ((double)(k+e+m)/3);
String format="0.00";
java.text.DecimalFormat df = new java.text.DecimalFormat(format);
String avg=df.format(d);
if(d>=60){
request.setAttribute("avg", avg);
request.getRequestDispatcher("forward_quiz01_ok.jsp").forward(request, response);
}else{
request.getRequestDispatcher("forward_quiz01_no.jsp").forward(request, response);
}
%>
성공페이지와 실패페이지 url이 모두 forward_quiz01_result로 되어 있다.
여기의 값들을 가져감. 따라서 setCharcterEncoding은 여기에 한번만 쓰면 된다.
평균인 avg는 성공페이지에서 한번만 쓸거기때문에 setAttribute를 사용하였음.
실수의 소수점 자리수를 2자리까지만 출력하려면 java에선 printf를 사용하였지만,
jsp에선 format을 정해주어야 함.
format을 String="0.00";으로 지정함
=>java.text.DecimalFormat객체 생성하여 format을 넣음
=>메서드를 이용해서 double값을 넣고 String객체에 지정
(simpledateformat과 유사함)
평균값은 첫번째 페이지에서 만들지 않았다. 그래서 getparameter로 가져오는 것이 불가능하다.
->때문에 setAttribute와 getAttribute를 사용하는 것.
forward_quiz01_ok
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String name = request.getParameter("name");
String avg = (String)request.getAttribute("avg");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h2>성공페이지</h2>
성공! <%=name%>이는 성공<br>
평균:<%=avg %>
</body>
</html>
forward_quiz01_no
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String name = request.getParameter("name");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h2>실패페이지</h2>
<%=name%>이는 실패!
</body>
</html>
name은 forward로 보냈기 때문에 각페이지에서 getPararmeter를 사용하면 받는 것이 가능하다.
'JSP' 카테고리의 다른 글
221202 자바빈 (0) | 2022.12.02 |
---|---|
221201 session실습 redirection에 메시지 추가 (0) | 2022.12.01 |
221201 JSP Forward (0) | 2022.12.01 |
221201 jsp error 예외 페이지 (0) | 2022.12.01 |
221201 jsp 경로 (1) | 2022.12.01 |