티스토리 뷰

 

 

1번. forward와 inlcude 액션 태그의 차이점을 간단히 설명하시오.

 

forward 액션 태그는 이전에 저장되어 있던 출력 버퍼를 비우고 이동한다. 

실행 중인 페이지를 중단하고 새로운 페이지로 완전 이동한다.(request, response 객체는 그대로 유지되지만 페이지가 완전 종료되므로 이전 페이지로 이동 불가)

 

하지만 include 액션 태그는 이전에 저장되어 있던 출력 버퍼를 채워서 나머지 출력이 이루어진다. 그리고 프로그램 제어를 incldue 액션 태그가 끝난 후에 다시 반환 시켜준다.

현재 페이지의 실행을 일시 중단하고 다른 페이지를 실행한 후 다시 원래 페이지로 돌아온다.

포함된 페이지가 실행된 후에도 원래 페이지로 돌아와서 계속 실행할 수 있다.

 

 

 

 

2번. include 액션 태그와 include 디렉티브 태그의 차이점을 설명하시오.

include 액션 태그는 동적 페이지에 사용되고 다른 페이지의 처리 결과 내용을 포함한다. 즉, 전체 코드를 실행하여 page의 실행 결과를 가져온다.

include 디렉티브 태그는 정적 페이지에 사용되며 다른 페이지의 내용이 텍스트로 포함된다. 즉, 일부분만 작성되어 삽입되는데 그것을 코드가 삽입된다고 볼 수 있다.

 

 

 

3번. 자바빈즈를 작성하는 기법을 예를 들어 설명하시오.

1. 자바 클래스는 java.io.Serializable 인터페이스를 구현해야 한다.

2. 인수가 없는 기본 생성자가 있어야한다.

3. 모든 멤버 변수인 프로퍼티는 private 접근 지정자로 설정해야 한다.

4. 모든 멤버 변수인 프로퍼티는 Getter()/Setter() 메소드가 존재해야 한다.

 

 

 

 

 

4번. forward 액션 태그를 이용하여 다음 조건에 맞게 JSP 애플리케이션을 만들고 실행 결과를 확인하시오.

 

forward.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%@ page import="java.util.Date"  %>
<%@ page import="java.lang.Math" %>    
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
	<h4>구구단 출력하기</h4>
	<jsp:forward page="forward_data.jsp">
		<jsp:param value="5" name="num"/>
	</jsp:forward>
</body>
</html>

 

forward_data.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
	<%
		int num = Integer.parseInt(request.getParameter("num"));
		
	for(int i=1; i<10; i++){
		int b = num*i;
		out.println(num+"*"+i+"="+b+"<br>");
	}
	%>
</body>
</html>

 

결과

 

 

 

 

 

5번. include 액션 태그를 이용하여 다음 조건에 맞게 JSP 애플리케이션을 만들고 실행 결과를 확인하시오.

 

include.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%@ page import="java.util.Date"  %>
<%@ page import="java.lang.Math" %>    
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
	<h4>구구단 출력하기</h4>
	<jsp:include page="forward_data.jsp">
		<jsp:param value="5" name="num"/>
	</jsp:include>
</body>
</html>

 

include_data.jsp

 

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
	<%
		int num = Integer.parseInt(request.getParameter("num"));
		
	for(int i=1; i<10; i++){
		int b = num*i;
		out.println(num+"*"+i+"="+b+"<br>");
	}
	%>
</body>
</html>

 

결과

 

 

 

6번. 다음 조건에 맞게 JSP 애플리케이션을 만들고 실행 결과를 확인하시오.

 

dao.gugudan.java

package dao;

public class gugudan {

	public int process(int n, int i) {
		
		return n*i;
		
	}
}

 

 

useBean.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%@ page import="java.util.Date"  %>
<%@ page import="java.lang.Math" %>    
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
	<h4>구구단 출력하기</h4>
	<jsp:useBean id="bean" class="dao.gugudan" />
	<%
		int num=0;
		for(int i=1; i<10; i++){
			num=bean.process(5, i);
			out.println(5 + "*" +i+"="+num+"<br>");
		}
	%>
</body>
</html>

 

결과

 

 

 

 

 

7번. 다음 조건에 맞게 도서 웹 쇼핑몰을 위한 웹 애플리케이션을 만들고 실행 결과를 확인하시오.

 

dao.bookrepository.java

package dao;
import java.util.ArrayList;

import dto.book;

public class bookrepository {
    ArrayList<book> listofbooks=new ArrayList<book>();
 
    public bookrepository() {
        book b1=new book("1", "[Hello Coding] HTML5+CSS3", 15000);
        b1.setDescription("문서 작성만큼, 아니 그보다 더 쉬운 웹페이지 만들기, 초보자를 위한 맞춤형 입문서. 지금 당장 컴퓨터가 없어도 괜찮다. 코드와 실행 화면이 바로 보여서 눈으로만 읽어도 어떻게 작동하는지 쉽게 파악할 수 있는 것은 기본이고, 중간중간 퀴즈를 추가하여 재미있게 게임하듯 복습할 수 있다.");
        b1.setAuthor("황재호");
        b1.setPublisher("한빛미디어");
        
        book b2=new book("2", "[IT 모바일] 쉽게 배우는 자바 프로그래밍", 27000);
        b2.setDescription("객체 지향의 핵심과 자바의 현대적 기능을 충실히 다루면서도 초보자가 쉽게 학습할 수 있게 구성한 교재이다. 시각화 도구를 활용한 개념 설명과 군더더기 없는 핵심 코드를 통해 개념과 구현을 한 흐름으로 학습할 수 있다.");
        b2.setAuthor("우종중");
        b2.setPublisher("한빛미디어");
        
        book b3=new book("3", "[IT 모바일] 스프링4 입문", 27000);
        b3.setDescription("그림과 표로 쉽게 배우는 스프링 4 입문서. 스프링은 단순히 사용 방법만 익히는 것보다 아키텍처를 어떻게 이해하고 설계하는지가 더 중요하다.");
        b3.setAuthor("하세가와 유이치, 오오노 와타루, 토키 코헤이(권은철, 전민수)");
        b3.setPublisher("한빛미디어");
        
        listofbooks.add(b1);
        listofbooks.add(b2);
        listofbooks.add(b3);
    }
    
    
    public ArrayList<book> getallbooks(){
        return listofbooks;
    }
}

 

 

dto.book.java

 

package dto;
import java.io.Serializable;

public class book implements Serializable {
	
	private String bookid;
    private String name;
    private Integer unitprice;
    private String author;
    private String description;
    private String publisher;
    private String category;
    private long unitsinstock;
    private long totalpages;
    private String releasedate;
    private String condition;
    
    public book() {
    	super();
    }
    
    public book(String bookid, String name, Integer unitprice) {
    	this.bookid=bookid;
    	this.name=name;
    	this.unitprice=unitprice;
    }
	public String getBookid() {
		return bookid;
	}
	public void setBookid(String bookid) {
		this.bookid = bookid;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Integer getUnitprice() {
		return unitprice;
	}
	public void setUnitprice(Integer unitprice) {
		this.unitprice = unitprice;
	}
	public String getAuthor() {
		return author;
	}
	public void setAuthor(String author) {
		this.author = author;
	}
	public String getDescription() {
		return description;
	}
	public void setDescription(String description) {
		this.description = description;
	}
	public String getPublisher() {
		return publisher;
	}
	public void setPublisher(String publisher) {
		this.publisher = publisher;
	}
	public String getCategory() {
		return category;
	}
	public void setCategory(String category) {
		this.category = category;
	}
	public long getUnitsinstock() {
		return unitsinstock;
	}
	public void setUnitsinstock(long unitsinstock) {
		this.unitsinstock = unitsinstock;
	}
	public long getTotalpages() {
		return totalpages;
	}
	public void setTotalpages(long totalpages) {
		this.totalpages = totalpages;
	}
	public String getReleasedate() {
		return releasedate;
	}
	public void setReleasedate(String releasedate) {
		this.releasedate = releasedate;
	}
	public String getCondition() {
		return condition;
	}
	public void setCondition(String condition) {
		this.condition = condition;
	}
    
}

 

 

books.jsp

 

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
    <%@ page import ="java.util.ArrayList" %>
<%@ page import="dto.book" %>
<jsp:useBean id="bookdao" class="dao.bookrepository" scope="session"/>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<body>
<%@ include file="menu.jsp" %>
    <div class="jumbotron">
      <div class="container">
      <h1 class = "display-3">도서 목록</h1>
      </div>
    </div>
    
    <%
        ArrayList<book> listofbooks=bookdao.getallbooks();
    %>
    
    <div class="container">
        <%
            for(int i=0;i<listofbooks.size();i++){
                book book=listofbooks.get(i);
        %>
      <div class="row" align="left">
        <div class="col">
            <h3><%=book.getName()%></h3>
            <p><%=book.getDescription()%></p>
            <p><%=book.getAuthor()+" | "+book.getPublisher()+" | "+book.getUnitprice()%>원</p>
        </div>
      </div>
      <hr style="border:grey 1px dashed">
          <%
            }
        %>
    </div>
 
<%@ include file="footer.jsp" %>
 
</body>
</html>

 

결과

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday