JSP 수업내용

JSP,JAVA,Ajax
홍윤's avatar
Aug 13, 2024
JSP 수업내용
어플리케이션 서버(Tomcat)을 쓰고있다.
url=자원이 어디에 있는 지 알려주는 것.
 
404오류(자원이 없는 오류,오타를 확인 해보자)
notion image
405오류(post인지 gete인지 메소드를 확인해보자)
notion image
505오류
오류 505 충돌 - 오류 505는 잘 알려져 있으며 잘못된 코드 행이 프로그램의 소스 코드로 컴파일 될 때 발생합니다. Google Chrome이 입력에 제대로 응답하지 않거나 대가로 필요한 출력을 모르는 경우 발생합니다.
“ Chrome Error 505” 메모리 누수 - Google Chrome에서 메모리 누수가 있는 경우 OS가 느리게 나타날 수 있습니다. Google Inc.이 소프트웨어를 잘못 구성하거나 한 명령이 종료할 수 없는 루프를 시작할 때 트리거될 수 있습니다.
오류 505 논리 오류 - 사용자가 올바른 입력을 제공함에도 불구하고 잘못된 출력을 생성 할 때 Google Chrome 로직 오류가 발생합니다. 이것은 Google Inc.의 소스 코드가 정보 처리에 결함을 일으킬 때 발생합니다.
 
 
 
@=언어테이션
==========================
연습1.
package servlets0605;
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("/memberlist") public class ThirdServlet extends HttpServlet { private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setCharacterEncoding("UTF-8"); // 한글 인코딩 설정 PrintWriter out = response.getWriter(); out.print("<h1>memberlist</h1>" + "<table border=1>" + "<thead>" + "<tr>" + "<th>번호</th>" + "<th>연락처</th>" + "<th>연락처</th>" + "</tr>" + "</thead>" + "<tbody>"); for (int i = 0; i < 3; i++) { out.print("<tr>" + "<td>1</td><td>홍길동</td><td>010-1111-1111</td>" + "</tr>" + "<tr>" + "<td>2</td><td>홍길동</td><td>010-3333-3333</td>+</tr>"); } out.print("</tbody>" + "</table>"); }
}
==========================
연습2(vo패키지를 만들고 MenberVo 클래스를 만들고 jsp연습)
package servlets0605;
import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList;
import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;
import vo.MemberVo;
@WebServlet("/memberlist") public class ThirdServlet extends HttpServlet { private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html; charset=UTF-8"); // 콘텐츠 타입과 문자 인코딩 설정 response.setCharacterEncoding("UTF-8"); // 문자 인코딩 설정 PrintWriter out = response.getWriter(); ArrayList<MemberVo> mvolist = new ArrayList<>(); MemberVo mvo = new MemberVo(); MemberVo mvo1 = new MemberVo(); mvo.setSno(1); mvo.setName("홍길동"); mvo.setPhone("010-1111-1111"); mvo1.setSno(2); mvo1.setName("임꺽정"); mvo1.setPhone("010-2222-2222"); mvolist.add(mvo); mvolist.add(mvo1); out.print("<h1>memberlist</h1>" + "<table border=1>" + "<thead>" + "<tr>" + "<th>번호</th>" + "<th>이름</th>" + "<th>연락처</th>" + "<th>전체정보</th>" + "</tr>" + "</thead>" + "<tbody>"); for (MemberVo mvo2 : mvolist) { out.print("<tr>" + "<td>" + mvo2.getSno() + "</td>" + "<td>" + mvo2.getName() + "</td>" + "<td>" + mvo2.getPhone() + "</td>" + "<td>" + mvo2.toString() + "</td>" + "</tr>"); } out.print("</tbody>" + "</table>"); }
}
servlet= 요청 받은 걸 응답해준다!
==========================
Param 서버에 파라미터 전송하기
ParamServlet.java
package servlets0605;
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("/ParamServlet") public class ParamServlet extends HttpServlet { private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //요청을 처리하기 위해 필요한 준비사항(PirntWriter까지) response.setContentType("text/html; charset=UTF-8"); // 콘텐츠 타입과 문자 인코딩 설정 response.setCharacterEncoding("UTF-8"); // 문자 인코딩 설정 //클라이언트 화면에다가 화면을 만들어주는 거니까 응답 PrintWriter out = response.getWriter(); //요청처리(request.getParameter(name속성에 쓴 이름을 써줘야한다.)) - 클라이언트가 서버로 보낸 데이터를 받는 것. 타입은 무조건 String이다. String param = request.getParameter("ttt"); //xxx //응답 out.print("ParamServlet 동작 중...."+param); //http://localhost:8093/ex00/ParamServlet?ttt=James 이렇게 나온다. }
}
 
