목록웹 프로그래밍/DB연결 웹 어플리케이션 (15)
Dolphins의 HelloWorld
출처 http://inheritingjava.blogspot.kr/2011/04/chapter-42-scope-of-javabeans-in-jsp.html 4가지 Scope - Application : 웹 어플리케이션이 시작되고 종료될 때까지 변수가 유지되는 경우 사용 - Session : 웹 브라우저 별로 변수가 관리되는 경우 사용 - Request : http요청을 WAS가 받아서 웹 브라우저에게 응답할 때까지 변수가 유지되는 경우 사용 - Page : 페이지 내에서 지역변수처럼 사용 Page Scope - PageContext 추상 클래스를 사용한다. - JSP페이지에서 pageContext라는 내장 객체로 사용 가능하다. - forward가 될 경우 해당 Page scope에 지정된 변수는 사용할..
Servlet과 JSP연동 - Servlet은 프로그램 로직이 수행되기에 유리하다.IDE 등에서 지원을 좀 더 잘해준다. - JSP는 결과를 출력하기에 Servlet보다 유리하다. 필요한 html문을 그냥 입력하면 된다. - 프로그램 로직 수행은 Servlet에서, 결과 출력은 JSP에서 하는 것이 유리하다. - Servlet과 JSP의 장단점을 해결하기 위해서 Servlet에서 프로그램 로직이 수행되고, 그 결과를 JSP에게 포워딩하는 방식을 사용하게 되었다. 이를 Servlet과 JSP연동이라고 한다. 먼저 LogicServlet을 다음과 같이 작성하였다. 그런 후 WebContent 아래에 result.jsp를 만들어 다음과 같이 작성하였다. 이렇게 작성을하면 다음과 같은 결과가 나온다. forwa..
forward 출처 http://java.scwcd.jobs4times.com/Web-Container-Model.html forward란? - 웹 브라우저에서 Servlet 1에게 요청을 보냄 - Servlet 1은 요청을 처리한 후, 그 결과를 HttpServletRequest에 저장 - Servlet 1은 결과가 저장된 HttpServletRequest와 응답을 위한 HttpServletResponse를 같은 웹 어플리케이션 안에 있는 Servlet2에게 전송(forward) - Servlet2는 Servlet1로부터 받은 HttpServletRequest와 HttpServletResponse를 이용하여 요청을 처리한 후 웹 브라우저에게 결과를 전송 redirect와 forward의 차이? redi..
리다이렉트 (redirect) - 리다이렉트는 HTTP프로토콜로 정해진 규칙이다. - 서버는 클라이언트의 요청에 대해 특정 URL로 이동을 요청할 수 있다. 이를 리다이렉트라고 한다. - 서버는 클라이언트에게 HTTP 상태코드 302로 응답하는데 이 때 헤더 내 Location 값에 이동할 URL을 추가한다. 클라이언트는 리다이렉션 응답을 받게되면 헤어(Location)에 포함된 URL로 재요청을 보내게 된다. 이 때 브라우저의 주소창은 새로 바뀌게된다. - 클라이언트는 서버로부터 받은 상태값이 302라면 Location헤더값으로 재요청을 보내게 된다. 이 때 브라우저의 주소창은 전송받은 URL로 바뀌게된다. - 서블릿이나 JSP는 리다이렉트하기 위해 HttpServletResponse 클래스의 send..
JSP 내장 객체란? - JSP를 실행하면 서블릿 소스가 생성되고 실행된다. - JSP에 입력한 대부분의 코드는 생성되는 서블릿 소스의 _jspService() 메소드 안에 삽입되는 코드로 생성된다. - _jspService()에 삽입된 코드의 윗부분에 미리 선언된 객체들이 있는데, 해당 객체들은 jsp에서도 사용 가능하다. - response, request, application, session, out과 같은 변수를 내장객체라고 한다. 먼저 이전에 만들었던 jsp파일이 변환된 서블릿에 내장객체가 있는지 확인해보겠다. 보면 이렇게 미리 내장객체들이 선언되어있음을 볼 수 있다. 내장객체의 종류와 역할을 보기쉽게 정리해보면 다음과 같다. 실습을 통해 실제로 이 내장객체를 이용하여 JSP코드를 짰을 때 잘..
이렇게 JSP를 작성하고 실행을 시키면 JSP자체가 실행되는것이 아니라 서블릿으로 바뀌어 실행이 된다. 확인을 위해 C:\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\firstweb 이렇게 이클립스에서 프로젝트가 저장되는 파일을 찾아 .metadata부터 찾아 내려가 jsp파일이 있는 프로젝트를 선택하면 이렇게 jsp파일이 생성되있는것을 볼 수 있고 C:\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\firstweb\org\apache\jsp 이렇게 다시 tmp0으로 돌아가 위의 루트로 들어가보면 jsp파일이 ja..
먼저 기존에 만들었던 프로젝트에 jsp파일을 하나 만들자. html과 동일하게 jsp파일은 프로젝트의 WebContent안에 만들어주면 된다. 이렇게 페이지를 만든 후 1부터 10까지의 합을 더해 페이지에 표현하도록 코드를 작성하면 다음과 같다. 이 코드를 보면서 JSP 구문들의 의미에 대해 한번 알아보겠다. 일단 JSP는 JSP 자체가 동작하는게 아니라 모든 JSP는 서블릿으로 바뀌어 동작한다. 고로
디버깅 과정을 알아보기위해 todomvc.com에서 Vanilla JS 페이지로 들어가보았다. 어떤 프레임워크 없이 진행될 수 있는 것을 보통 바닐라 JS라고 부른다. 이렇게 개발자도구를 열어서 Sources 부분에서 원하는 곳에 브레이크 포인트를 걸 수 있다 위에서 보면 96번째 줄을 눌렀더니 저렇게 표시가 돼 있는것을 볼 수 있다. 이 상태에서 새로운 검색어를 입력하여 처리해보겠다. 위에서 볼 수 있는것과 같이 paused in debugger과 함께 브레이크 포인트까지 실행이 된다. 이 상태에서 ESC를 누르면 밑에서 Console창이 올라오고 여기에 궁금한 항목들을 검색하면 결과가 나오는 것을 볼 수 있다. 어디서 호출했는지 궁금할 때는 우측에있는 Call Stack을 통해 알 수 있다. 우측 밑..
Ajax (XMLHTTPRequest 통신) 이 기술은 웹에 데이터를 갱신할 때, 브라우저 새로고침 없이 서버로부터 데이터를 받는것이 좋겠다는 생각에서 출발했다. 예를들어 다음 탭의 UI에서 만약 누르지도 않은 탭의 컨텐츠까지 초기 로딩시점에 모두 불러온다면 초기 로딩속도에 영향을 줄 것이다. 고로 동적으로 필요한 시점에 컨텐츠를 받아와서 표현하면 더 좋다. 이 경우가 Ajax 기술을 활용할 수 있는 대표적인 경우이다. Ajax 통신으로 XML, Plain Text, JSON등 다양한 포맷의 데이터를 주고받을 수 있지만, 일반적으로 사용이 편리한 JSON포맷으로 데이터를 주고 받는다. Ajax 실행코드 XMLHTTPRequest 객체를 사용하는 표준방법으로 실습을 해보겠다. 다음과 같이 코드를 짜서 실행..
Event 브라우저에서는 많은 이벤트가 발생한다. 화면의 크기를 마우스로 조절할 때, 스크롤을 할 때, 마우스로 이동하거나 무언가를 선택할 떄도 이벤트가 발생한다. HTML엘리먼트별로 어떤 이벤트가 일어났을 때 특정행위를 하고싶다면 대상 엘리먼트를 찾고 자바스크립트로 구현하면 된다. 이벤트 등록 이벤트를 등록하기 위해 표준적으로 addEventListener함수를 사용한다. 여기서 addEventListener함수의 두번째 인자는 함수이다. 이 함수는 나중에 이벤트가 발생할 때 실행되는 함수로 이벤트핸들러 또는 이벤트리스너라고 한다. 실습을 통해 addEventListener가 작동하는 모습을 확인해보자. 이렇게 html코드를 작성한 후 querySelector을 통해 속성을 찾아 이벤트를 발생시키는 함..