Daily coding

Servlet : 서버와 연결하기 1 ( web.xml 이란?) 본문

Front-end/비동기통신

Servlet : 서버와 연결하기 1 ( web.xml 이란?)

sunnnkim 2020. 1. 16. 18:51


* 서버로 연결하는 방법

 

1. 서블릿으로 설정할 자바 파일을 Java Resources 폴더에 클래스를 추가한다
2. 서블릿 클래스는 HttpServlet 클래스를 상속하고, 
   doGet, doPost 메소드를 오버라이딩한다. ( get 방식, post방식 )
3. html 코드와 자바의 servlet 코드를 연결하기 위해서는 반드시 web.xml 설정파일이 필요하다
4. web.xml 파일은 webContent의 WEB-INF폴더에 web.xml을 만들고
5. Apache.Tomcat 파일의 conf폴더에 있는 web.xml에서 소스를 가져다 쓰면된다 ( <web-app> 부분) 
( 클라이언트 (html)파일에서 servlet 파일로 이동하기 위해서는 web.xml파일에 serlvet 등록을 해두어야 함)

 

 

 

* web.xml

 

- web application의 설정을 위한 deployment descriptor

  (서버 작동이 가능하도록 servlet 정보를 설정함)

 

- 브라우저가 Java Servlet에 접근하기 위해서는 WAS(Ex. Tomcat)에 필요한 정보를 알려줘야 해당하는

   Servlet을 호출할 수 있다.


* 필요한 정보 : 1) 배포할 Servlet이 무엇인지

                    ( <servlet> - <servlet-name>, <servlet-class> )
* 필요한 정보 : 2) 해당 Servlet이 어떤 URL에 매핑되는지

                    ( <servlet-mapping> - <url-pattern>)

 

<servlet>

	<servlet-name>helloSerlvet</servlet-name>
   ==> 서블릿 이름
   
	<servlet-class> sample01.serv.HelloServlet </servlet-class>
   ==> 서블릿 클래스가 들어있는 경로
   
</servlet>

<servlet-mapping>

	<servlet-name>helloSerlvet</servlet-name>
   ==>서블릿 이름 (위와 같아야함, 중복되면 안됨)

	<url-pattern>/loction</url-pattern>
   ==> /loction : servlet 클래스로 설정한 곳으로 이동하도록 등록하기 
       			  /이름은 사용자지정, form에서 링크로 설정할때만 맞춰주면 됨
                  중복되면 안됨!

</servlet-mapping>

새로운 servlet을 연결해줄때마다 <servlet>, <servlet-mapping> 코드를 
추가해주어야 한다.

 

 

 

< web.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>
	<servlet-name>helloServlet</servlet-name>
	<servlet-class>ser.HelloServlet</servlet-class>
</servlet>

<servlet-mapping>
	<servlet-name>helloServlet</servlet-name>
	<url-pattern>/location</url-pattern>
</servlet-mapping>


</web-app>

 

 

< client 코드 (html) >

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>

<!-- 여기는 클라이언트 코드 -->

    <h1>Servlet Basic</h1>

	
    <form method="GET" action="location">   
            <input type="submit" value="get 방식">
    </form>
    

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


    
</body>
</html>