이 글은 유튜브에 뉴렉처님의 강의를 보며 작성하는 것입니다.
아래에 있는 코드는 원격에 있는 클라이언트에게 전달된다.
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class Nana extends HttpServlet
{
public void service(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException
{
OutputStream os = response.getOutputStream();
PrintStream out = new PrintStream(os, true);
out.println("Hello Servelt!!");
}
}
<HttpServletRequest 객체>
: 사용자가 서버쪽으로 데이터를 요청할 때, 요청에 대한 기능과 속성들을 가지고 있는 객체이다.
<HttpServletResponse 객체>
: 서버에서 만든 데이터를 사용자에게 넘겨줄 때 사용하는 객체
이때까지는 메모장을 활용하여 jsp를 작성하였지만 이후에는 이클립스를 활용하여 작성한다. 이클립스를 활용하여 jsp를 작성하려면 EE버전을 다운로드 받아야한다.
@WebServlet("/hello") // Annotation
public class Nana extends HttpServlet {
protected void service(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException
{
PrintWriter out = response.getWriter();
out.println("Hello Servlet!!");
}
}
public class Nana extends HttpServlet {
protected void service(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException
{
PrintWriter out = response.getWriter();
for(int i=0; i<100; i++)
{
out.println((i+1)+": Hello Servlet!!");
}
}
}
public class Nana extends HttpServlet {
protected void service(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException
{
response.etCharacterEncoding("UTF-8");
// 인코딩 방식을 지정해줘야 한다.
response.setContentType("text/html; charset=UTF-8");
// 어떠한 인코딩 방식을 사용해야하는지 set
PrintWriter out = response.getWriter();
for(int i=0; i<100; i++)
{
out.println((i+1)+": 안녕 Servlet!!");
}
}
}
http://localhost/hello?cnt=3
--> 여기서 cnt=3에 해당되는 부분을 쿼리 스트링이라고 한다.
@WebServlet("/hello")
public class Nana extends HttpServlet {
protected void service(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException
{
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");
PrintWriter out = response.getWriter();
int cnt=Integer.parseInt(request.getParameter("cnt"));
// 입력도구
// 문자열로 전송되기에 Integer.parseInt() 함수를 사용하여 정수로 변환하여 사용한다.
for(int i=0; i<cnt; i++)
{
out.println((i+1)+": 안녕 Servlet!!<br >");
}
}
}
@WebServlet("/hello")
public class Nana extends HttpServlet {
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");
PrintWriter out = response.getWriter();
String temp = request.getParameter("cnt"); // cnt 값을 받아온다.
int cnt = 1; // 기본 값 설정
if (temp != null && !temp.equals("")) // 전달된 값이 null이 아니라면 temp를 정수형으로 변환
cnt = Integer.parseInt(temp);
for (int i = 0; i < cnt; i++) {
out.println((i + 1) + ": 안녕 Servlet!!<br >");
}
}
}
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<div>
<form action="notice-reg" method="post">
<div>
<label>제목:</label><input name="title" type="text">
</div>
<div>
<label>내용:</label>
<textarea name="content"></textarea>
</div>
<input type="submit" value="등록" />
</form>
</div>
</body>
</html>
@WebServlet("/notice-reg")
public class Nana2 extends HttpServlet {
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");
PrintWriter out = response.getWriter();
String title = request.getParameter("title");
String content = request.getParameter("content");
out.println(title);
out.println(content);
}
}
@WebServlet("/notice-reg")
public class Nana2 extends HttpServlet {
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");
request.setCharacterEncoding("UTF-8");
// 위에 request 설정으로 UTF-8로 지정을 하면 한글이 깨지지 않고 전달된다.
PrintWriter out = response.getWriter();
String title = request.getParameter("title");
String content = request.getParameter("content");
out.println(title);
out.println(content);
}
}
9장 부터 19장까지