【Java】ソエンレット
16804 ワード
(web.xml)デプロイメント記述子の使用方法
作成
package kr.or.ddit.basic;
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;
/*
Servlet이란 컨테이너(서블릿엔진)에 의해 관리되는 자바기반의 웹컴포넌트. 동적인 웹 컨텐츠 생성을 가능하게 한다.
*/
/*
이 서블릿을 호출할 URL주소 만들기
예) http://localhost:80/servletTest/servletTest01.do
- http => 프로토콜
- localhost => 컴퓨터이름(도메인명) 또는 IP주소
- 80 => PORT번호 (80번은 생략가능)
- /servletTest => 컨텍스트패스(보통 프로젝트명으로 지정한다)
- /servletTest01.do => 서블릿 요청 URL패턴
*/
// 서블릿을 등록하는 방법 2가지
// 1. 배포서술자(web.xml)를 이용하는 방법
// 2. 애노테이션을 이용하는 방법
// 이 예제는 배포서술자를 이용하는 방법을 사용하는 예제이다.
// HttpServlet를 상속받는다. default설정
public class ServletTest01 extends HttpServlet {
private static final long serialVersionUID = 1L;
/*
이 곳에서는 대부분 service()메서드나, doGet()메서드 또는 doPost()메서드를 재정의해서 작성한다.
doGet()메서드나 doPost()메서드의 매개변수로 다음과 같은 2개의 객체가 전달된다.
1) HttpServletRequest객체
서비스 요청에 관련된 정보 및 메서드를 관리하는 객체
2) HttpServletResponse객체
서비스 응답에 관련된 정보 및 메서드를 관리하는 객체
*/
// service 메서드 : 모든 요청시 실행되는 메서드. 이 메서드에서 전송방식에 맞는 메서드를 자동 호출해준다. 생략가능.
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
super.service(req, resp);
}
// doGet()메서드 : GET방식의 요청을 처리하는 메서드
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setCharacterEncoding("utf-8"); //응답 문서의 인코딩 방식 지정
resp.setContentType("text/html; charset=utf-8"); //응답 문서의 ContentType지정
// 처리한 내용을 응답으로 보내기위한 PrintWriter객체생성
PrintWriter out = resp.getWriter();
//처리한 내용을 PrintWriter객체를 이용하여 출력한다.
// (이 작업이 곧 응답데이터를 보내는 작업이 된다.)
// 방법1 : append()메서드 이용하기
out.append("<html>").append("<head>").append("<meta charset='utf-8'>")
.append("<title>첫번째 서블릿 연습</title>").append("</head>").append("<body>")
.append("<h1 style='text-align:center;'>").append("안녕하세요. 첫번째 서블릿 프로그램입니다. <br>")
.append("실행 Servlet 경로: "+ req.getContextPath()).append("</h1></body></html>");
}
// doPost()메서드 : POST방식의 요청을 처리하는 메서드
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>servletTest</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<!-- 서블릿 등록 -->
<servlet>
<servlet-name>servletTest01</servlet-name>
<servlet-class>kr.or.ddit.basic.ServletTest01</servlet-class>
</servlet>
<!-- 서블릿을 언제 사용 -->
<servlet-mapping>
<servlet-name>servletTest01</servlet-name> <!-- 실행하고싶은 서블릿 이름 -->
<url-pattern>/servletTest01.do</url-pattern>
</servlet-mapping>
</web-app>
アニメーションの使用方法
package kr.or.ddit.basic;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/*
이 예제는 애노테이션을 이용하여 서블릿을 등록하는 예제입니다.
애노테이션(@WebService)은 Servlet버전 3.0이상에서 사용할 수 있다.
*/
/*
@WebServlet 애노테이션 속성들. urlPatterns만 잘 설정하면됨
1) name : 서블릿 이름을 설정한다. (기본값: 빈문자열(""))
2) urlPatterns : 서블릿의 요청 URL패턴의 목록을 설정한다. (기본값: 빈배열({})
예) urlPatterns = "/url1" 또는 urlPattern = {"/url1"} => 패턴이 한개일 경우
예) urlPatterns = {"/url1", "/url2", ...} => 패턴이 2개 이상일 경우
3) value : urlPattern속성과 동일한 기능을 한다.
4) description : 주석(설명글)을 설정한다.
*/
@WebServlet(urlPatterns = "/servletTest02.do", description="애노테이션을 이용한 서블릿 설정")
public class ServletTest02 extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setCharacterEncoding("utf-8");
response.setContentType("text/html; charset=utf-8");
// 처리한 내용을 응답으로 보내기위한 PrintWriter객체생성
PrintWriter out = response.getWriter();
//처리한 내용을 PrintWriter객체를 이용하여 출력한다.
// (이 작업이 곧 응답데이터를 보내는 작업이 된다.)
// 방법2 : print()메서드 또는 println() 메서드 이용하기
out.println("<html>");
out.println("<head><meta charset='utf-8'><title>두번째 서블릿 예제</title></head>");
out.println("<body>");
out.println("<h1 style='text-align:center; '>");
out.println("안녕하세요. 두번째 서블릿 예제입니다. <br>");
out.println("애너테이션을 이용하여 설정했습니다.<br><br>");
out.println("실행 ContextPath: " + request.getContextPath() + "</h1>");
out.println("</body></html>");
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
super.doPost(request, response);
}
}
Reference
この問題について(【Java】ソエンレット), 我々は、より多くの情報をここで見つけました https://velog.io/@vgo_dongv/Java-쒀쀨릿テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol