컴퓨터는 잘못이 없다..
[JSP]서블릿1_서블릿 만들기(+경로 공부2) 본문
[예제코드 프로젝트 구조]
[예제코드 목표]
①다음의 뉴스탭 -> 뉴스를 들어가보았다.
웹브라우저가 요청하고 있는 경로를 보자. 그 후 웹브라우저 -> 우클릭 -> 페이지 원본보기를 눌러보자!
② 경로를 보면 html파일을 요청하지도 않았는데 html을 response받은 것을 알 수 있다.
③우리도 hello요청 링크를 클릭하였을 때
④즉, 순수요청경로 hello를 요청했을 때 html format string을 java로 응답할 수 있도록 만들어보자!
⑤HelloServlet 클래스에서 /hello요청에 대해 어떤 내용을 응답할지에 대한 설계도를 작성해보자.
[예제코드]
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>/index.html</title>
<!-- bootstrap css로딩하기 -->
<link rel="stylesheet" href="css/bootstrap.css" />
</head>
<body>
<div class="container">
<h1>인덱스 페이지 입니다.</h1>
<ul>
<li><a href="hello">hello요청</a></li>
<li><a href="ya">ya요청</a></li>
</ul>
</div>
</body>
</html>
HelloServlet.java
package test.servlet;
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;
/*
/hello 요청에 대해 응답을 할 서블릿 정의하기
1. HttpServlet 클래스를 상속 받는다.
2. service() 메소드 오버라이드 한다.
3. 어떤 요청을 처리할 지 어노테이션(@WebServlet)을 클래스 위에 작성한다.
*/
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//클라이언트에게 문자열을 출력할 수 있는 객체의 참조값 얻어오기
PrintWriter pw=resp.getWriter();
//클라리언트에게 문자열 출력하기
pw.print("hello~");
pw.flush();
pw.close();
}
}
index.html실행결과
index.html에서 hello요청링크를 클릭했을 때
[예제코드 설명]
01. HelloServlet.java 에서 /hello 요청에 대해 응답을 할 서블릿 정의하기
① HttpServlet 클래스를 상속 받는다.
┌HelloServlet.java
② service() 메소드 오버라이드 한다.
┌HelloServlet.java
③ 어떤 요청을 처리할 지 어노테이션(@WebServlet)을 클래스 위에 작성한다.
┌index.html과 HelloServlet.java
④resp.getWriter()로 클라이언트에게 문자열을 출력할 수 있는 객체의 참조값 얻어오기
--> 이때 resp.getWriter()의 리턴타입은 PrintWriter임!
┌HelloServlet.java
⑤클라이언트에게 문자열 출력하기
┌HelloServlet.java
02. 톰캣이 HelloServlet클래스로 하는 일!
02_1. 우리는 이렇게 Servlet 부분 프로그래밍을 하고 나머지는 톰캣이 다해준다!
03. 주소창의 경로 확인하기!
/Step01/는 Context Path이고
/Step01/는 최상위 경로를 의미한다.
┌경로 차이점 확인하기!!!!
[퀴즈]
YaServlet.java
package test.servlet;
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;
@WebServlet("/ya")
public class YaServlet extends HttpServlet{
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
PrintWriter pw=resp.getWriter();
pw.print("ho~");
pw.flush();
pw.close();
}
}
'공부 > JSP' 카테고리의 다른 글
[JSP]JSP시작하기2_(+경로공부1)/상대경로,절대경로/(../)의 의미/Context Path/서블릿요청/http://의 의미,톰캣과 웹브라우저가 하는 일 (0) | 2021.01.02 |
---|---|
[JSP]JSP시작하기(미완성) (0) | 2020.12.28 |