param.jsp
<%@ 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> <hr> <form action="ParamServlet" method="get"><!-- get이면 get방식 post는 post방식 --> 데이터(파라미터) : <input type="text" id="p" name="ttt" value="xxx"><br><!-- name(변수명이 되는거다)속성이 중요하다!!! id속성은 중요하지 않다. --> <input type="submit" value="서버에 파라미터 전송하기"> </form> </body> </html>
 
==========================
아이디 비밀번호 로그인 페이지ex
jsp
<%@ 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> <hr> <form action="ParamServlet" method="get"><!-- get이면 get방식 post는 post방식 --> id : <input type="text" id="p" name="userid" value=""placeholder="input id...."><br><!-- name(변수명이 되는거다)속성이 중요하다!!! id속성은 중요하지 않다. --> pw : <input type="text" id="p" name="password" value=""placeholder="input pw...."><br> <input type="submit" value="로그인"> </form> </body> </html>
 
 
paramservlet.java
package servlets0605;
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("/ParamServlet") public class ParamServlet extends HttpServlet { private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //요청을 처리하기 위해 필요한 준비사항(PirntWriter까지) response.setContentType("text/html; charset=UTF-8"); // 콘텐츠 타입과 문자 인코딩 설정 response.setCharacterEncoding("UTF-8"); // 문자 인코딩 설정 //클라이언트 화면에다가 화면을 만들어주는 거니까 응답 PrintWriter out = response.getWriter(); //요청처리(request.getParameter(name속성에 쓴 이름을 써줘야한다.)) - 클라이언트가 서버로 보낸 데이터를 받는 것. 타입은 무조건 String이다. String id = request.getParameter("userid"); //xxx String pw = request.getParameter("password"); //응답 out.print("입력한 id는 "+id+"<br>"); out.print("입력한 pw는"+pw); //http://localhost:8093/ex00/ParamServlet?ttt=James 이렇게 나온다. }
}
==========================
doPost
package servlets0605;
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("/ParamServlet") public class ParamServlet extends HttpServlet { private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //요청을 처리하기 위해 필요한 준비사항(PirntWriter까지) response.setContentType("text/html; charset=UTF-8"); // 콘텐츠 타입과 문자 인코딩 설정 request.setCharacterEncoding("UTF-8"); // 문자 인코딩 설정 //doPost는 요청할 때는 request를 써야한다. //클라이언트 화면에다가 화면을 만들어주는 거니까 응답 PrintWriter out = response.getWriter(); //요청처리(request.getParameter(name속성에 쓴 이름을 써줘야한다.)) - 클라이언트가 서버로 보낸 데이터를 받는 것. 타입은 무조건 String이다. String username = request.getParameter("username"); //xxx //응답 out.print("파라미터 내용은 :"+username); //http://localhost:8093/ex00/ParamServlet?ttt=James 이렇게 나온다. }
}
 
jsp
<%@ 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> <hr> <form action="ParamServlet" method="post"><!-- get이면 get방식 post는 post방식 --> 이름: <input type="text" id="p" name="username" value=""placeholder="input id...."><br><!-- name(변수명이 되는거다)속성이 중요하다!!! id속성은 중요하지 않다. -->
<input type="submit" value="로그인"> </form>
</body> </html>
=============================
문자열을 정수로 변경하는 법
Integer.parseInt(age) > 19;
 
