2016년 8월 2일 화요일

02day JSP


  • 디렉티브 <%@
    • page
      • 페이지에 대한 설명
      • import
    • taglib
    • include
  • 선언 <%!
    • 멤버변수 / 멤버 메서드
  • 스트립트렛 <%
    • 특수 메서드 내부 내용
      • 지역변수
      • 제어문
  • 표현식 <%=
    • 특수메서드 내부 내용
    • out.println("")




1
<!-- HTML 주석처리 입니다. -->
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<%-- 필요업는 import에 대한 주석입니다 ★★★★JSP주석은 브라우저 소스보기에서 보이지 않음--%>
<%-- <%@page import="java.io.*" %> --%>

<%!
    //JSP선언 시 한줄 주석입니다.
    private String str = "Java World";
    
    /* 
    이것은 여러줄 주석입니다
    public void aaa(){
        
    }
    */
%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0">
<meta charset="UTF-8">
<title>Insert title here</title>
    <!-- style sheet 내부의 코드가 인식되지 않는 브라우저를 위해 기본적으로 주석을 하고 내부 코드를 작성합니다. -->
    <style type='text/css'>
        <!--
        .myfont { font-color: #ff0000;}
        -->
    </style>
    
    <!-- java script 내부의 코드가 인식되지 않는 브라우저를 위해 기본적으로 주석을 하고 내부 코드를 작성합니다. -->
    <script type="text/javascript">
        <!--
        
        /* 
        java script 내부의 여러줄 주석입니다
        */
        
        function myfunction(){
            //여기는 java script내부의 한줄 주석입니다
        }
        
        //-->
    </script>
</head>
<body>

<%
    //스크립트렛 상에서의 한줄 주석입니다.
    /*
    스크립트 렛 여러줄 주석입니다.
    */
%>

<%-- 식에서는 한줄 주석은 안됩니다.
    <%= str // 한줄주석이 안 됩니다. %>
 --%>

<%= str /* 여러줄은 식에서 됩니다. */ %>

</body>
</html>


2
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="form02_ok.jsp" method="get">
이름: <input type="text" name="name"><br>
주소: <input type="text" name="address"><br>
좋아하는 동물: 
<input type="checkbox" name="pet" value="dog">강아지
<input type="checkbox" name="pet" value="cat">고양이
<input type="checkbox" name="pet" value="pig">돼지
<br>
<input type="submit" value="전송">
</form>
</body>
</html>

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
    request.setCharacterEncoding("utf-8");
%>

<!DOCTYPE html>
<html lang="ko">
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0">
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
이름 : <%= request.getParameter("name") %><br>
주소 : <%= request.getParameter("address") %><br>
좋아하는 동물 : <%-- <%= request.getParameter("pet") %> 동일이름에 값이 여러개일 경우에도 한개값만을 가져옴 --%>
<% /* 동일 이름 여러개 값을 처리하기 위해서 */
    String[] values = request.getParameterValues("pet");
    if(values != null){
        for(int i=0; i< values. length; i++){
            out.println(values[i] + " ");
        }
    }
%>
</body>
</html>


3
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0">
<meta charset="UTF-8">
<title>입력 페이지</title>
<script type="text/javascript">
    var cnt =1;
    
    function addRow(){
        var area = document.getElementById("area");
        var insert = area.insertRow(cnt +1);
        var subject = "<input type= 'text' name='subject' size='8'>";
        insert.insertCell().innerHTML = subject;
        var jumsu = "<input type='text' name='jumsu' size='15'>";
        insert.insertCell().innerHTML = jumsu;
        
        cnt++;
    }
    
    function delRow(){
        if(cnt ==1){
            alert('더이상 삭제 할 수 없습니다.');
            return;
        }
        
        var area = document.getElementById('area');
        area.deleteRow();
        
        cnt--;
    }
    
    function check_form(){
        var name = calc_form.name.value;
        if(name == ''){
            alert('수험자 이름을 기재하세요');
            clac_form.name.focus();
            return false;
        }
        
        if(cnt ==1){
            var subject = calc_form.subject.value;
            var jumsu =calc_form.jumsu.value;
            if(subject =='' || jumsu=='' || isNaN(jumsu)){
                alert('과목명이 비었거나 점수가 숫자가 아닙니다.')
                return false;
            }
        }else{
            for(i=0;i<cnt;++i){
                var subject = calc_form.subject[i].value;
                var jumsu = calc_form.jumsu[i].vlaue;
                if(subject ==''||jumsu==''||isNaN(jumsu)){
                    alert('과목명이 비었거나 점수가 숫자가 아닙니다.')
                    return false;
                }
            }
        }
        
        return true;
    }
</script>
</head>
<body>
    <section>
        <h2>성적 계산</h2>
        <!-- submit 버튼 클릭 시 form 유효성 체크를 진행한다. -->
        <form name="calc_form" method="post" action="score01_ok.jsp" onsubmit="return check_from()">
            이름: <input type="text" name="name"><br>
            <h3>< 과목과 점수 ></h3>
            <input type='button' value='추가' onclick='addRow()'>
            <input type='button' value='삭제' onclick='delRow()'>
            <input type='submit' value='계산'><br><br>
            <table id='area' width='300' border='1'>
                <tr>
                    <th width='100'>과목</th>
                    <th width='200'>점수</th>
                </tr>    
                <tr>
                    <!-- 하나의 Row를 생성해 둔다 -->
                    <td><input type="text" name='subject' size='8'></td>
                    <td><input type="text" name='jumsu' size='15'></td>
                </tr>
            </table>
        </form>
    </section>
</body>
</html>

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
    request.setCharacterEncoding("utf-8");

    String name= request.getParameter("name");
    String[] subject = request.getParameterValues("subject");
    String[] jumsu = request.getParameterValues("jumsu");
    
    double total = 0.0;
    double avg = 0.0;
%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0">
<meta charset="UTF-8">
<title>계산 결과</title>
</head>
<body>
    <%= name %>님 <br><br>
    시험과목:
    <%
    try{
        for(int i = 0; i<subject.length; ++i){
            out.println(subject[i]);
            if(i != subject.length -1) out.println(", ");
            total += Double.parseDouble(jumsu[i]);
        }
        avg = total/subject.length;
    }catch(Exception ex){
        response.sendError(512, "연산 시 오류가 발생했습니다.");
        return;
    }
    %><br>
    <!-- 계산 결과를 출력한다. -->
    총합 : <%= total %>점, 평균 : <%= avg %>점
</body>
</html>


4
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.Enumeration" %>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0">
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
    /* 클라이언트 정보가 header에 숨겨져서 온다 */
    Enumeration headers = request.getHeaderNames();
    while(headers.hasMoreElements()){
        String headerName = (String)headers.nextElement();
        String headerValue = request.getHeader(headerName);
        
        out.println(headerName +" : "+ headerValue + "<br>");
    }
%>
</body>
</html>


5

  • 해더 정보 입력
  • 리다이렉트 (재전송 - 페이지를 자동으로 옮겨주는 기능)
    • 자바스크립트에서 location.href와 같음

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
    //rediect 다른 페이지로 이동
    //현 페이지를 지나가고 싶을 경우 사용 : ex) 로그인 페이지
    response.sendRedirect("http://www.naver.com");
%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0">
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

</body>
</html>


6
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0">
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
    //out 객체
    out.print("Hello JSP");
    out.print("Hello JSP");
    out.newLine();  //브라우저 창에서는 엔터키 없음 //소스보기 상에서 엔터키
    out.println("Hello JSP");
    out.println("Hello JSP");
    
    //out → buffer(임시저장공간) → client 브라우저에 전송
%>
</body>
</html>


7
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%--버퍼크기가 작으면 0kb 즉시 보냄(디폴트 8KB),  autoFlush="false" 일경우 버퍼가 차면 에러가 발생함 --%>
<%@ page buffer="1kb" autoFlush="false" %>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0">
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
버퍼 크기 : <%= out.getBufferSize()     %><br>
나머지 버퍼 크기 : <%= out.getRemaining()    %><br>
<%
    //autoFlush="false" 경우 버퍼가 차면 에러 발생
    for(int i = 0; i<1000; i++){
        out.println("1234");
    }
%>
</body>
</html>


<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%--버퍼크기가 작으면 0kb 즉시 보냄(디폴트 8KB),  autoFlush="false" 일경우 버퍼가 차면 에러가 발생함 --%>
<%@ page buffer="1kb"%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0">
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
버퍼 크기 : <%= out.getBufferSize()     %><br>
나머지 버퍼 크기 : <%= out.getRemaining()    %><br>
<%
    for(int i = 0; i<1000; i++){
        out.println("1234");
    }
%>
</body>
</html>


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

남은 버퍼 : <%= out.getRemaining() %><br>
Hello Buffer<br>
Hello Buffer<br>
Hello Buffer<br>
Hello Buffer<br>
Hello Buffer<br>
Hello Buffer<br>
남은 버퍼 : <%= out.getRemaining() %><br>
<% out.flush(); //남아있는 버퍼를 client에게 보내고 비움 %> 
남은 버퍼 : <%= out.getRemaining() %><br>
Hello Buffer<br>
Hello Buffer<br>
<% out.clearBuffer(); //남아있는 버퍼를 보내지 않고 지움 %><br>
Hello Buffer<br>
Hello Buffer<br>
<% 
    out.close(); //JSP를 종료함  뒤의 코드는 클라이언트에게 전송 안됨
    
    for(int i=0; i<5; i++){
        out.println("1213");
    }
%><br>
Hello Buffer<br>
Hello Buffer<br>


9
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0">
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
    //pageContext
    //기본 객체 원래 클래스 접근하는 메서드를 제공
    //getRequest() / getRespose() / getOut() / getSession() ...
    
    //새로운 이름으로 객체접근
    JspWriter out2 = pageContext.getOut();
    out2.println("새로운 출력 <br>");
    
    //새로만든 것과 원래의 객체 비교
    HttpServletRequest httpRequest = (HttpServletRequest)pageContext.getRequest();
    out2.println("비교 = " + (request == httpRequest));
%>
</body>
</html>


10. 초기화 파일만들기

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>JSPEx03</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <context-param>
      <description>로깅 여부</description>
      <param-name>logEnalbled</param-name>
      <param-value>true</param-value>
  </context-param>
  <context-param>
      <description>디버깅 레빌</description>
      <param-name>debugLevel</param-name>
      <param-value>5</param-value>
  </context-param>
  
</web-app>

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@page import="java.util.Enumeration"%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0">
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
    //Webproject 초기화 파일 가져오기
    //Webproject 시작부터 끝까지 남아있는 변수 // 스태틱 변수와 비슷함
    Enumeration initParamEnum = application.getInitParameterNames();
    while(initParamEnum.hasMoreElements()){
        String initParamName = (String)initParamEnum.nextElement();
        String initParamValue = application.getInitParameter(initParamName);
        
        out.println(initParamName + " : "+ initParamValue + "<br>");
    }
%>
</body>
</html>


11
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0">
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
서버 정보 : <%=  //톰캣버전 나옴
                application.getServerInfo() %><br>
서블릿 버전 : <%= //서블릿 버전 톰캣별로 지원버전 차이가 남
                application.getMajorVersion() %><br>
실행 경로 : <%= application.getRealPath(".") %>
<%-- C:\java\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\JSPEx03 이클립스에서 실했했을경우 --%>
</body>
</html>

이클립스에서 실행했을 경우 이클립스가 원래 경로에서 파일을 복사, 다른경로에 있는 복사 파일을 실행하기 때문에 경로가 달라짐



12.
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>JSPEx03</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <context-param>
      <description>로깅 여부</description>
      <param-name>logEnalbled</param-name>
      <param-value>true</param-value>
  </context-param>
  <context-param>
      <description>디버깅 레빌</description>
      <param-name>debugLevel</param-name>
      <param-value>5</param-value>
  </context-param>
  
</web-app>


<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@page import="java.util.Enumeration"%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0">
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
    //Webproject 초기화 파일 가져오기
    //Webproject 시작부터 끝까지 남아있는 변수 // 스태틱 변수와 비슷함
    Enumeration initParamEnum = application.getInitParameterNames();
    while(initParamEnum.hasMoreElements()){
        String initParamName = (String)initParamEnum.nextElement();
        String initParamValue = application.getInitParameter(initParamName);
        
        out.println(initParamName + " : "+ initParamValue + "<br>");
    }
%>
</body>
</html>


13. pooling : 데이터베이스 연결을 톰캣
<?xml version="1.0" encoding="utf-8" ?>
<Context>
    <!-- 톰캣 환경 설정 -->
    <Resource
        name="jdbc/oracle1"
        auth="Container"
        type="javax.sql.DataSource"
        driverClassName="oracle.jdbc.driver.OracleDriver"
        url="jdbc:oracle:thin:@Localhost:1521:orcl"
        username="scott"
        password="tiger"
        maxTotal="20"
        maxWaitMillis="5000" />
    <Resource
        name="jdbc/oracle2"
        auth="Container"
        type="javax.sql.DataSource"
        driverClassName="oracle.jdbc.driver.OracleDriver"
        url="jdbc:oracle:thin:@192.168.0.51:1521:orcl"
        username="scott"
        password="tiger"
        maxTotal="20"
        maxWaitMillis="5000" />
</Context>


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

<%-- 톰캣 안의 pooling과 연결하는 데이터소스 --%>
<%-- pooling: 데이터베이스와 직접연결을 하는 객체가 많을 수록 데이터베이스 부담이 생김, 
      따라서 톰캣안에 정해진 갯수를 데이터베이스와 연결해 놓고 객체는 톰캣과 연결하여 돌아가면서 쓰는 방식 --%>
<%@ page import="javax.naming.Context" %>
<%@ page import="javax.naming.InitialContext" %>
<%@ page import="javax.naming.NamingException" %>
<%@ page import="javax.sql.DataSource" %>
    
<%-- 드라이버 매니저 사용 안함 <%@ page import="java.sql.DriverManager" %> --%>
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.PreparedStatement" %>
<%@ page import="java.sql.ResultSet" %>
<%@ page import="java.sql.SQLException" %>
<%
    Connection conn = null;
    PreparedStatement pstmt = null;
    ResultSet rs = null;
    
    StringBuffer result = new StringBuffer();
    try{
        /* 기존 방식
        String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
        String user = "scott";
        String password = "tiger";
        
        Class.forName("oracle.jdbc.driver.OracleDriver");
        conn = DriverManager.getConnection(url, user, password); */
        
        Context initCtx = new InitialContext(); //tomcat 환경설정에 접근
        Context envCtx = (Context)initCtx.lookup("java:comp/env");  
        DataSource dataSource = (DataSource)envCtx.lookup("jdbc/oracle2"); //jdbc/oracle2 이름을 검색
        
        //connection pool에 연결
        conn = dataSource.getConnection();
        
        String sql = "select ename, deptno, sal from emp where sal in(select max(sal) from emp group by deptno)";
        pstmt = conn.prepareStatement(sql);
        rs = pstmt.executeQuery();

        result.append("<table border='1'>");
        result.append("<tr><th>ename</th><th>deptno</th><th>sal</th></tr>");
        while(rs.next()){
            result.append("<tr>");
            result.append("<td>"+ rs.getString("ename")+"</td>");
            result.append("<td>"+ rs.getString("deptno")+"</td>");
            result.append("<td>"+ rs.getString("sal")+"</td>");            
            result.append("</tr>");
        }
        result.append("</table>");
        
    }catch(NamingException e){
        result.append("[에러]+ " +e.getMessage());
    }catch(SQLException e){
        result.append("[에러]+ " +e.getMessage());
    }finally{
        if(rs != null) rs.close();
        if(pstmt != null) pstmt.close();
        if(conn != null) conn.close();
    }

%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0">
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- 부서별 최고 급여를 받는 사원명, 부서번호, 급여 출력 -->
<%= result %>
</body>
</html>


14. 주소 검색 미완성
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<%@ page import="javax.naming.Context" %>
<%@ page import="javax.naming.InitialContext" %>
<%@ page import="javax.naming.NamingException" %>
<%@ page import="javax.sql.DataSource" %>
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.PreparedStatement" %>
<%@ page import="java.sql.ResultSet" %>
<%@ page import="java.sql.SQLException" %>

<%
    request.setCharacterEncoding("utf-8");
    String sido = request.getParameter("sido");
    String gugun = request.getParameter("gugun");
    String dong = request.getParameter("dong");
    StringBuffer result1 = new StringBuffer();
    StringBuffer result2 = new StringBuffer();
    StringBuffer result3 = new StringBuffer();
    out.println(sido);
    out.println(gugun);
    out.println(dong);

    
    Connection conn = null;
    PreparedStatement pstmt = null;
    ResultSet rs = null;
    
    try{
        Context initCtx = new InitialContext(); //tomcat 환경설정에 접근
        Context envCtx = (Context)initCtx.lookup("java:comp/env");  
        DataSource dataSource = (DataSource)envCtx.lookup("jdbc/oracle1"); //jdbc/oracle1 이름을 검색
        
        conn = dataSource.getConnection();
        
        //시도 검색후 HTML코드 작성
        if(true){
            String sql = "select distinct sido from zipcode";
            pstmt = conn.prepareStatement(sql);
            rs = pstmt.executeQuery();
              while(rs.next()){
              result1.append("<option value='"+rs.getString("sido")+"'>"+rs.getString("sido")+"</option>");
               }
        }
        
        //구군 검색후 HTML코드 작성
        if(sido!=null){
            String sql2 = "select distinct gugun from zipcode where sido=?";
            pstmt = conn.prepareStatement(sql2);
            pstmt.setString(1, sido);
            rs = pstmt.executeQuery();
              while(rs.next()){
              result2.append("<option value='"+rs.getString("gugun")+"'>"+rs.getString("gugun")+"</option>");
               }
        }
        
        //동 검색후 HTML코드 작성
        if(dong!=null && !dong.equals("")){
            String sql3 = "select * from zipcode where dong like ?";
            pstmt = conn.prepareStatement(sql3);
            pstmt.setString(1, dong+'%');
            
            rs = pstmt.executeQuery();
            result3.append("<table>");
            result3.append("<tr><th>우편번호</th><th>시도</th><th>동</th><th>리</th><th>번지</th></tr>");
            while(rs.next()){
            result3.append("<tr>");
            result3.append("<td>"+"["+rs.getString("zipcode")+"]"+"</td>");
            result3.append("<td>"+rs.getString("sido")+"</td>");
            result3.append("<td>"+rs.getString("dong")+"</td>");
            result3.append("<td>"+(rs.getString("ri")==null?" ":rs.getString("ri"))+"</td>");
            result3.append("<td>"+(rs.getString("bunji")==null?" ":rs.getString("bunji"))+"</td>");
            result3.append("</tr>");
             }
            result3.append("<table>");
        }
        
    }catch(NamingException e){
        result1.append("[에러]+ " +e.getMessage());
    }catch(SQLException e){
        result1.append("[에러]+ " +e.getMessage());
    }finally{
        if(rs != null) rs.close();
        if(pstmt != null) pstmt.close();
        if(conn != null) conn.close();
    }
%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0">
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
    table {border : 1px solid black; border-collapse: collapse;}
    td, th {width: 150px; border: 1px solid black;}
</style>
<script type="text/javascript">
    window.onload = function(){
        //selectbox의 값이 바꼈을 경우 서버에 전송
        document.getElementById('sido').addEventListener('change', function(){
                document.getElementById('frm').submit();
        });
    };
</script>
</head>
<body>
    <form action="zipcode.jsp" method="get" id="frm">
    시도
        <select name='sido' id='sido'>
            <option value='sido'>시도</option>
            <%= result1 %>
        </select>
    구군
        <select name='gugun' id='gugun'>
            <option value='gugun'>구군</option>
            <%= result2 %>
        </select>
    동
    <input type="text" name="dong" id="dong" placeholder="입력">
    <input type="submit" value="전송">
    </form>
<!-- 서버에서 작성한 HTML코드를 출력 -->
<%= result3 %>
</body>
</html>


댓글 없음:

댓글 쓰기