본문 바로가기

Servlet&JSP

Step01_Servlet(jsp영역, 주석, 친구목록, ArrayList, 반복문)

 

jsp의 영역

 

<%@  %>

설정하는 영역

<%  %>

자바 코드를 작성하는 영역

<%=  %>

참조되는 영역을 웹브라우저에 출력하는 영역

<%--  --%>

jsp 페이지에서의 주석 영역

 

 

FriendServlet (servlet과 반복문)

servlet에 ArrayList와 반복문을 활용하여 친구 목록을 웹페이지에 출력되도록 만들었다.

 

package test.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;

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("/friend/list")
public class FriendServlet extends HttpServlet{
   
   @Override
   protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      //DB 에서 불러온 친구 목록이라고 가정하자 
      List<String> list=new ArrayList<String>();
      list.add("김구라");
      list.add("해골");
      list.add("원숭이");
      list.add("주뎅이");
      list.add("덩어리");
      
      /*
       *  위의 목록을 이용해서 친구 목록을 클라이언트에게 출력해 보세요.
       *  
       *  - 아래와 같은 html 형식으로 출력해야 합니다.
       *  <ul>
       *    <li>김구라</li>
       *    <li>해골</li>
       *    .
       *    .
       *  </ul>
       *  - 반드시 반복문을 활용하세요 
       */
     
      
      //응답 인코딩 설정
	  resp.setCharacterEncoding("utf-8");
	  //응답 컨텐츠 설정 
	  resp.setContentType("text/html; charset=utf-8");
	  //클라이언트의 웹브라우저에 문자열을 출력할 수 있는 객체의 참조값 얻어내기
		PrintWriter pw = resp.getWriter();
		pw.println("<!doctype html>");
		pw.println("<html>");
		pw.println("<head>");
		pw.println("<meta charset='utf-8'>");
		pw.println("<title>제목 입니다</title>");
		pw.println("</head>");
		pw.println("<body>");
		pw.println("<p>친구 목록입니다</p>");
		pw.println("<ul style=\"list-style-type:decimal\">");
		for(String tmp:list) {
	    	  pw.println("<li>"+tmp+"</li>");
	      }
		pw.println("</ul>");
		pw.println("<a href=\"/Step01_Servlet/\">운세 페이지가기</a>");
		pw.println("</body>");
		pw.println("</html>");
		//pw.flush();//방출
		pw.close();//닫아주기
      for(String tmp : list) {
    	  
      }
   }
}

 

 

/friend/list

같은 내용을 jsp로 작성했다.

<%@page import="java.util.ArrayList"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<% 
	List<String> list=new ArrayList<String>();
	list.add("김구라");
	list.add("해골");
	list.add("원숭이");
	list.add("주뎅이");
	list.add("덩어리");
%>
<!doctype html>
<html>
	<head>
	<meta charset='utf-8'>
	<title>/friend/list</title>
	</head>
	<body>
		<h1>친구 목록입니다</h1>
		<ul style="list-style-type:decimal">
			<%for(String tmp:list) {
				out.write("<li>"+tmp+"</li>");
	      }%>
		</ul>
		
		<h1>친구 목록입니다</h1>
		<ul style="list-style-type:decimal">
			<%for(String tmp:list) {%>
				<li><%=tmp%></li>
	      <%}%>
		</ul>
		<a href="/Step01_Servlet/">운세 페이지가기</a>
	</body>
</html>

 

방법1

<h1>친구 목록입니다</h1>
<ul style="list-style-type:decimal">
<%for(String tmp:list) {
out.write("<li>"+tmp+"</li>");
      }%>
</ul>

방법2

<h1>친구 목록입니다</h1>
<ul style="list-style-type:decimal">
<%for(String tmp:list) {%>
<li><%=tmp%></li>
      <%}%>
</ul>

친구목록을 두가지 방법으로 작성했다.  작성방식의 차이를 익혀두면 좋다.

예시에서 out.write를 작성했는데 out.print와 기능이 같다

 

 

jsp의 주석 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<% 
	//java code 영역에서의 주석
	/*
		여기도
		주석
	*/
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>comment.jsp</title>
</head>
<body>
	<%-- 
		jsp 페이지에서의 주석
		- jsp 페이지가 무시하는 주석
	--%>
	<h1>comment.jsp 페이지 입니다.</h1>
	<!-- 
		html 영역에서의 주석 
		- 웹브라우저가 무시하는 주석
	-->
</body>
</html>