=============================
doGet 연습
package servlets0605;
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("/ParamServlet") public class ParamServlet extends HttpServlet { private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //요청을 처리하기 위해 필요한 준비사항(PirntWriter까지) response.setContentType("text/html; charset=UTF-8"); // 콘텐츠 타입과 문자 인코딩 설정 request.setCharacterEncoding("UTF-8"); // 문자 인코딩 설정 //doPost는 요청할 때는 request를 써야한다. //클라이언트 화면에다가 화면을 만들어주는 거니까 응답 PrintWriter out = response.getWriter(); //요청처리(request.getParameter(name속성에 쓴 이름을 써줘야한다.)) - 클라이언트가 서버로 보낸 데이터를 받는 것. 타입은 무조건 String이다. String username = request.getParameter("username"); //xxx String age = request.getParameter("age"); //int age2 = Integer.parseInt(age); 이렇게 변수 선언해서 할 수있음! //응답 if (Integer.parseInt(age) > 19) { out.print(username+"씨는"+"\\t"+"성인입니다."); } else { out.print(username+"씨는"+"\\t"+"미성년입니다."); } //http://localhost:8093/ex00/ParamServlet?ttt=James 이렇게 나온다. }
}
 
jsp
<%@ 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> <hr> <form action="ParamServlet" method="get"><!-- get이면 get방식 post는 post방식 --> 이름: <input type="text" id="p" name="username" value=""placeholder="input id...."><br><!-- name(변수명이 되는거다)속성이 중요하다!!! id속성은 중요하지 않다. --> 나이: <input type="text" id="p" name="age" value=""placeholder="input age...."> <input type="submit" value="전송"> </form> </body> </html>
=============================
숫자 두개를 입력받는다.
get방식으로 서버에 전달한다.
서버는 2개의 숫자를 더해서 그 결과를
클라이언트 화면에 보여준다
 
package servlets0605;
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("/ParamServlet") public class ParamServlet extends HttpServlet { private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //요청을 처리하기 위해 필요한 준비사항(PirntWriter까지) response.setContentType("text/html; charset=UTF-8"); // 콘텐츠 타입과 문자 인코딩 설정 request.setCharacterEncoding("UTF-8"); // 문자 인코딩 설정 //doPost는 요청할 때는 request를 써야한다. //클라이언트 화면에다가 화면을 만들어주는 거니까 응답 PrintWriter out = response.getWriter(); //요청처리(request.getParameter(name속성에 쓴 이름을 써줘야한다.)) - 클라이언트가 서버로 보낸 데이터를 받는 것. 타입은 무조건 String이다. String num = request.getParameter("num"); //xxx String num1 = request.getParameter("num1"); //int age2 = Integer.parseInt(age); 이렇게 변수 선언해서 할 수있음! //응답 Integer.parseInt(num); Integer.parseInt(num1); out.print("더한 수는"+(Integer.parseInt(num)+Integer.parseInt(num1))); //http://localhost:8093/ex00/ParamServlet?ttt=James 이렇게 나온다. }
}
 
jsp
<%@ 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> <hr> <form action="ParamServlet" method="get"><!-- get이면 get방식 post는 post방식 --> 첫번째 숫자: <input type="text" id="p" name="num" value=""placeholder="숫자를 입력하세여.."><br><!-- name(변수명이 되는거다)속성이 중요하다!!! id속성은 중요하지 않다. --> 두번째 숫자: <input type="text" id="p" name="num1" value=""placeholder="숫자를 입력하세여..."> <input type="submit" value="전송"> </form> </body> </html>
===============================
Ajax연습
notion image
notion image
notion image
notion image
=========================
package servlets0605;
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("/DemoServlet") public class DemoServlet extends HttpServlet { private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); out.print("hello~ Ajax"); }
}
 
