web

[web] Servlet

소댓 2023. 4. 23. 21:38

* 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>");
	}
}