JSP 시험 점수 입력

2022. 12. 5. 22:48JSP

score.html

==========

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>시험 점수 입력</title>
</head>
<body>
<!-- <form action="scoreResult.jsp" method="get"> -->
<form action="scoreResult.jsp" method="post">
이름 : <input type="text" name="name" size="10" /><br/>
<!-- input태그의 type속성 중, number값은 숫자만 입력되게끔 하는 값이다. 
  크롬에서 테스트를 해보면 확인할 수가 있다. -->
점수 : <input type="number" name="score" size="10" /><br/>
<input type="submit" value="합격확인" />
</form>
</body>
</html>

==============================================================

 

scoreResult.jsp

============

<%@page import="java.net.URLEncoder"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");
String name = request.getParameter("name");
String strScore = request.getParameter("score");

//POST방식으로 넘기기위해서 pageContext의 세션을 얻어냈고 거기다 네임은 네임으로 스코아는 에스티알스코아로 대비를했다.
//post방식으로 보낼 때 값을 session에저장하여 다른 페이지로 이동할 때 파라메터값을 넘겨야 한다.
pageContext.getSession().setAttribute("name", name); //내장객체이용
pageContext.getSession().setAttribute("score", strScore); //내장객체이용

//get방식으로 보낼 때
//현재 페이지에서 다른 페이지로 넘기고 싶을때는 한글일 경우를 대비해서 아래와 같이 인코딩을 재차 한다.
//만약 이 값을 현재 페이지에서만 쓸것이면 굳이 할 필요가없겠죠.sendRedirect로 딴데에다 옮기고 있기 때문에 인코딩으로 한번 감싸서 보낸다.
//String encodeName = URLEncoder.encode(name, "UTF-8");
//점수를 바로 문자열에서 정수타입으로 캐스팅
int score = Integer.parseInt(request.getParameter("score"));//포장클래스Integer
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<%
//점수가 잘못 입력됐을 때...
if(score < 0 || score > 100) {
out.print("<h1>점수를 잘못 입력하셨습니다.</h1>");
out.print("<a href=score.html>점수 입력창으로 이동</a>");
return;
}
%>
<%
//score점수에 따라 페이지가 이동이 달라지는 코드이다.
if(score >= 60) {
System.out.println("scoreResult.jsp페이지를 지나갔습니다.");
//점수가 60이상이면 pass.jsp파일로 이동한다.(get방식)
//response.sendRedirect("pass.jsp?name=" + encodeName + "&score=" + strScore);

//점수가 60이상이면 pass.jsp파일로 이동한다.(post방식)
response.sendRedirect("pass.jsp");
}
else{
System.out.println("scoreResult.jsp페이지를 지나갔습니다.");
//점수가 60미만이면 notPass.jsp파일로 이동한다.(get방식)
//response.sendRedirect("notPass.jsp?name=" + encodeName + "&score=" + strScore);

//점수가 60미만이면 notPass.jsp파일로 이동한다.(post방식)
response.sendRedirect("notPass.jsp");
}
%>
</body>
</html>

=================================================================================

 

pass.jsp

=========

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");

//get방식으로 받을 때
//String name = request.getParameter("name");
//String score = request.getParameter("score");

//post방식으로 받을 때
String name = (String)pageContext.getSession().getAttribute("name");
String score = (String)pageContext.getSession().getAttribute("score");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>합격창</title>
</head>
<body>
<h1><%= name %>님은 <%= score %>점으로 합격하셨습니다.</h1>
<a href="score.html">점수 입력창으로 이동</a>
</body>
</html>

====================================================================

 

notPass.jsp

===========

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");

//get방식으로 받을 때
//String name = request.getParameter("name");
//String score = request.getParameter("score");

//POST방식으로 받을 때
//포스트방식일때 리턴타입이 오브젝트 타입으로 스트링으로 강제 캐스팅을 한다.
String name = (String)pageContext.getSession().getAttribute("name");
String score = (String)pageContext.getSession().getAttribute("score");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>불합격창</title>
</head>
<body>
<h1><%= name %>님은 <%= score %>점으로 불합격하셨습니다.</h1>
<a href="score.html">점수 입력창으로 이동</a>
</body>
</html>

===========================================================================

'JSP' 카테고리의 다른 글

예외 테스트  (0) 2022.12.05
쿠키 만들기  (0) 2022.12.05
JSP 세션 로그인  (0) 2022.12.05
JSP 로그인  (0) 2022.12.05
JSP 회원 가입창  (0) 2022.12.05