본문 바로가기
JSP/JSP & Servlet

서블릿 활용 1

by avvin 2019. 5. 22.

서블릿 활용




Superclass : javax.servlet.http.HttpServlet


서블릿 클래스를 상속받아야만 서블릿클래스




HelloWorld.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
60
61
package control;
 
import java.io.IOException;
 
import javax.servlet.RequestDispatcher;
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("/HelloWorld") //URL과 서블릿 맵핑하는 어노테이션 
//아래에 있는 서블릿 클래스을 web.xml에 자동으로 맵핑해주는 어노테이션 @WebServlet
//서블릿 클래스와 이름 일치시키지 않으면 
//서버를 실행했을때 브라우저에 보이는 url을 설정해준다.
//HelloWorld 서블릿클래스를 실행하면 url은 http:// ~ /HelloWorld인데
//@WebSetvlet 어노테이션에 /Hello로 설정해놓으면 url을 /Hello로 바꿔야 아래 서블릿 클래스가 실행된다.
//@WebServlet("/HelloWorld") = 아래 서블릿 클래스가 실행될 페이지의 url설정하는 어노테이션
 
public class HelloWorld extends HttpServlet {
    private static final long serialVersionUID = 1L;
 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        
        reqPro(request, response);
    }
 
 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
        reqPro(request, response);
    }
 
    //get, post 일괄 처리하는 메서드 
    public void reqPro(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        
        //화면에 HelloWorld 출력 : jsp쪽으로 넘겨질 데이터 설정
        String msg = "Hello Wolrld 안녕하세요";
        
        //jsp쪽으로 데이터를 보낼때 request객체에 넣어야 보낼수 있다.
        request.setAttribute("msg", msg);
        
        //서블릿에서 jsp를 호출하면서 데이터를 같이 넘겨주는 객체를 선언
        //매개값으로 JSP파일명을 기술
        RequestDispatcher rd = request.getRequestDispatcher("HelloWorld.jsp");
        
        //데이터를 넘겨주는 객체의 forward 메서드를 통해 요청과 응답을 보낸다.
        //매개값으로는 request와 response만 줄 수 있다. 
        rd.forward(request, response);

      
   //jsp로 보낼 데이터를 request객체에 넣고 (request의 setAttribute로 이름과 값을 넣는다.)

        //request객체의 메서드로 데이터를 넘겨주는 객체인 dispatcher 객체를 생성한 후에 

        //dispatcher객체의 forward 메서드로 request와 response를 jsp로 넘겨준다.

        //넘어간 데이터는 EL문으로 표현할 수 있다.

        //따로 받아오는 작업을 거칠 필요가 없이 EL 블럭 안에서 바로 msg를 쓸 수 있다.

        // ${msg} ${msg} = <% (String msg = request.getParameter("msg"); out.println(msg); %> <%=msg%> )
        
    }
    
}
 

  cs



HelloWorld.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<body>
<div style="text-align: center">
<h2> 결과 보기 </h2>
 
${msg } <p>
 
 
</div>
</body>
</html>
cs


'JSP > JSP & Servlet ' 카테고리의 다른 글

MVC 파라미터 - 회원가입  (0) 2019.05.22
서블릿 활용 2 - 파라미터 사용  (0) 2019.05.22
서블릿의 이해  (0) 2019.05.22
JSTL (Java Standard Tag Library)- 2  (0) 2019.05.21
JSTL (Java Standard Tag Library)- 1  (0) 2019.05.21