TodayMenu
package kr.web.ch03;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/todayMenu")
public class TodayMenu extends HttpServlet {
@Override
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException{
//문서 타입 및 캐릭터셋 지정
response.setContentType("text/html;charset=utf-8"); //html을 사용하고 utf-8방식을 사용할 것이다.
//POST 방식으로 데이터 전송시 전송된 데이터 인코딩 타입 지정
request.setCharacterEncoding("utf-8");
//HTML 출력을 위한 출력 스트림 생성
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head><title>점심메뉴</title></head>");
out.println("<body>");
out.println("<h3>오늘점심은</h3>");
//다중값인 경우 배열로
String[] values = request.getParameterValues("lunch");
if(values != null) {
for(int i =0; i<values.length;i++) {
out.println(values[i]+"<br>");
}
}else {
out.println("선택한 점심 메뉴가 없습니다.");
}
out.println("</body>");
out.println("</html>");
out.close();
}
}
lunchForm.html
package kr.web.ch03;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/todayMenu")
public class TodayMenu extends HttpServlet {
@Override
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException{
//문서 타입 및 캐릭터셋 지정
response.setContentType("text/html;charset=utf-8"); //html을 사용하고 utf-8방식을 사용할 것이다.
//POST 방식으로 데이터 전송시 전송된 데이터 인코딩 타입 지정
request.setCharacterEncoding("utf-8");
//HTML 출력을 위한 출력 스트림 생성
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head><title>점심메뉴</title></head>");
out.println("<body>");
out.println("<h3>오늘점심은</h3>");
//다중값인 경우 배열로
String[] values = request.getParameterValues("lunch");
for(int i =0; i<values.length;i++) {
out.println(values[i]+"<br>");
}
out.println("</body>");
out.println("</html>");
out.close();
}
}
TravelServlet.java
package kr.web.ch03;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/travel")
public class TravelServlet extends HttpServlet{
@Override
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException{
//여행지 출력시
//서울,뉴욕,파리
//문서 타입 및 캐릭터셋 지정
response.setContentType("text/html;charset=utf-8");
//POST 방식으로 데이터 전송시 전송된 데이터 인코딩 타입 지정
request.setCharacterEncoding("utf-8");
//HTML 출력을 위한 출력 스트림 생성
PrintWriter out = response.getWriter();
String name = request.getParameter("name");
out.println("<html>");
out.println("<head><title>여행지 선택</title></head>");
out.println("<body>");
String values[] = request.getParameterValues("city");
if(values != null) {
out.println(name+"님이 가고자하는 여행지는<br>");
for(int i = 0; i < values.length; i++) {
out.println(values[i]);
//if(i>0) out.print(",");
if(i < values.length - 1) {
out.print(",");
}
}
}else {
out.println("가려는 여행지가 없습니다.");
}
out.println("</body>");
out.println("</html>");
out.close();
}
}
travelForm.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>[실습]여행지 선택</title>
<script type="text/javascript">
window.onload=function(){
//폼태그 이벤트 연결
const myForm = document.getElementById('myForm');
myForm.onsubmit = function(){
//이름 필수 입력 유효성 체크
const name = document.getElementById('name');
if(name.value.trim() == ''){
alert("이름을 입력하세요");
name.focus();
name.value='';
return false;
}
//여행지는 2이상 필수 선택
const cities = document.getElementsByClassName('cb-city');
let count = 0;
for(let i=0; i<cities.length; i++){
if(cities[i].checked){
count++;
}
}
if(count<2){
alert("여행지를 2개이상 입력하세요!");
return false;
}
};
};
</script>
</head>
<body>
<!--
action: ch03_JSP/travel
method:post
이름:name <-input type="text" 여행지 선택(city) <-input type="checkbox"
(서울,뉴욕,런던,파리)
-->
<h3>여행지를 선택하세요(2개이상)</h3>
<form action="/ch03_JSP/travel" method="post" id="myForm">
이름:<input type="text" name="name" id="name"><br> 여행지 선택<br>
<input type="checkbox" name="city" value="서울" class="cb-city">서울
<input type="checkbox" name="city" value="뉴욕" class="cb-city">뉴욕
<input type="checkbox" name="city" value="런던" class="cb-city">런던
<input type="checkbox" name="city" value="파리" class="cb-city">파리
<input type="submit" value="전송">
</form>
</body>
</html>
ScoreServlet.java
나의 답
package kr.web.ch03;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/score")
public class ScoreServlet extends HttpServlet{
@Override
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException{
//성적 처리
//국어,영어,수학,총점,평균,등급 출력
//문서 타입 및 캐릭터셋 지정
response.setContentType("text/html;charset=utf-8");
//POST 방식으로 데이터 전송시 전송된 데이터 인코딩 타입 지정
request.setCharacterEncoding("utf-8");
//HTML 출력을 위한 출력 스트림 생성
PrintWriter out = response.getWriter();
int korean = Integer.parseInt(request.getParameter("korean"));
int english = Integer.parseInt(request.getParameter("english"));
int math = Integer.parseInt(request.getParameter("math"));
int sum = korean+english+math;
int avg = sum/3;
String grade = "";
out.println("<html>");
out.println("<head><title></title></head>");
out.println("<body>");
out.println("국어 : "+korean+"점<br>");
out.println("영어 : "+english+"점<br>");
out.println("수학 : "+math+"점<br>");
out.println("총점 : "+sum+"점<br>");
out.println("평균 : "+avg+"점<br>");
if(avg>=90 && avg<=100) {
grade ="A";
out.println("등급 : "+grade+"<br>");
}else if(avg>=80 && avg<90) {
grade ="B";
out.println("등급 : "+grade+"<br>");
}else if(avg>=70 && avg<80) {
grade ="C";
out.println("등급 : "+grade+"<br>");
}else if(avg>=60 && avg<70) {
grade ="D";
out.println("등급 : "+grade+"<br>");
}else if(avg<60) {
grade ="F";
out.println("등급 : "+grade+"<br>");
}else {
out.println("등급을 매길 수 없습니다.");
}
out.println("</body>");
out.println("</html>");
out.close();
}
}
ScoreServlet.java
강사님 답
package kr.web.ch03;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/score")
public class ScoreServlet extends HttpServlet{
@Override
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException{
//성적 처리
//국어,영어,수학,총점,평균,등급 출력
//문서 타입 및 캐릭터셋 지정
response.setContentType("text/html;charset=utf-8");
//POST 방식으로 데이터 전송시 전송된 데이터 인코딩 타입 지정
request.setCharacterEncoding("utf-8");
//HTML 출력을 위한 출력 스트림 생성
PrintWriter out = response.getWriter();
int korean = Integer.parseInt(request.getParameter("korean"));
int english = Integer.parseInt(request.getParameter("english"));
int math = Integer.parseInt(request.getParameter("math"));
int sum = korean+english+math;
int avg = sum/3;
String grade ;
switch(avg/10) {
case 10: grade = "A"; break;
case 9: grade = "B"; break;
case 8: grade = "C"; break;
case 7: grade = "D"; break;
case 6: grade = "E"; break;
default:grade = "F";
}
out.println("<html>");
out.println("<head><title>성적 처리</title></head>");
out.println("<body>");
out.println("국어 : "+korean+"점<br>");
out.println("영어 : "+english+"점<br>");
out.println("수학 : "+math+"점<br>");
out.println("총점 : "+sum+"점<br>");
out.println("평균 : "+avg+"점<br>");
out.println("등급 : "+grade+"<br>");
out.println("</body>");
out.println("</html>");
out.close();
}
}
scoreForm.html
내답
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>[실습]성적 처리</title>
<script type="text/javascript">
window.onload=function(){
const myform = document.getElementById("myForm");
myform.onsubmit = function(){
const kr = document.getElementById("korean");
if(kr.value.trim() == ''){
alert("국어 점수를 입력하시오.");
kr.focus();
kr.value ='';
return false;
}
if(kr.value <0 || kr.value >100){
alert("점수는 0이상 100이하로 입력하시오");
kr.focus();
kr.value ='';
return false;
}
const eg = document.getElementById("english");
if(eg.value.trim() == ''){
alert("영어 점수를 입력하시오.");
eg.focus();
eg.value ='';
return false;
}
if(eg.value <0 || eg.value >100){
alert("점수는 0이상 100이하로 입력하시오");
eg.focus();
eg.value ='';
return false;
}
const mt = document.getElementById("math");
if(mt.value.trim() == ''){
alert("수학 점수를 입력하시오.");
mt.focus();
mt.value ='';
return false;
}
if(mt.value <0 || mt.value >100){
alert("점수는 0이상 100이하로 입력하시오");
mt.focus();
mt.value ='';
return false;
}
};
};
</script>
</head>
<body>
<form id="myForm" action="/ch03_JSP/score" method="post">
<ul>
<li>
<label for ="korean">국어</label>
<input type="number" name="korean" id="korean">
</li>
<li>
<label for ="english">영어</label>
<input type="number" name="english" id="english">
</li>
<li>
<label for ="math">수학</label>
<input type="number" name="math" id="math">
</li>
</ul>
<input type="submit" value="전송">
</form>
</body>
</html>
scoreForm.html
강사님 답
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>[실습]성적 처리</title>
<script type="text/javascript">
window.onload=function(){
const myform = document.getElementById("myForm");
myform.onsubmit = function(){
//반복문을 이용한 유효성 체크
const items = document.querySelectorAll('input[type="text"]');
for(let i=0; i<items.length;i++){
//입력을 하지 않았거나 공백 입력한 경우
if(items[i].value.trim()==''){
const label = document.querySelector('label[for="'+items[i].id+'"]');
const label_text = label.textContent;
alert(label_text + ' 항목은 필수 입력');
items[i].value = '';
items[i].focus();
return false;
}
//문자인지 숫자인지 입력
if(isNaN(items[i].value)){
alert('성적은 숫자만 가능');
items[i].value = '';
items[i].focus();
return false;
}
//0~100 값만 인정
if(items[i].value <0 ||items[i].value>100){
alert('0부터 100까지만 입력가능');
items[i].value = '';
items[i].focus();
return false;
}
}
};
};
</script>
</head>
<body>
<form id="myForm" action="/ch03_JSP/score" method="post">
<ul>
<li>
<label for ="korean">국어</label>
<input type="text" name="korean" id="korean">
</li>
<li>
<label for ="english">영어</label>
<input type="text" name="english" id="english">
</li>
<li>
<label for ="math">수학</label>
<input type="text" name="math" id="math">
</li>
</ul>
<input type="submit" value="전송">
</form>
</body>
</html>
'쌍용교육(JAVA) > Servlet' 카테고리의 다른 글
쌍용교육 -Servlet수업 45일차 ch04 (0) | 2024.04.22 |
---|---|
쌍용교육 -Servlet수업 44일차 ch03 (0) | 2024.04.19 |
쌍용교육 -Servlet수업 44일차 ch01,h02 (0) | 2024.04.19 |