<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Insert title here</title>

</head>

<body>


<%

String[] movieList = { "캡틴아메리카", "배대슈", "엑스맨", "곡성" };

pageContext.setAttribute("movieList", movieList);

%>

<c:forEach var= "movie" items="${movieList}">

   ${movie}<br>

</c:forEach>


</body>

</html> 

서블릿에서 요청에 따라 서비스에 적절한 로직처리 메소드를 호출하고 그 결과에 대한 데이터를 req의 attribute에 실어서 포워드 보내면 jsp에서는 그녀석을 EL로 뽑아 출력하거나 데이서셋이라면 위 방법으로 반복돌면서 데이터 접근


' IOT 기반 응용 SW과정 > Web Programing' 카테고리의 다른 글

Day46 자바스크립트  (0) 2016.05.24
Day45 데이터베이스와 JDBC  (0) 2016.05.20
Day43 JSTL(JSP Standard Tag Library)  (0) 2016.05.18
Day42 표현언어  (0) 2016.05.18
Day41  (0) 2016.05.16

컨텍스트 경로는 웹 어플리케이션이 동작중인 서버가 각 웹 어플리케이션을 구분하기 위한 경로


종류 

사용용도 

형식 

  스크립트릿(scriptlet)

 자바 코드를 기술함 

 <% %> 

  선언문(declaration)

 변수와 메소드를 선언함 

 <%! %> 

  표현식(expression)

 계산식이나 함수를 호출한 결과를 문자열 형태로 출력함 

 <%= %>

  주석(comment)

 JSP 페이지에 설명을 넣음 

 <%--  --%> 


Jsp로 작성된 파일은 요청에 대해 응답이 되어질때 서블릿으로 변환됨

1. 요청이 들어옴

2. jsp파일을 서블릿으로 코드 변환함(java파일 생성)

3. 2를 컴파일함(class 파일 생성)

4. 3을 실행함(객체생성 혹은 메모리 로드)

5. 4객체의 요청처리 메소드를 호출(_jspService() 메소드)


요청이 들어왔을시 객체가 없으면 4 실행, 3이 없으면 2,3 실행

jsp코드는 _jspService메소드로 번역될때 html은 out객체의 출력으로 스크립트릿의 코드는 

그냥 자바코드로해서 _jspService메소드로 복붙됨(멤버함수 내의 코드로)

jsp가 번역되는 서블릿의 멤버함수나 변수를 넣고 싶으면 선언문으로 작성 <%! ~~~ %>

' IOT 기반 응용 SW과정 > Web Programing' 카테고리의 다른 글

Day37 액션태그  (0) 2016.05.10
Day36 내장 객체의 영역, 액션태그  (0) 2016.05.09
Day35 JSP  (0) 2016.05.04
Day34 JSP 내장 객체  (0) 2016.05.03
Day32 Web Programming // JSP  (0) 2016.04.29

웹 애플리케이션

웹 브라우저로 접근하여 사용되는 애플리케이션, 

Web Application Server : WAS


-> BEA사의 WebLogic, IBM사의 WebSphere, SUN사의 iPlanet, Oracle 9iAS 등등

톰캣(Tomcat)!!!!


정적 

웹 브라우저에 사이트 주소를 입력하면 해당 사이트에 있는 웹 페이지를 달라고 요청이 전송됨

웹 서버는 요청 받은 페이지를 응답

웹 브라우저는 응답받은 html 페이지를 해석하여 사용자에게 화면으로 출력

 동적

웹 브라우저에 사이트 주소를 입력하면 해당 웹 어플리케이션 서버에게 요청이 전송됨

웹서버는 우베 어플리케이션에 구현되 있는 로직이나 DB연동등을 통해 결과 페이지를 생성해 응답

웹 브라우저는 응답받은 html 페이지를 해석하여 사용자에게 화면으로 출력 


JSP

띄여쓰기 <br>

<%@page import="java.util.Date"%>     - -> 디렉티브라고 부르며, JSP페이지에 대한 전반적인 설정을 선언

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>


<%= new Date() %>   :  표현식이라고 부르며, 자바 코드의 변수 값 등을 HTML로 출력


자바 서블릿(Java Servlet)

자바를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램 혹은 그 사양을 말하며, 흔히 "서블릿"이라 불린다. 

* 웹 서버의 성능을 향상하기 위해 사용되는 자바 클래스의 일종이다. 

JSP가 HTML 문서 안에 Java 코드를 포함하고 있는 반면, 서블릿은 자바 코드 안에 HTML을 포함하고 있다는 차이점이 있다.


서블릿 만들기

1. HttpServlet을 상속

2. 이 서블릿이 처리할 요청(사용자가 입력하는 url)을 명시 및 등록

jsp파일들은 우리서버 ip / 프로젝트명(어플명) / webcontent이하의 파일경로를 요청으로 받음




import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;


@WebServlet("/hello") //지금 작성하는 서블릿을 우리 웹어플리케이션에 등록한다는 의미

 //괄호 안에 요청에 대해서 이 서블릿이 반응하겠다는 의미

//우리서버 ip / 프로젝트명(어플명) / hello라는 요청이 들어오면 이 서블릿이 반응함

public class HelloServlet extends HttpServlet {

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp) 

throws ServletException, IOException {

// 우리 서블릿으로 요청(get방식의)이 들어오면 이 함수가 호출됨

// req에는 들어온 요청에 대한 정보가 포함된 객체가 오고

// resp 내가 응답에 사용할 수 있는 응답객체가 있음

// super.doGet(req, resp);

resp.setContentType("text/html;charset=UTF-8"); //한글입력처리

PrintWriter pw = resp.getWriter();

pw.println("<html>");

pw.println("<title>");

pw.println("시빌워");

pw.println("</title>");

pw.println("<body>");

pw.println("캡틴아메리카팀 vs 아이언맨팀 "

+ "<br> 스파이더맨? ");

pw.println("</body>");

pw.println("<html>");

}

}





Addition.jsp


<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Addition</title>

</head>

<body>

<%

int num1 = 20;

int num2 = 10;   //스크립틀릿이라고 부르고 자바코드를 실행할 수 있는 영역

int add = num1 + num2;

%>

<%= num1 %> + <%= num2 %> = <%= add %>

//표현식이라고 부르고 자바 메모리상의 데이터 변수나 상수를 HTML값으로 뱉어주는 역할

</body>

</html> 




AdditionServlet.java


import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

@WebServlet("/AdditionServlet")

public class AdditionServlet extends HttpServlet {

protected void doGet(HttpServletRequest reqest, HttpServletResponse response) 

throws ServletException, IOException {

                int num1 = 20;

int num2 = 10;

int add = num1 + num2;

PrintWriter out = response.getWriter();

out.println("<html><head><title>Addition</title></head>");

out.println("<body>");

out.println(num1 + "+" + num2 + "=" + add);

out.println("</body>");

}}


' IOT 기반 응용 SW과정 > Web Programing' 카테고리의 다른 글

Day37 액션태그  (0) 2016.05.10
Day36 내장 객체의 영역, 액션태그  (0) 2016.05.09
Day35 JSP  (0) 2016.05.04
Day34 JSP 내장 객체  (0) 2016.05.03
Day33 Jsp  (0) 2016.05.02

+ Recent posts