form 관련 태그
form 관련 태그의 필요
- 웹 서버가 CGI(Common Gateway Interface) 프로그램 호출하면서
웹 브라우저에서 입력된 정보를 전달하면 CGI 프로그램은 처리 결과
HTML 문서로 작성하여 웹 브라우저에게 전달

– 브라우저에서 CGI 프로그램이 필요한 정보와 함께 CGI 수행 요청
이 때 <form> 태그를 이용하여 정보 입력 및 서버로 전달
– 서버가 CGI 프로그램 호출하면서 입력 정보 전달
– CGI 프로그램은 처리 결과인 HTML 문서를 서버로 전송
– 서버는 HTML 문서를 브라우저에게 전송
– 브라우저는 HTML문서를 화면에 브라우징
Form 입력 양식 예제
Form 관련 HTML예제
<html>
<body>
<h1> 개인 신상 입력 </h1>
<form action="PersonInfoOut.jsp" accept-charset="UTF-8" >
이름 : <input type="text" name="name" size=15><br>
주소 : <input type="text" name="addr" size=40
maxlenght=200><br>
나이 : <input type="text" name="age" size=10><br>
암호 : <input type="password" name="pass" size=15><br>
전화번호 : <input type="text" name="telno" size=15><p>
<input type="submit" value="신상정보 전달">
<input type="reset" value="reset form">
</form>
</body>
<html>
[ PersonInfoForm.htm ]
Form 입력 처리결과 예제
Form 관련 JSP 예제
<%@ page contentType="text/html;charset=euc-kr" %>
<%! public String now() {
return (new java.util.Date().toString() ); } %>
<% int age = Integer.parseInt( request.getParameter("age") ); %>
<HTML>
<HEAD><TITLE>Personal Information output</TITLE></HEAD>
<BODY>
<% request.setCharacterEncoding("UTF-8"); %>
<center>
<H2>Personal Information output</H2>
날짜와 시간 =: <%= now() %> <br> <br>
<H2> Form1 정보 </H2>
이름 : <%=request.getParameter("name")%> <br>
주소 : <%=request.getParameter("addr")%><br>
나이 : <%=age%>, 내년 나이: <%= age+1 %><br>
암호 : <%=request.getParameter("pass")%><br>
전화번호 : <%=request.getParameter("telno")%> <br>
</center>
</BODY>
</HTML> [ PersonInfoOut.jsp ]
Form 관련 태그
Form 관련 태그: <form>
Form 관련 태그: <input>
input 태그
체크 박스 등 입력 양식 정의
- type 속성의 속성값들