jsp
<head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <h1>Ajax 테스트</h1> <hr> <button onclick="loadDoc()" >실행</button> <div id="demo">여기에 응답 텍스트가 나옵니다.</div>
<script> alert("loaded...."); function loadDoc() { const xhttp = new XMLHttpRequest(); xhttp.onload = function() { document.getElementById("demo").innerHTML = this.responseText;//응답테스트 } xhttp.open("GET", "DemoServlet", true); // get방식 , DemoServlet, true가 비동기 false 동기 xhttp.send(); } </script>
</body> </html>
===============================Ajax테스트2
package servlets0605;
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("/DemoServlet") public class DemoServlet extends HttpServlet { private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } out.print("hello~ Ajax"); }
}
jsp
<%@ 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>Ajax 테스트</h1> <hr> <button onclick="loadDoc()" >실행</button> <div id="demo">여기에 응답 텍스트가 나옵니다.</div> <div id="demo2">여기에 응답2 텍스트가 나옵니다.</div>
<script> alert("loaded...."); function loadDoc() { const xhttp = new XMLHttpRequest(); xhttp.onload = function() { document.getElementById("demo").innerHTML = this.responseText;//응답테스트 } xhttp.open("GET", "DemoServlet", true); // get방식 , DemoServlet, true가 비동기 false 동기 xhttp.send(); document.getElementById("demo2").innerHTML = "내가 먼저 나올까?" //true 서버에서 처리가 안 끝났다. true를 하면 바로나오고 false를 하면 순서대로 나온다. Thread 때문에 demo2가 먼저 나온다. } </script>
</body> </html>
===============================
연산자연습Ajax
package servlets0605;
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("/ParamServlet") public class ParamServlet extends HttpServlet { private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //요청을 처리하기 위해 필요한 준비사항(PirntWriter까지) response.setContentType("text/html; charset=UTF-8"); // 콘텐츠 타입과 문자 인코딩 설정 request.setCharacterEncoding("UTF-8"); // 문자 인코딩 설정 //doPost는 요청할 때는 request를 써야한다. //클라이언트 화면에다가 화면을 만들어주는 거니까 응답 PrintWriter out = response.getWriter(); //요청처리(request.getParameter(name속성에 쓴 이름을 써줘야한다.)) - 클라이언트가 서버로 보낸 데이터를 받는 것. 타입은 무조건 String이다. String num = request.getParameter("num"); //xxx String num1 = request.getParameter("num1"); //int age2 = Integer.parseInt(age); 이렇게 변수 선언해서 할 수있음! //응답 int a = Integer.parseInt(num); int b = Integer.parseInt(num1); out.print(a+b); //http://localhost:8093/ex00/ParamServlet?ttt=James 이렇게 나온다. }
}
jsp
<%@ 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> <hr>
<input type="text" id="p" name="num" placeholder="숫자를 입력하세여..">+ <input type="text" id="p" name="num1" placeholder="숫자를 입력하세여..."> <button onclick="loadDoc()">=</button> <input type="text" name="result"> <script> function loadDoc() { const num = document.querySelector("input[name='num']"); const num1 = document.querySelector("input[name='num1']"); const result = document.querySelector("input[name='result']"); const xhttp = new XMLHttpRequest(); xhttp.onload = function() { result.value = this.responseText; } xhttp.open("GET", "ParamServlet?num=" + num.value + "&num1="+ num1.value, true); xhttp.send(); } </script>
</body> </html>
============================
가위바위보 Ajax
package servlets0605;
import java.io.IOException; import java.io.PrintWriter; import java.util.Random;
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("/ParamServlet") public class ParamServlet extends HttpServlet { private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html; charset=UTF-8"); // 콘텐츠 타입과 문자 인코딩 설정 request.setCharacterEncoding("UTF-8"); // 문자 인코딩 설정 //doPost는 요청할 때는 request를 써야한다. PrintWriter out = response.getWriter(); Random rd = new Random(); int result = rd.nextInt(3)+1; if (result==1) { out.print("<img src='img/가위.png'>"); } else if (result==2) { out.print("<img src='img/묵.png'>"); } else if (result==3) { out.print("<img src='img/보.png'>"); } }
}
jsp
<%@ 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> <hr>
<button onclick="loadDoc()" placeholder="내가 뭘 내면 이길까?">눌러봐~~~~</button> <div id="demo"></div> <script> function loadDoc() { const xhttp = new XMLHttpRequest(); xhttp.onload = function() { document.getElementById("demo").innerHTML = this.responseText; } xhttp.open("GET", "ParamServlet", true); xhttp.send(); } </script>
</body> </html>
==============================
id중복확인 Ajax
package servlets0605;
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("/IdServlet") public class IdServlet extends HttpServlet { private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html; charset=UTF-8"); // 콘텐츠 타입과 문자 인코딩 설정 request.setCharacterEncoding("UTF-8"); // 문자 인코딩 설정 // PrintWriter out = response.getWriter(); String idcheck = request.getParameter("idcheck"); if (idcheck.equals("aaa")) { out.print("이미 사용중인 아이디 입니다."); } else if(idcheck.equals("bbb")) { out.print("사용 가능한 아이디 입니다."); } }
}
jsp
<%@ 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> <input type="text" name="idcheck" id="idcheck"><button onclick="loadDoc()" name="check">id중복확인</button> <div id="demo"></div>
<script> function loadDoc() { const idcheck = document.getElementById("idcheck").value; const xhttp = new XMLHttpRequest(); xhttp.onload = function() { document.getElementById("demo").innerHTML = this.responseText; } xhttp.open("GET", "IdServlet?idcheck="+idcheck , true); xhttp.send(); } </script>
</body> </html>
//"IdServlet?idcheck="+idcheck는 GET 요청에 쿼리 매개변수(query parameter)를 추가하는 방법입니다. 쿼리 매개변수는 URL에 데이터를 전달하기 위해 사용됩니다.
========================
시험문제 만들기
Servlet
package servlet0607;
import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList;
import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;
/**
  • Servlet implementation class test5 */ @WebServlet("/test5") public class test5 extends HttpServlet { private static final long serialVersionUID = 1L;
    • public test5() { super();
      }
      protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html; charset=UTF-8"); request.setCharacterEncoding("UTF-8");
      int score = 0; PrintWriter out = response.getWriter(); // <http://localhost:8093/ex00/test5>? answer1=3 &answer2=3 &answer3=13 &answer4=6 &answer4=8 String answer1 = request.getParameter("answer1"); String answer2 = request.getParameter("answer2"); String answer3 = request.getParameter("answer3"); String[] answer4 = request.getParameterValues("answer4"); String answer5 = request.getParameter("answer5"); if (answer1 != null && answer1.equals("2")) { score += 20; } if (answer2 != null && answer2.equals("4")) { score += 20; } if (answer3 != null && answer3.equals("15")) { //무조건 틀렸다고 나오고 score += 20; } if (answer4 != null && answer4[0].equals("6") && answer4[1].equals("6") ) { //모든 걸 골라도 답이다. score += 20; } if (answer5 != null && answer5.equals("그린")) { score += 20; } out.println("Test 결과는" + score + "점 입니다.");
      }
}
jsp
<%@ 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>그린 테스트(5문제) 문제당 20점입니다.</h1> <hr> <form action="test5" method="get"> <ul> <li>1번: 1+1=?</li> <br> <li><input type="radio" name="answer1" value="0">1. 0</li> <li><input type="radio" name="answer1" value="1">2. 1</li> <li><input type="radio" name="answer1" value="2">3. 2</li> <li><input type="radio" name="answer1" value="3">4. 3</li> <br>
<li>2번: 2+2=?</li> <br> <li><input type="radio" name="answer2" value="1">1. 1</li> <li><input type="radio" name="answer2" value="2">2. 2</li> <li><input type="radio" name="answer2" value="3">3. 3</li> <li><input type="radio" name="answer2" value="4">4. 4</li> <br> <li>3번: 10+5=?</li> <select name="answer3"> <option value="13">1. 13</option> <option value="15">2. 15</option> <option value="17">3. 17</option> <option value="20">4. 20</option> </select> <br> <li>4번: 3+3=? (답은 2개입니다)</li> <br> <li><input type="checkbox" name="answer4" value="6">1. 6</li> <li><input type="checkbox" name="answer4" value="9">2. 9</li> <li><input type="checkbox" name="answer4" value="8">3. 8</li> <li><input type="checkbox" name="answer4" value="6">4. 6</li> <br> <li>5번: 지금 다니고 있는 학원 이름은? (띄어쓰기 없음! OO아카데미)</li> <textarea rows="5" cols="20" name="answer5"></textarea> </ul> <input type="submit" value="제출"> </form>
</body> </html>
-=-=================
Share article

Uni