본문 바로가기
학습/JSP

3. 서블릿 (서블릿 만들기, 애너테이션 이용한 서블릿 매핑)

by Elfen Lied 2022. 11. 1.
반응형

- 서블릿 만들기

package sec00.exam01;

import java.io.IOException;

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

public class MyServlet extends HttpServlet{
	
	public MyServlet() {
		System.out.println("MyServlet : 서블릿 생성");
	}
	
	@Override
	public void init() throws ServletException {
		System.out.println("초기화작업수행");
	}
	
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// GET방식 요청 시 실행
		System.out.println("doGet()메소드 호출");
	}
	
}

 

 

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
  <display-name>pro05</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.jsp</welcome-file>
    <welcome-file>default.htm</welcome-file>
  </welcome-file-list>
  
  <!-- 서블릿 등록 : FirstServlet을 aaa이름으로 등록 -->
  <servlet>
  	<servlet-name>myServlet</servlet-name>
  	<servlet-class>sec00.exam01.MyServlet</servlet-class>
  </servlet>
  
  <!-- 서블릿 매핑 -->
  <servlet-mapping>
  	<servlet-name>myServlet</servlet-name>
  	<url-pattern>/myServlet</url-pattern>
  </servlet-mapping>
  
</web-app>

주소창 마지막에 매핑해준 url-pattern을 입력 해준다.

이클립스 콘솔창에 위와 같이 뜨면 성공

 

만약 아래와 같은 오류가 뜨면 web.xml에 servlet-class를 확인해보자. (오타나 다른 문제일수도 있음)

예외문구 : java.lang.ClassNotFoundException

 

 

 

- 애너테이션을 이용한 서블릿 매핑

  • @WebServlet 이용
  • 반드시 HttpServlet 상속받아야 함

이번엔 ctrl + n눌러서 servlet 생성

클래스 이름 적고 next

URL 쪽에 클래스 이름을 Edit 로 바꿀수 있음 /third 로 교체후 next

필요한거 체크후 피니쉬

package sec01.ex01;

import java.io.IOException;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class ThirdServle
 */
@WebServlet("/thir")
public class ThirdServle extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see Servlet#init(ServletConfig)
	 */
	public void init(ServletConfig config) throws ServletException {
		// TODO Auto-generated method stub
	}

	/**
	 * @see Servlet#destroy()
	 */
	public void destroy() {
		// TODO Auto-generated method stub
	}

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.getWriter().append("Served at: ").append(request.getContextPath());
	}

}

필요없는 주석과 내용은 지우면 된다

이렇게 생성하면 web.xml 쓸 필요없음

 

 

 

- 톰캣 포트  번호 바꾸기

폴더 트리 하단에 Servers에서 server.xml 로 들어감

ctrl + f 누르고 8080 검색

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

// port="8080"을 8090으로 수정

<Connector connectionTimeout="20000" port="8090" protocol="HTTP/1.1" redirectPort="8443"/>

서버 재시작후 확인.

 

 

반응형

댓글