Form 관련 HTML예제
<html
<body>
<h3> 개인 신상 입력 </h3>
<form action="PersonInfoOut.jsp" accept-charset="UTF-8" >
이름 : <input type="text" name="name" size=10><br>
주소 : <input type="text" name="addr" size=40
maxlenght=200><br>
암호 : <input type="password" name="pass" size=8><br>
전화번호 : <input type="text" name="telno" size=12><p>
<input type="submit" value="신상정보 전달">
<input type="reset" value="reset form">
</form>
</body>
<html>
[ PersonInfoForm.htm ]
Form 관련 태그: <input>
Form 관련 HTML예제
<h3> 개인 신상 입력 </h3><hr>
<form action = "result.jsp" method = "post" accept-charset="UTF-8" >
<font face=돋움 size=2>성명</font>
<input type=text name=name> <br>
<font face=돋움 size=2>비밀번호</font>
<input type=password name=password> <br> <hr>
<font face=돋움 size=2>학과</font>
<input type=text name=dept> <br><hr>
<font face=돋움 size=2>기수</font>
<input type=radio name=num value=37 checked>40 <br>
<input type=radio name=num value=38>41 <br>
<input type=radio name=num value=39>42 <br>
<font face=돋움 size=2>동아리</font>
<input type=checkbox name=circle value=탈춤 checked> <br>
<font face=돋움 size=2>edps</font>
<input type=checkbox name=circle value=방송국> <br>
<font face=돋움 size=2>방송국</font>
<input type=checkbox name=circle value=테니스> <br>
</form>
[ PersonInfoForm2.html ]
Form 관련 태그: <input>
<font face=돋움 size=2>파일명</font>
<input type=file name="filename" size=40>
Form 관련 태그: <select>
<h3> 학과 입력 </h3>
<table>
<tr>
<td width=60><h6 >학과</h1>
<td>
<select name=class>
<option value=정보처리>정보처리1부
<option value=컴퓨터통신>컴퓨터통신1부
<option value=멀티미디어>멀티미디어1부
<option value=정보처리2>정보처리2부
<option value=컴퓨터통신2>컴퓨터통신2부
<option value=멀티미디어2>멀티미디어2부
</select>
</td>
</tr>
</table>
[ SelectForm1.htm ]
<h3> 학과 입력 </h3>
<table>
<tr>
<td width=60><h6 >학과</h1>
<td>
<select name=class size=3>
<option value=정보처리>정보처리1부
<option value=컴퓨터통신>컴퓨터통신1부
<option value=멀티미디어>멀티미디어1부
<option value=정보처리2>정보처리2부
<option value=컴퓨터통신2>컴퓨터통신2부
<option value=멀티미디어2>멀티미디어2부
</select>
</td>
</tr>
</table>
[ SelectForm2.htm ]
<form name=comsel accept-charset="UTF-8" >
<h3> 컴퓨터 종류 </h3><p>
<select name="computer">
<option value="xt"> xt 컴퓨터
<option value="at"> at 컴퓨터
<option value="386"> 386 컴퓨터
<option value="486"> 486 컴퓨터
<option value="펜티엄" selected> 펜티엄 컴퓨터
</select><p>
<h3> 주변기기 종류 </h3><p>
<select name="peripheral" size=5 multiple>
<option value="printer" selected> 프린터
<option value="cdrom"> cd-rom 드라이브
<option value="mouse" selected> 마우스
<option value="sound" disabled> 사운드 카드
<option value="scanner"> 스캐너
<option value="mpeg"> mpeg 보드</select>
</form>
[ SelectForm3.htm ]
Form 관련 태그: <textarea>
<form action="nothing.jsp" accept-charset="UTF-8" >
<h3> 편지 쓰기 </h3><p>
<textarea name="mail" rows=10 cols=35>
여기는 편지 내용을 쓰는 곳입니다.
</textarea> <br><br>
<input type="submit" value="Send Mail">
<input type ="reset" value="Reset Mail">
</form>
[ TextareaForm.html ]
Form 관련 양식 – 회원 가입 폼
실습
1주 실습내용 확인하고 수행
1) 다운 받은 JDBC-2주실습.zip 파일의 압축 푼 파일에서
JDBC2 폴더의 프로젝트를 eclipse에서 import하여 클래스들 확인
2) (default package)에서 JDBC 1주 MySQL 및 Oracle 연동 프로그램 실행
∙ MySQL 연동 프로그램:
MySqlDbTest1.java, MySqlDbTest1Remote.java,
MySqlDbTest2.java , MySQLUsingHicariCP.java
∙ Oracle 연동 프로그램:
OraceDbTestRemote1.java, OraceDbTestRemote2.java
MySQL JDBC 드라이버 클래스 메모리 적재 및 연결 확인
▪ JDBC 드라이버 클래스 메모리 적재
∙ Class.forName("com.mysql.cj.jdbc.Driver");
▪ JDBC 연결
∙ Connection con = DriverManager.getConnection(
"jdbc:mysql://" + server + "/" + database, "root“, "onlyroot" );
▪ JDBC 관련 메소드 호출기 반드시 예외 처리를 해야함
MySQL 연동 프로그램 작성과제 (executeQuery() 메소드 이용)
o 다음의 JDBC 연동 프로그램을 (default package)에 작성하기
1) class Pr2_1 작성
∙100번 학생이 수강하는 과목명, 담당교수, 성적 출력
2) class Pr2_2 작성
과목번호별 과목번호, 학생수, 기말 최대, 기말평균 출력
3) class Pr2_3 작성
∙수강 과목수가 3과목 이상인 학생의 학번, 과목수, 기말평균 출력
MySQL 연동 프로그램 작성과제 (executeUpdate() 메소드 이용)
4) class Pr2_4 작성
∙ sno=1300, sname=콩쥐', year=1, dept='컴퓨터'인 학생을 student
테이블에 삽입
5) class Pr2_5
∙ 정기태 학생의 학과를 경영학으로 변경
< 참고 > insert, delete, update 등의 변경문 실행하기
∙ Statement class의 int executeUpdate(String sql) 메소드로 실행
∙ ResultSet 객체가 반환되지 않고 변경된 투플 개수가 반환
int cnt = stmt.executeUpdate(
"insert into student values (1300, '콩쥐', 1, '컴퓨터'); ");
if (cnt >= 1)
System.out.println("성공적으로 삽입되었습니다 ");
else
System.out.println("삽입되지 않았습니다");
2주 실습: JDBC 프로그램을 여러 클래스와 메소드로 작성
o 첨부된 zip 파일의 압축 푼 파일에서 JDBC2 폴더의 프로젝트를
eclipse에서 import하여 클래스들 확인
1) pkg1_static_style 패키지의 프로그램 수행
∙ 특정 학년을 입력하면 그 학년의 학생을 검색하여 출력
∙ SelectYearMySQL_Main 클래스와 DB_Static 클래스로 구성
∙ SelectYearMySQL_Main 클래스
- DB_Static 클래스의 여러 메소드 호출하여 작업 처리
∙ DB_Static 클래스
- JDBC 작업 처리를 위한 필드와 메소드들을 이 클래스에 별도로 작성
- 여러 static 메소드들로 구성됨
∙ 여러 클래스에 배치하고 구성하는 원리에 대한 이해 필요
∙ SelectYearMySQL_Main 클래스 실행하고 결과 확인하라.
2) pkg2_object_style 패키지의 프로그램 수행
∙ pkg1_static_style 패키지의 static 필드와 메소드를 객체 필드와
객체 메소드로 작성한 객체 버전이 pkg2_object_style
∙ 학년 입력하면 그 학년의 학생 검색하여 출력
∙ SelectYearMySQL_Main 클래스
- main()에서 DB_Object 클래스 객체 생성 후 메소드 호출로 작업 수행
∙ DB_Object 클래스
- JDBC 작업 처리를 위한 필드와 메소드들을 이 클래스에 별도로 작성
- 여러 객체 메소드들로 구성됨
∙ SelectYearMySQL_Main 클래스 실행하고 결과 확인하라.
3) pkg3_Insert_select_student 패키지의 프로그램 수행
∙ 학생 투플 입력하여 저장, 학생 검색 등 2가지 기능 제공
∙ InsertSelect_Main 클래스: 메뉴 선택하여 특정 메뉴 수행하는 메소드들 작성
∙ DB 클래스: JDBC 작업 처리를 위한 메소드 작성
∙ InsertSelect_Main 클래스 실행하고 결과 확인하라.
4) pkg4_university_staff 패키지의 프로그램 수행
∙ 전형적인 JDBC 프로그래밍 구조로 작성
∙ UnivStaff_Main 클래스: UnivStaff 클래스의 객체 생성하여 객체의
doTask() 메소드 호출
∙ UnivStaff 클래스: 학생 등록, 모든 학생 검색, 특정 학과 학생 검색, 입력된
학번 학생 삭제 등 4가지 업무 선택하여 처리하기 위한 메소드 작성
∙ DB 클래스: 업무 처리에 필요한 JDBC 관련 메소드 작성
★ 참고사항: 컨솔 뷰에서 한글 입력시 한글 깨어지면
run -> run configuration -> common tab
-> encoding에 MS949 입력 -> apply -> run
실습하기
1) UnivStaff_Main 클래스 실행하고 결과 확인하라.
2) 모든 학생의 학년을 1 증가시키는 메뉴 “5) increase syear” 추가하기 위한
방안을 고안하라.
'Data Science > Database Programming' 카테고리의 다른 글
Ⅶ PreparedStatement, 3주차 실습 (0) | 2024.04.09 |
---|---|
Ⅵ SQL 질의 실행과 결과 반환 (0) | 2024.04.04 |
Ⅳ JDBC : Java Database Connectivity, Test (0) | 2024.03.21 |
Ⅲ Java (0) | 2024.03.19 |
Ⅱ MySQL (0) | 2024.03.12 |