* Servlet : 웹에서 동작하는 작은 자바 프로그램
1. HttpServlet 상속
2. doGet() override
3. 내가 만든 서블릿을 등록
- req : 사용자의 요청을 객체화 시켜놓은 것
- resp : 서버의 응답을 객체로 만든 것
day1-[HelloServlet.html]
IP:통신포트번호/프로젝트명/hello2.html
>> hello2.html은 물리적 파일 혹은 서비스의 이름
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
package day1;
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;
// Servlet
// 웹에서 동작하는 작은 자바 프로그램
// 1. HttpServlet 상속
// 2. doGet() override
// 3. 내가 만든 서블릿을 등록
@WebServlet("/hello2.do")
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("doGet() method");
// req : 사용자의 요청을 객체화 시켜놓은 것
// resp : 서버의 응답을 객체로 만든 것
// 응답 객체로부터 PrintWriter 객체를 얻어오기
PrintWriter out = resp.getWriter();
// 사용자 브라우저에 이 내용을 전달
out.println("<html>");
out.println("<head><title>My Servlet</title></head>");
out.println("<body>");
for(int i=1; i<100; i++) {
out.println("<h2>Hello Servlet World</h2>");
}
out.println("</body>");
out.println("</html>");
}
}
|
cs |
- [index.html] 하이퍼링크
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>index.html</h1>
<ol>
<li><a href="./hello2.do">첫번째 서블릿</a></li>
<li><a href="./gugudan.do">구구단</a></li>
<li><a href="./now.do">지금시간보러가기</a></li>
</ol>
</body>
</html>
|
cs |
- [GuGuDan3] 구구단 3단 출력
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
package day1;
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;
// http://localhost:8080/web/gugudan.do : 구구단 3단 출력\
// 서블릿
// annotation > @
@WebServlet("/gugudan.do")
public class GuGuDan3 extends HttpServlet {
//doget + ctrl + space > enter
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("GuGuDan3 서블릿 실행중");
resp.setCharacterEncoding("UTF-8");
PrintWriter out = resp.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<meta charset = 'UTF-8'>");
out.println("<title>구구단</title>");
out.println("</head>");
out.println("<body>");
for(int i =1; i<10; i++) {
out.println("<h2>3 * "+i+" = "+3*i+"</h2>");
}
out.println("</body>");
out.println("</html>");
}
}
|
cs |
- [showGuGuDan.html] : NGuGuDan 실행 파일
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>showGuGuDan.html</title>
</head>
<body>
<form action="gugudan2.do" method="get">
<input type="text" name="dan" id="" />
<input type="submit" value="전송" />
</form>
</body>
</html>
|
cs |
- [NGuGuDan.java] : 구구단 출력 파일
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
package day1;
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;
// localhost:8080/web/gugudan2.do
@WebServlet("/gugudan2.do")
public class NGuGuDan extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 사용자 ==> 서버 : req
String dan = req.getParameter("dan"); // dan이라는 변수의 parameter 값을 읽어서 string 타입으로 넘겨줌
// String을 숫자로 형변환
int d = Integer.parseInt(dan);
System.out.println("입력 받은 구구단 : " + d);
// 서버 ==> 사용자 : resp
resp.setCharacterEncoding("UTF-8");
PrintWriter out = resp.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<meta charset='UTF-8'>");
out.println("<title>구구단 </title>");
out.println("</head>");
out.println("<body>");
for(int i=1; i<10; i++) {
out.println("<h3>"+d+" * "+i+" = "+d*i+"</h3>");
}
out.println("</body>");
out.println("</html>");
}
}
|
cs |
- [hobby.html] : 취미 입력 => 출력 html 파일
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- 서블릿 : /hobby.do(Hobby.java)를 정의하고
실행 시 브라우저에
당신의 취미는 ?? 입니다.
라는 메세지를 출력하도록 코드를 작성하세요. -->
<form action="hobby.do">
<input type="text" name="hobby" id="" />
<input type="submit" value="입력" />
</form>
</body>
</html>
|
cs |
- [Hobby.java] : 취미 입력 => 출력 java 파일
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
package day1;
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("/hobby.do")
public class Hobby extends HttpServlet{
@Override
// doPost도 가능~~
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 1. 파라미터 값 가져오기
req.setCharacterEncoding("UTF-8");
resp.setContentType("text/html;charset=UTF-8");
String hobby = req.getParameter("hobby");
// System.out.println("당신의 취미는 "+hobby+" 입니다.");
// 2. PrintWriter 객체 얻어오기
resp.setCharacterEncoding("UTF-8");
PrintWriter out = resp.getWriter();
// 3. 브라우저 출력
out.println("<html>");
out.println("<head>");
out.println("<meta charset='UTF-8'>");
out.println("<title>취미</title>");
out.println("</head>");
out.println("<body>");
out.println("<h2>당신의 취미는 "+hobby+" 입니다.</h2>");
out.println("</body>");
out.println("</html>");
}
}
|
cs |
+ snippets에 web - lang 저장 req.setCharacterEncoding("UTF-8"); resp.setContentType("text/html;charset=UTF-8"); |
- [login.html] : 로그인 정보 입력 => 출력
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>login.html</title>
</head>
<body>
<!--
login.do ==> Login.java
당신의 ID : XXX
패스워드 PW : XXX
-->
<form action="login.do" method="post">
id: <input type="text" name="id" id="" /><br />
pw: <input type="text" name="pwd" id="" /><br />
<input type="submit" value="로그인" />
<input type="button" value="회원가입" />
</form>
</body>
</html>
|
cs |
- [Login.java] : 로그인 java 파일
> doGet, doPost 둘 다 사용할 때! .. doget 내용을 블락하고 method로 추출
refactor-extract refactor - doPro ==> 이건 매 클래스마다 해야함 ~.~
> Login.java에서 annotation 주석 처리하고, {annotation 생략} 이미지 참고해서 처리
web project에서 java ee tools - generate depolyment description > web.xml 생성
이미지 참고해서 xml - source 작성 ==> 그치만 annotation이 더 간결편리..
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
package day1;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
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("/login.do")
public class Login extends HttpServlet{
// Error
// 200 : 정상처리
// 404 : 자원을 못찾음
// 405 : 방식을 지원하지 않음
// 500 : 서버쪽 프로그램 에러
// get방식과 post방식 동시에 사용 가능
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPro(req, resp);
}
private void doPro(HttpServletRequest req, HttpServletResponse resp)
throws UnsupportedEncodingException, IOException {
// 1. 한글처리
req.setCharacterEncoding("UTF-8");
resp.setContentType("text/html;charset=UTF-8");
// 2. 파라미터값 가져오기
String id = req.getParameter("id");
String pwd = req.getParameter("pwd");
// 3. 쓰기 객체
PrintWriter out = resp.getWriter();
// 4. 브라우저에 출력
out.println("<html>");
out.println("<head>");
// out.println("<meta charset='UTF-8'>");
// out.println("<title> 로그인 </title>");
out.println("</head>");
out.println("<body>");
out.println("<h2> 당신의 ID : "+id+"</h2>");
out.println("<h2> 패스워드 PW : "+pwd+"</h2>");
out.println("</body>");
out.println("</html>");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPro(req, resp);
}
}
|
cs |
- [friday.html] : 금요일 문구 + 입력 문구 출력 출력
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!--
Friday.java
/friday.do ==> Friday.java
오늘은 금요일 같은 목요일 입니다. : 전달 메세지
-->
<form action="friday.do">
<input type="text" name="msg" id="" />
<input type="submit" value="전송" />
</form>
</body>
</html>
|
cs |
- [Friday.java]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
package day1;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
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("/friday.do")
public class Friday extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doProc(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doProc(req, resp);
}
private void doProc(HttpServletRequest req, HttpServletResponse resp)
throws UnsupportedEncodingException, IOException {
req.setCharacterEncoding("UTF-8");
resp.setContentType("text/html;charset=UTF-8");
String msg = req.getParameter("msg");
PrintWriter out = resp.getWriter();
out.println("<html>");
out.println("<head>");
out.println("</head>");
out.println("<body>");
out.println("<h2> 오늘은 금요일 같은 목요일 입니다. : "+msg+"</h2>");
out.println("</body>");
out.println("</html>");
}
}
|
cs |
- [TestMain.java] > 시간 예시
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
package day1;
import java.text.SimpleDateFormat;
import java.util.Date;
public class TestMain {
public static void main(String[] args) {
Date d = new Date();
System.out.println(" d: "+d);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd:hh:mm:ss");
String time = sdf.format(d);
System.out.println(time);
}
}
|
cs |
- [Now.java] > 시간 실습
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
package day1;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.text.SimpleDateFormat;
import java.util.Date;
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("/now.do")
public class Now extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doProc(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doProc(req, resp);
}
private void doProc(HttpServletRequest req, HttpServletResponse resp)
throws UnsupportedEncodingException, IOException {
// 1. 한글처리
req.setCharacterEncoding("UTF-8");
resp.setContentType("text/html;charset=UTF-8");
// 2. 쓰기객체
PrintWriter out = resp.getWriter();
// 3. 오늘날짜 현재시간을 계산
Date d = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd:hh:mm:ss");
String time = sdf.format(d);
// 4. 브라우저에 출력
out.println("<html>");
out.println("<head>");
out.println("<title> 현재시간 </title>");
out.println("<meta charset = 'UTF-8'>");
out.println("</head>");
out.println("<body>");
out.println("<h1> 현재시간 "+time+" 입니다.</h1>");
out.println("</body>");
out.println("</html>");
}
}
|
cs |
- [index.html]에 추가해서 실행
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>index.html</h1>
<ol>
<li><a href="./hello2.do">첫번째 서블릿</a></li>
<li><a href="./gugudan.do">구구단</a></li>
<li><a href="./now.do">지금시간보러가기</a></li>
</ol>
</body>
</html>
|
cs |
- [hobby2.html] : 취미 체크 => 문구와 함께 출력
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>hobby2.html</title>
</head>
<body>
<form action="hobby2.do">
<!--input:checkbox[name='hobby']*4 -->
<input type="checkbox" name="hobby" id="" value="수영"/>수영 <br />
<input type="checkbox" name="hobby" id="" value="등산"/>등산 <br />
<input type="checkbox" name="hobby" id="" value="독서"/>독서 <br />
<input type="checkbox" name="hobby" id="" value="음악감상"/>음악감상 <br />
<input type="submit" value="보내기" />
</form>
</body>
</html>
|
cs |
- [hobby2.java]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
package day1;
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("/hobby2.do")
public class Hobby2 extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("UTF-8");
resp.setContentType("text/html;charset=UTF-8");
// 2. 파라미터 값 가져오기
String [] hList = req.getParameterValues("hobby");
// 3. 쓰기 객체
PrintWriter out = resp.getWriter();
out.println("<html>");
out.println("<head>");
out.println("</head>");
out.println("<body>");
out.println("<h1> 당신의 취미는 </h1>");
for(String x : hList) {
out.println("<h3>" + x + "</h3>");
}
out.println("</body>");
out.println("</html>");
}
}
|
cs |
1. 저녁 메뉴 고르기
http://127.0.0.1:8080/webQuiz/menu2.html 그림(hw1) 참고

