목록콤퓨타 왕기초/JSP (19)
파게로그
URI(Uniform Resource Identifier) 인터넷에 있는 자원을 나타내는 유일한 주소. 또는 인터넷 상의 자원을 식별하기 위한 문자열의 구성. 인터넷 프로토콜에 항상 붙어 다닌다. 하위 개념으로 URL과 URN이 있다. scheme:[//[user[:password]@]host[:port]][/path][?query][#fragment] URI와 URL은 같을 수도 있고 다를 수도 있는데, 차이점은 다음과 같다. /* URI와 URL이 같은 경우 */ http://www.host.com/sample.txt /* URI와 URL이 다른 경우 (1) */ http://www.host.com/sample.txt?docid=123 빨간색 부분만 보면 URL이고, 파란색 부분까지 포함하면 URI이..
입력할 값이 많은 경우에는 POST 요청을 이용한다. reg.html 공지사항 등록 제목 : 내용 : NoticeReg.java package com.ddoongi.web; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; @WebServlet("/notice-reg") public class NoticeRe..
GET 요청, 즉 무언가를 달라고 하는 요청에는 옵션이 있을 수 있다. 이는 요청 내 쿼리스트링을 통해 구현된다. http://localhost/hello (10번반복) http://localhost/hello?cnt=3 (3번반복) ?cnt=3 : 쿼리스트링 hello?cnt=3 : '요청' 이러한 요청은 아래 4가지가 모두 가능하며, 각각에 대해 request.getParameter("cnt")를 통해서는 다음과 같은 String이 반환된다. 요청 cnt_ 처리 http://.../hello?cnt=3 "3" http://.../hello?cnt= "" !cnt_.equals("") http://.../hello? null cnt_ != null http://.../hello null cnt_ != ..
초기 세팅 Eclipsed Java EE > New > Dynamic Web Project Project Name: 프로젝트명 Target Runtime: WAS 선택 기초적인 설명 홈 디렉터리 WebContent/ Eclipse IDE에서 웹 페이지를 볼 때 브라우저 설정하기 Window > Web Browser 파일을 직접 여는 것과 Run의 차이 문서 작성 후 Run을 하면, 문서가 Tomcat의 디렉터리로 옮겨진 후, Tomcat이 실행된 후, Eclipse로 돌아와서 내용이 표시된다. 즉, 파일 자체가 열리는 게 아니라 배포된 문서를 볼 수 있는 것이다. 프로젝트명을 context name으로 쓰지 않기 기본 프로젝트를 root project가 되어야 한다. 프로젝트 우클릭 > Web Proje..
Representational State Transfer(REST) Fielding, Roy Thomas(2000) 전문_ 논문요약 Fielding, Roy Thomas.; Taylor, Richard N. (2002) [블로그] REST의 특징과 디자인 가이드 [블로그] RESTFUL API Microsoft REST API Guidelines [블로그] 예시 [Stackoverflow] HTTP GET with request body
service의 인자에는 HttpServletRequest request(입력도구), HttpServletResponse response(출력도구)가 있다. public class Test1 extends HttpServlet { public void service(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { OutputStream os = response.getOutputStream(); PrintStream out = new PrintStream(os, true); // PrintWriter out = response.getWriter();도 가능하다. out.println..
Servlet은 기능별로 코드가 나누어져 있고, 필요에 따라 필요한 코드가 선택되어 실행된다. 웹이라는 환경을 통해 프로그램을 실행해야 하기 때문이다. 기본적으로 내가 실행하고자 하는 클래스는 HttpServlet을 상속받아야 하고, service()가 구현되어야 한다. import javax.servlet.*; import javax.servlet.http.*; import java.io.*; public class Hello extends HttpServlet { // 모든 Servlet class는 WAS에 의해서 로드되고 실행되고 결과를 돌려주게 되며, 클래스명은 자유롭게 할 수 있다. public void service(HttpServletRequest request, HttpServletRes..
같은 문맥은 유지하면서 디렉터리를 다르게 할 때, 예를 들어서 팀별 분업이 용이하려면, 실제 디렉터리는 다른 곳에 있을 수 있다. 즉 물리적으로는 2개의 사이트이지만, 사용자 입장에서는 하나의 사이트로 보인다. 이것을 Context site라고 한다. 정리하자면 클라이언트 입장에서 주소 체계는 하나의 사이트처럼 보이고, 실제 서버에서는 루트가 2개이다. 사용자가 보기에는 아래와 같이 표시된다. localhost:8080/contextName/index.html 실제 서버에서는 아래와 같이 루트가 2개이다. tomcatRoot/webapps/ROOT/ realRoot/index.html tomcatRoot/conf/server.xml을 수정하여 두 개를 연결해서 쓸 수 있게 설정해 준다. path: 클라이..