자바를 기반으로 하는 웹페이지를 동적으로 만들어줄 수 있는 것
정적
: 페이지의 전, 후 화면 넘어가는 동작
동적
: 원하는 결과를 보기 위해 동작을 수행하고 처리하는 것(ex. 검색 후 나오는 화면)
인터넷 사용자가 많아지고 다양한 기능을 구사하는 웹들이 많아지자 사용자들은 정적인 자료가 아닌 필요에 맞는 동적인 자료를 제공받고 싶어 사용자 요구에 맞춰
동적으로 반응하는 웹 페이지
를 만들어진 것이 서블릿이다.
public class HelloServlet extends HttpServlet {
private HelloSub helloSub;
@Override
public void init() throws ServletException {
helloSub = new HelloSub();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("get 요청 접수 완료");
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.println("<html><body>");
out.println("<h1>환영합니다. 서블릿 방문을...</h1>");
int a=10, b=20;
int tot=myCalc(a,b);
out.println("두 수의 합 : "+"<b>"+tot+"</b>");
String result = helloSub.display(5);
out.println(result);
out.println("<body></body>");
out.close();
}
@Override
public void destroy() {
// 웹 서비스가 종료될 때 딱 한번 수행
helloSub = null; // 초기화
}
private int myCalc(int a, int b) {
return a+b;
}
}
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// get, post 모두 처리
System.out.println("service 처리");
String nai = request.getParameter("age");
if(nai.equals("33")) {
doGet(request, response);
}else {
doPost(request, response);
}
}
doPost( )와 다르게 쓸때 사용
많은 양의 자료를 클라이언트가 서버로 넘길때 , 보안에 신경쓸때 post방식
service, doGet, doPost 메소드를 사용할 떄 request, response 객체를 생성해야한다. PrintWriter out = response.getWriter();
자바의 싱글톤패턴과 비슷한 개념. (new를 사용하지 않고 getWriter()를 사용하여 out이라는 객체를 만들어준 것)
글 잘 봤습니다.