📚 Study/Servlet&JSP

Servlet이랑 JSP는 뭐가 다른데?
✔️ 한줄 요약 Servlet 은 HTML in JAVA 이다. JSP 는 JAVA in HTML 이다. JSP는 Servlet의 확장이므로 동일한 역할을 한다. 결국 둘 다 사용하는 MVC 패턴을 사용한다. ✔️ Servlet과 JSP의 차이 Servlet 웹 기반의 요청에 대한 동적인 처리가 가능한 Server side에서 돌아가는 Java Program입니다. Java 코드 안에 HTML 코드가 들어가 있으며 하나의 클래스입니다. Java로 웹 개발을 하기 위한 CGI의 역할을 하는 표준 비즈니스 로직 처리, data processing, Controller에 적합합니다. 수정된 경우 다시 컴파일한 후 재배포하는 작업이 필요합니다. JSP Java 언어를 기반으로 하는 Server side 스크립트..

web.xml 배포 설명자와 URL Pattern
✔️ web.xml 애플리케이션의 클래스, 리소스, 구성을 기술하고 웹 서버가 웹 요청을 처리하는 방법을 기술합니다. 앱의 WAR에서 WEB-INF/ 디렉터리에 위치합니다. Example App An example application which is used to play with some of the features of Tomcat 120 *.jsp /WEB-INF/jspf/prelude1.jspf /WEB-INF/jspf/coda1.jspf Enable debugging for the application debug true The email address of the administrator, used to send error reports. webmaster address@somedomain...

EL과 JSTL
✔️ EL(Expression Language) JSP 파일에 자바 코드를 사용하면 불편한 점을 해결해주기 위해 추가됐습니다. 를 ${abc}로 간단하게 사용할 수 있습니다. EL에서 Attibute는 작은 Scope에서 큰 Scope로 찾습니다. 📌 EL의 Implicit Objects pageScope : PageScope에 접근하기 위한 객체 requestScope : request Scope에 접근하기 위한 객체 sessionScope : session Scope에 접근하기 위한 객체 applicationScope : application Scope에 접근하기 위한 객체 param : 파라미터 값을 단일 값에 매핑해 가져오기 위한 객체 paramValues : 파라미터 값을 배열에 매핑해 가져오기..

JSP의 기초 문법
✔️ JSP 스크립팅 요소 jsp 내부에 자바 코드를 삽입하는 기능을 제공합니다. 📌 Scriptlet tag 와 같은 형태로 사용합니다. JAVA 코드를 위한 각 코드에는 반드시 세미콜론을 붙여야합니다. scriptlet에서 선언된 변수는 요청 때마다 호출되며 값이 초기화됩니다. 📌 Expression tag 와 같은 형태로 사용합니다. 표현식에서는 세미콜론을 붙이지 않아야합니다. 실행 결과를 리턴하므로 void 메서드나 변수의 선언만 식으로 작성할 수 없습니다. 📌 Declaration tag 와 같은 형태로 사용합니다. 전역변수, class, function을 선언하는 영역으로 반드시 세미콜론이 필요합니다. 선언된 변수나 메서드는 첫 요청 때만 값이 초기화 된 후 웹 컨테이너에서 값이 유지됩니다. ..

JSP의 Implicit objects(암시적 객체)
✔️ Implicit objects (기본 객체, 내장 객체, 암시적 객체) 기본 객체란 개발자가 따로 명시하지 않아도 JSP 자체에서 자동으로 제공하는 객체를 말합니다. 총 9개의 기본 객체를 가지며 기본적으로 Servlet과 동일하지만 몇가지 차이점이 존재합니다. Application 와 servletContext : 동일한 개념으로 용어상의 차이만 있습니다. pageContext : Servlet에는 없는 개념으로 jsp 페이지가 개별적으로 가지는 객체입니다. 📌 request 웹 컨테이너에 의해 각 jsp 요청에 대해 만들어진 HttpServletRequest 타입을 갖는 객체입니다. 매개변수, 헤더 정보, 원격 주소, 서버 이름, 서버 포트, 컨텐츠 유형, 문자 인코딩 등과 같은 요청 정보를 얻..

Servlet Filter
✔️ Servlet Filter package test; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class LoggingFilter implements Filter { /** * 필터가 생성될 때 초기화시 사용 */ public void init(FilterConfig config) throws Servlet..

JSP는 뭔데?
✔️ JSP Hello World~ () ✔️ JSP(Java Server Pages)란? JAVA 언어를 기반으로 하는 Server Side 스크립트 언어 HTML 코드에 JAVA 코드를 넣어 동적인 웹 페이지를 생성하는 웹 어플리케이션 도구 JSP를 통해 정적인 HTML과 동적으로 생성된 Contents(HTTP 요청 파라미터)를 혼합하여 사용할 수 있습니다. 즉, 사용자가 입력한 Contents에 맞게 동적인 웹 페이지를 생성합니다. 📌 JSP는 왜 생겼나? 기존의 Servlet은 JAVA 소스를 사용하여 이에 대한 지식을 요구했습니다. 하지만 협업 과정 중 HTML과 JAVA 소스가 뒤섞인 복잡한 소스는 개발자가 아니라면 수정하기 어려웠기 때문에 이러한 문제를 해결하기 위해 HTML에 JAVA 소..

Servlet이 뭔데?
✔️ Servlet import java.io.*; import javax.servlet.*; public class HelloServlet implements Servlet { ServletConfig config = null; public void init(ServletConfig config) { this.config = config; System.out.println("servlet is initialized"); } public void service(ServletRequest req,ServletResponse res) throws IOException,ServletException { res.setContentType("text/html"); PrintWriter out = res.getWr..