본문 바로가기

Data Science/Database Programming

Ⅴ FORM-HTML, 2주차 실습

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 속성에 따라 텍스트 입력 박스, 풀다운 메뉴, 라디오 버튼,

   체크 박스 등 입력 양식 정의

- input 태그 속성들

 

- 이름 : <input type="text" name="name" size=15>

 

 

- 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

              -> encodingMS949 입력 -> apply -> run

 

체크, 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