학교/JAVA

05) 서블릿

서윤-정 2023. 12. 14. 15:55

💜 서블릿 (Servlet: Server Applet)

- CGI의 단점을 보완하기 위해 Sun Microsystems에서 개발

- Java 기반의 동적 웹 프로그래밍 솔루션

- 서블릿 기반으로 JSP 개발

--> JSP는 내부적으로 서블릿으로 변환되어 실행됨

--> JSP 동작 방식 이해를 위해 서블릿 이해가 필수

 

 

 

🩷 HTTPServletRequest 함수

- HTTPServletRequest: HTTP 요청 처리를 위해 필요한 기능을 제공하는 클래스

 

 

* LoginServlet의 doGet() 함수 구현

- request.getParameter() 를 이용해 쿼리 스트링으로부터 사용자 입력 값 추출

- 사용자 입력 값을 이용해 출력될 HTML 코드 생성

- 생성된 HTML 코드를 브라우저로 전송

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
String uid = request.getParameter("id");
String res = "<html><h3>User ID: " + uid + "</h3></html>";
response.getWriter().print(res);
}

 

 

* LoginServlet의 처리 과정

- login.html에서 사용자가 아이디와 패스워드 kim, 111 입력 시 처리 과정

 

 

 

 

 

💜 다양한 입력 양식 처리

1️⃣ <textarea> 입력 처리

- 아래 HTML을 통해 생성되는 URL?

http://localhost:8080/Hello/TextareaServlet?comment=No%20Comment

<body>
<form action="TextareaServlet">
Comment <br>
<textarea name="comment" rows="10" cols="50" placeholder="Add your comment">
No comment</textarea>
<br><br>
<input type="submit" value="Upload">
</form>
</body>

 

 

* TextareaServlet의 doGet() 함수 구현

- request.getParameter()를 이용해 쿼리 스트링으로부터 사용자 입력 값 추출

- 사용자 입력 값 이용해 출력될 HTML 코드 생성

- 생성된 HTML 코드를 브라우저로 전송

http://localhost:8080/Hello/TextareaServlet?comment=No%20Comment

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
String ucom = request.getParameter("comment");
String res = "<html><h3>User comment: " + ucom + "</h3></html>";
response.getWriter().print(res);
}

 

 

 

 

2️⃣ <input type="radio"> 입력 처리

- 아래 HTML을 통해 생성되는 URL?

 

http://localhost:8080/Hello/CheckboxServlet?fruit=apple&fruit=banana

<body>
<form action="CheckboxServlet">
Select one or more favorite fruits <br>
<input type="checkbox" name="fruit" value="apple" checked>Apple<br>
<input type="checkbox" name="fruit" value="banana" checked>Banana<br>
<input type="checkbox" name="fruit" value="orange">Orange<br><br>
<input type="submit" value="Select">
</form>
</body>

 

 

* CheckboxServlet의 doGet() 함수 구현 

- 사용자 입력 값 추출 -> HTML 코드 생성 -> 브라우저로 전송

- 멀티 선택값 추출 위해 request.getParameterValues() 함수 이용

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
String[] usel = request.getParameterValues("fruit");
String res = "<html>";
for (int i=0; i<usel.length; i++) {
res += "<h3>Selected fruit: " + usel[i] + "</h3>";
}
res += "</html>";
response.getWriter().print(res);
}

 

 

 

 

 

 

 

 

+ 한글 인코딩 방법

request.setCharacterEncoding("UTF-8");

- Servlet에 request 객체에 담겨 넘어오는 데이터에 대해 인코딩 값 설정

- getParameter() 사용해 값을 받기 전 인코딩 값 설정

 

'학교 > JAVA' 카테고리의 다른 글

05) 서블릿 예제  (0) 2023.12.16
07) 내장 객체 예제  (0) 2023.12.15
06) JSP  (0) 2023.12.14
07) JSP 내장 객체 종류  (0) 2023.12.14
모바일 웹 서비스 구현을 위한 JSP 웹 프로그래밍 연습문제_07 JSP 내장 객체  (0) 2023.12.13