It Study/프로그래밍 공부
서블릿 구구단 연습 예제
prlkt5200
2024. 10. 1. 00:11
반응형
순차적으로 예제를 올리겠습니다.
솔직히 유튜브에서 따라치기는 하나 거의 이해를 못했습니다.....
그치만 언젠가는 이해할 수 있을 거 같고, 또 참고자료로 활용가능할 것 같기에 기록을 남겨봅니다.
package com.sbs.jsp.board.servlet;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("UTF-8"); //들어오는 데이터를 utf 8로 인식
resp.setCharacterEncoding("UTF-8");// 완성된 html의 인코딩을 utf 8로 하겠다.
resp.setContentType("text/html; charset UTF-8");//브라우저에게 우리가 만든 결과물이 utf 8이다
resp.getWriter().append("안녕");
}
}
package com.sbs.jsp.board;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
public class Rq {
private final HttpServletRequest req;
private final HttpServletResponse resp;
public Rq(HttpServletRequest req, HttpServletResponse resp) {
this.req = req;
this.resp = resp;
try {
req.setCharacterEncoding("UTF-8");
} catch (UnsupportedEncodingException e) {
throw new RuntimeException(e);
}
resp.setCharacterEncoding("UTF-8");
resp.setContentType("text/html; charset UTF-8");
}
public int getIntParam(String paramName, int defaultValue) {
String value = req.getParameter(paramName);
if (value == null) {
return defaultValue;
}
try {
return Integer.parseInt(value);
} catch (NumberFormatException e) {
return defaultValue;
}
}
public String getParam(String paramName, String defaultValue) {
String value = req.getParameter(paramName);
if (value == null) {
return defaultValue;
}
return value;
}
public void writer(String str){
try {
resp.getWriter().append(str);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
package com.sbs.jsp.board.servlet;
import com.sbs.jsp.board.Rq;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/gugudan")
public class GugudanServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Rq rq = new Rq(req, resp);
//req.getParameter로 가져오는 값은 그냥 문자열이기에 형변환을 해준 것이다.
int dan = rq.getIntParam("dan", 9 );
int limit = rq.getIntParam("limit", 9);
rq.writer("<h1>%d단</h1>".formatted(dan));
for (int i = 1; i <= limit; i++) {
rq.writer("<div>%d * %d = %d</div>".formatted(dan, i, dan * i));
}
}
}
반응형