http://127.0.0.1:8080/webQuiz/menu2.do
(으로 값을 전달하고 선택한 메뉴를 화면에 출력) src/day1/Menu.java서블릿을 작성하시오
결과 ]
선택한 메뉴는 라면 + 김밥 입니다.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>menu2.html</title>
</head>
<body>
<form action="menu2.do">
<h2>저녁 메뉴 골라봐</h2>
<input type="radio" name="menu" id="" value="김밥" />김밥 <br />
<input type="radio" name="menu" id="" value="라면" />라면 <br />
<input type="radio" name="menu" id="" value="라면+김밥" />라면+김밥 <br />
<input type="radio" name="menu" id="" value="떡볶이" />떡볶이 <br />
<input type="radio" name="menu" id="" value="돈까스" />돈까스 <br />
<input type="submit" value="결정" />
</form>
</body>
</html>
package day1;
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("/menu2.do")
public class Menu extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("UTF-8");
resp.setContentType("text/html;charset=UTF-8");
String [] mList = req.getParameterValues("menu");
PrintWriter out = resp.getWriter();
out.println("<html>");
out.println("<head>");
out.println("</head>");
out.println("<body>");
for(String x : mList) {
out.println("<h2> 선택한 메뉴는 " + x + " 입니다.</h2>");
}
out.println("</body>");
out.println("</html>");
}
}
2 . get 방식과 post 방식의 차이점 ? (검색)
- doGet()
: 호출되는 메소드, 데이터가 url에 포함됨
- doPost()
: 호출되는 메서드, 데이터가 HTML header에 포함됨
3. 서블릿 작성하는 순서
1- HttpServlet 상속
2- doGet() override
3- 내가 만든 서블릿을 등록
4 . time2.do 실행하면 현재 시간을 화면에 출력 (1. SimpleDateFormat 2. Date 클래스에 있는 메서드 )
package day1;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;
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("/time2.do")
public class Time2 extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("UTF-8");
resp.setContentType("text/html;charset=UTF-8");
PrintWriter out = resp.getWriter();
Date d = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy년 MM월 dd일 hh시 mm분 ss초");
String time = sdf.format(d);
out.println("<html>");
out.println("<head>");
out.println("<meta charset = 'UTF-8'>");
out.println("</head>");
out.println("<body>");
out.println("<h2>" + time + "</h2>");
out.println("</body>");
out.println("</html>");
}
}
5 서블릿을 작성하는 방법 에 대해서 자세히 설명하세요
1-한글 처리
2-파라미터 값 가져오기
3-쓰기 객체 선언
4-브라우저에 출력
6. 웹애플리케이션 개발시 필요한 환경설정을 정리하세요
1. Tomcat 다운로드
2. D:\dev에 복사
3. 압축풀기(여기에 풀기)
4. 폴더 이름 변경 d:\dev\tomcat9
5. 환경변수 설정
JAVA_HOME : C:\Program Files\Java\jdk1.8.0_361
CATALINA_HOME : D:\dev\tomcat9
6. 한글 설정
- d:\dev\tomcat9\conf\server.xml
URIEncoding="UTF-8"
7. 실행
D:\dev\tomcat9\bin>startup.bat / startup.sh(리눅스)
8. 확인
-http://localhost:8080/ => 에서 확인
7. 1부터 입력값까지의 누적합을 구해서 출력하는 서블릿을 HttpServlet을 상속받는 방법으로 구현하시오.
(단 첫번째 페이지는 input.html 처리할 서블릿은 CumValue 클래스이다.
사용자는 get방식으로든 post방식으로든 모두 접근가능하다. )
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>input.html</title>
</head>
<body>
<form action="cumvalue.do">
<input type="text" name="value" id="" />
<input type="submit" value="전송" />
</form>
</body>
</html>
package day1;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
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("/cumvalue.do")
public class CumValue extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doProcess(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doProcess(req, resp);
}
private void doProcess(HttpServletRequest req, HttpServletResponse resp)
throws UnsupportedEncodingException, IOException {
req.setCharacterEncoding("UTF-8");
resp.setContentType("text/html;charset=UTF-8");
String value = req.getParameter("value");
int v = Integer.parseInt(value);
int result = 0;
PrintWriter out = resp.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<meta charset = 'UTF-8'>");
out.println("</head>");
out.println("<body>");
for(int i=1; i<=v; i++) {
result += i;
}
out.println("<h2>"+result+"</h2>");
out.println("</body>");
out.println("</html>");
}
}
8. 다음과 같은 경로로 접근할때 구구단 2단 부터 9단 까지 출력하도록 코드를 작성하세요
(단 서블릿 클래스명은 GuGuTest.java )
http://localhost:8080/webQuiz/printGuGuDan.do
package day1;
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("/printGuGuDan.do")
public class GuGuTest extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("UTF-8");
resp.setContentType("text/html;charset=UTF-8");
PrintWriter out = resp.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<meta charset = 'UTF-8'>");
out.println("</head>");
out.println("<body>");
for(int j=2; j<=9; j++) {
for(int i=1; i<=9; i++) {
out.println("<h4>"+j+" * "+i+" = "+j*i+"<br />"+"</h4>");
}
out.println("-------------");
}
out.println("</body>");
out.println("</html>");
}
}
'web' 카테고리의 다른 글
[jsp] jspService의 지역 변수 / forward&redirect / 로그인, 회원가입 페이지 만들기 (1) | 2023.04.30 |
---|---|
[JSP] 데이터베이스 파일(DEPT) 가져와서 출력<VO/DAO> (0) | 2023.04.30 |
[jsp] <로그인 페이지 만들기(db 연결!)> : member 테이블 사용 + lombok 다운로드 (0) | 2023.04.30 |
[jsp] jsp (jsp의 스크립트 요소/button/text/for문/request&response) (0) | 2023.04.23 |
[web] Servlet(GenericServlet / HTTPServlet) (0) | 2023.04.23 |