백엔드 기초

HTTP

  • 무상태 프로토콜(연결 유지x)
  • Cookie - 정보 유지용

WAS(Web Application Server)

  • 미들웨어 : 클라이언트와 DBMS 사이
  • 프로그램 실행 환경과 DB접속 기능 제공, 여러 개의 트랜젹션을 관리, 비지니스 로직을 수행
  • 자체적으로 웹 서버 기능 내장
  • 자원 이용의 효율성 및 장애 극복, 배포 및 유지보수의 편의성을 위해 웹서버와 WAS를 대체로 분리

사용 프로그램

  • JAVA
  • Eclipse
  • Tomcat

Servlet

  • 자바 웹 어플리케이션의 구성요소 중 동적인 처리를 하는 프로그램 역할
    -WAS에서 동작하는 JAVA클래스, HttpServlet 클래스를 상속

자바 웹 어플리케이션

  • WAS에 설치(deploy)되어 동작하는 어플리케이션

  • HTML, CSS, 이미지, Servlet, JSP 등

  • 폴더구조

    WEB-INF/web.xml : DeploymentDescriptor 배포기술자
    WEB-INF/lib : 각종 자료, jar파일
    WEB-INF/classes : java 패키지, class들

    Servlet 작성방법

    3.0 이상 : JAVA annotation 사용
    3.0 미만 : Servlet을 등록할 때 web.xml 파일에 등록

    코드 예시

    		protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    			response.setContentType("text/html;charset=utf-8");
    			PrintWriter out = response.getWriter();
    			out.println("<h1>1~10까지 출력!</h1>");
    			for(int i=0; i<10; i++) {
    				out.println(i+"<br>");
    			}
    			out.close();
    			}

    web.xml 구조

  <servlet>
    <description></description>
    <display-name>TenServlet</display-name>
    <servlet-name>TenServlet</servlet-name>
    <servlet-class>exam.TenServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>TenServlet</servlet-name>
    <url-pattern>/ten</url-pattern>
  </servlet-mapping>
</web-app>
// url요청이 들어오면 <servlet-mapping><url-pattern>에서 ten을 찾은 후
// TenServlet이라는 서블렛을 <servlet><servlet-name>에서 찾은 후
// <servlet-class>를 실행한다

HttpServlet 메소드

  1. 최초 호출 시 HttpServlet 객체 생성, init 호출
  2. service(request, response) : 요청이 들어왔을 때 실행됨
    HttpServlet.service() : GET요청인 경우 doGet 호출, POST요청인 경우 doPost 호출
  3. destroy() : HttpServlet 객체 해제 시 호출
<form method='post' action='/firstweb/LifecycleServlet'>
  name : <input type='text' name='username'><br>
  <input type='submit' value='ok'><br>
</form>

// String name = request.getParameter("name");

Header 정보 출력

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/html");
		PrintWriter out = response.getWriter();
		out.println("<html>");
		out.println("<head><title>Header</title></head>");
		out.println("<body>");
		out.println("<h1>Header Information</h1>");
		Enumeration<String> headerNames = request.getHeaderNames();
		while(headerNames.hasMoreElements()) {
			String headerName = headerNames.nextElement();
			String headerValue = request.getHeader(headerName);
			out.println(headerName + " : " + headerValue + " <br> ");
		}
		
		out.println("</body>");
		out.println("</html>");
		}

+ contentPath로 uri 가리는 방법 알아보기

좋은 웹페이지 즐겨찾기