어플리케이션 서버(Tomcat)을 쓰고있다.
url=자원이 어디에 있는 지 알려주는 것.
404오류(자원이 없는 오류,오타를 확인 해보자)

405오류(post인지 gete인지 메소드를 확인해보자)

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연습




=========================
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