Servelt 1
JSP는 무엇이고, Servlet 은 무엇인가?<
Servlet
- Tomcat 위에서 동작하는 java Program .. 더 자세히는 Servlet이 초기화 되는 과정을 보면
- Java 코드 안에 HTML 코드 (하나의 클래스) .. JSP는 반대
JSP , Servlet 차이
Servlet
- Java 코드 안에 HTML 코드 (하나의 클래스)
- data processing(Controller)에 좋다.
- Servlet이 수정된 경우 Java 코드를 컴파일(.class 파일 생성)한 후 동적인 페이지를 처리하기 때문에
전체 코드를 업데이트하고 다시 컴파일한 후 재배포하는 작업이 필요하다. (개발 생산성 저하)
JSP
- Java 언어를 기반으로 하는 Server Side 스크립트 언어
- HTML 코드 안에 Java 코드
- Servlet를 보완하고 기술을 확장한 스크립트 방식 표준
Servlet의 모든 기능 + 추가적인 기능
Servlet 클래스는 HttpServlet 클래스를 상속받음
public class HelloWorld extends HttpServlet{
}
요청처리 및 응답처리객체를 톰캣에서 받음
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//request 요청처리객체, response 응답처리 객체
response.setContentType("text/html"); //응답 처리시 html로
PrintWriter writer = response.getWriter();
GET방식 & POST방식
클라이언트에서 WAS로 요청(request)하는 2가지 방법 html 태그안에 method = GET or POST 정함
1.GET 방식
- 서블릿에서 doGet 메소드 호출
- 서버에는 최대 240Byte까지 데이터를 전달할 수 있다.
- URL값이 노출되어 보안취약
2.POST 방식
- 서블릿에서 doPost 메소드 호출
- 서버에 전달할 수 있는 데이터 크기에 제한이 없다.
- URL에는 매개변수가 표시되지않는다.
깨달은것
response.setContentType("text/html"); 이부분을 잘못입력하면
response.setContentType("html/text"); 이렇게입력시 실행시키면 웹페이지가 안뜨고 파일을 다운로드 받을 수도있다.
response.setContentType("html/text"); 이렇게입력시 실행시키면 웹페이지가 안뜨고 파일을 다운로드 받을 수도있다.
Context Path
WAS에서 웹어플리케이션을 구분하기 위한 path
이클립스에서 프로젝트생성시 자동으로 server.xml에 추가