Daily coding

Servlet : 서버와 연결하기 2 ( Java Servlet 파일 만들기 ) 본문

Front-end/비동기통신

Servlet : 서버와 연결하기 2 ( Java Servlet 파일 만들기 )

sunnnkim 2020. 1. 16. 19:28

< Java Servlet 기본구조 >

//여기는 서버 영역!
public class HelloServlet extends HttpServlet{
	
	// servlet 을 만들기 위해서는 HttpServlet 클래스를 상속하여
	// doGet과 doPost 메소드를 오버라이딩한다 
	
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// get방식일때는 이곳으로

	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// post방식일때는 이곳으로
	}

}

 

: Server 에서 클라이언트의 요청을 해석하는 기능인 Servlet은 Java를 통해 만들 수 있다.

  웹 프로젝트의 Java Resource에서 HttpServlet 클래스를 상속하여 생성한다

 

 

Servlet :

    - java코드로 구성됨 (java코드안에 html코드로 구성)
JSP

    - html코드 안에 java코드로 구성됨 
 

- servlet은 자바코드이기 때문에 에러 코드를 발견하기 용이 
- java안에 html 코드를 작성하기 때문에 복잡하고 한계가있음  

 

 

 

 

 

* 주요 함수의 역할


* HttpServletRequest

   : JSP에서 request.getParameter( "name" ) 함수의 전신이라고 할 수 있다. 

 

- getParameter( "name") : 요청한 데이터를 받아서 String으로 바꾸어주는 역할을 한다

- "name"에는 클라이언트 쪽에서 지정한 name 속성으로 데이터를 받을 수 있다


* HttpServletResponse

 : 응답을 보내기 위한 객체

 

- HttpServletResponse

- getWriter () : html 코드를 작성하여 담아가는 함수

 * PrintWriter pw = resp.getWriter();

   //  이런식으로 html코드를 작성함

 

 

 

 * get /post방식


        - get : 넘어가는 데이터가 링크에 보이도록 하는 방식,  
                가벼움(255바이트까지만 가능) 
        - post : 넘어가는 데이터가 보안이 적용되어 감추어지는 방식  
                (로그인 등에 사용) 


- get / post는 client에게 더 중요하고,  
  서버에서는 똑같이 코드를 만들어 보내면 되기 때문에  
  html코드를 만드는 메소드를 만들어 사용하도록 한다. 

 

 

// Java Servlet 
// HTML 코드 작성 부분

		resp.setContentType("text/html; charset=UTF-8");
		PrintWriter pw = resp.getWriter();	// html코드를 여기서 작성함
		
		pw.println("<html>");
		pw.println("<head>");
		pw.println("<title>제목</title>");
		pw.println("<body>");
		pw.println("<h1>Hello Servlet</h1>");
		pw.println("<p>Hello Servlet. This text is from Servlet</p>");
		
		pw.println("<p>"+ name +"</p>");
		
		
		
		pw.println("</body>");
		pw.println("</head>");
		pw.println("</html>");
		pw.close();
        
		// 위의 코드는 Java 안에 html 코드 써서 화면에 뿌림
		

  

 

 * 따로 메소드를 만들어 doGet / doPost 에서 호출하는 경우도 있음

// get / post는 client에게 더 중요하고, 서버에서는 똑같이 코드를 만들어 보내면 되기 때문에 
// html코드를 만드는 메소드를 만들어 사용하도록 한다.

 

	public void createHTML(String methodType, HttpServletRequest req, HttpServletResponse resp) throws IOException {
		
		String name = req.getParameter("name");
		System.out.println("name: " + name);
		
		resp.setContentType("text/html; charset=UTF-8");
		PrintWriter pw = resp.getWriter();	// html코드를 여기서 작성함
		
		pw.println("<html>");
		pw.println("<head>");
		pw.println("<title>제목</title>");
		pw.println("<body>");
		pw.println("<h1>Hello Servlet</h1>");
		pw.println("<p>Hello Servlet. This text is from Servlet</p>");
		pw.println("<p>methodType : "+ methodType+"</p>");
		
		pw.println("<p>"+ name +"</p>");
		
		
		
		pw.println("</body>");
		pw.println("</head>");
		pw.println("</html>");
		pw.close();
		
	}