JSP and Servlet

Servlet(1) xml에서 servlet 지정 ,경로확인,req ,resp , out객체(웹에 내보낼 때)

Jini0 2018. 8. 13. 10:31

<html>

 

 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

 

 

<!-- servlet = Server + Applet   ->  ASP , PHP , JSP
   java      web  C#     
 
 request
 http://xxx.xxx.xxx.xxx.:8090/project명/html파일.html
PC ---------------- > 요청 Web Server ------------- > Web Container < ------------ > db
              
              
PC < --------------  web server   < ----------- 찾음
  
  response(응답): get(open) , post(close) 방식 차이 


 -->

 

get 방식과 post 방식의 차이점

get 방식은 url 을 통해 값들이 넘어가는 것이 보인다.

post 방식은 값은 넘어가지만 그 값 자체는 표시되지 않는다.

속도 get > post

 


<h1>servlet 기본</h1>

<form action="location" method="get">  //경로명(아무거나 써도 상관없지만 되도록이면 경로를 나타내는 단어로 쓴다. 그리고 xml 파일의 url 과 맞아야한다.)을 잡아주고  method 에 get or post 방식을 써줘야 전송되는 방식을 선택할 수 있다
 <input type="submit" value="Get 방식">
 
</form>
<br><br>

 

<form action="location" method="post">
 <input type="submit" value="Post 방식">

</form>

 

 

 


</body>
</html>

 

 

==================================================================

<xml>

 

 

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                      http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
  version="3.1">
<!--   servlet class 등록  -->
 <!-- 상수의 값을 선언 -->  


  <servlet>
  
  <servlet-name>hello</servlet-name> //서블릿 이름을 hello 로 지정
  
  <servlet-class>sample01.HelloServlet</servlet-class> <!-- 여기로 이동, 서블릿 파일 지정-->
 
  </servlet>
  
  
  <servlet-mapping>
  
  <servlet-name>hello</servlet-name> <!-- 연결고리 역할!   위에 servlet-name 과 같아야한다 제목이  --> //서블릿 이름을 hello 로 지정

  
  <url-pattern>/location</url-pattern> <!-- 우리가 링크를 걸어줄 곳  html 파일의

 form의 action 부분-->
  
  
  
  </servlet-mapping>
 
 
  </web-app>

 

 

 

==================================================================

<java>

 

 

 

package sample01; //패키지 안에 있어야 실행이 된다.

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloServlet extends HttpServlet {

 

//doget , dopost 함수만 오버라이드 한 것

 

 @Override //html 파일에서 버튼을 눌렀을 때 여기로 이동 해서 같은 방식인걸 호출한다.
 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 

 // req는 request( 요청) -서블릿이 요청하는 것, resp 는 response (응답) -서블릿이 응답해줌


  System.out.println("헬러우 서블릿 두겟");
  
  
  resp.setContentType("text/html; charset=utf-8"); // 글 설정
  
  PrintWriter out = resp.getWriter();//웹에 내보낼 때 쓰는 객체 out


  out.println("<html>");
  
  out.println("<head>");
       out.println("<title>Hello</title>");
       out.println("</head>");
      
       out.println("<body>");     
       out.println("<h1>Hello Servlet</h1>");     
       out.println("</body>");
       
  out.println("</html>");
  
  out.close();  //닫아 줘야 한다.
 }

 

@Override


 protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  System.out.println("헬러우 서블릿 두포스트");

 

//post 방식으로 사용하려면 이 공간에 코드를 적어줘야 post 방식으로 호출을 했을 떄

//동작한다.


 }

}