- 디렉티브 <%@
- 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>
댓글 없음:
댓글 쓰기