Restaurant Booking System of TEAM4
ホームページで確認する
(Webサーバーがシャットダウンしている場合は接続されません。)
京畿大学AIコンピュータ工学部
クォン・ギヒョン教授2021-1ソフトウェア工学4条
github@ssh10032
github@gabrielyoon7
github@Kimwoojung11
github@yeseul9231
github@heo5620
プロジェクト構造解析画像
https://drive.google.com/file/d/1lWJpXaAh7shmv10t9AoQUbhHaI2ocUy0/view?usp=sharing
.idea
IntelliJ関連設定
コンピュータごとに環境が異なるため、自動的に修正されることが多いです。できるだけならgithubにプッシュしないでください。
lib
Javaプロジェクトで使用する外部ライブラリ(*.jar)をまとめたフォルダです。特定のクラスを使用するには適切なライブラリが必要です。追加された場合はコンパイラに登録する必要があります。
out
コンパイル時に生成される IntelliJ のみの実行フォルダです。サーバーを実行するたびに初期化されます。他のコンピュータでエラーが発生する可能性があります。コンパイルすると、すべてのファイルがoutフォルダに送信され、このフォルダとして機能します。
決してGithubに転送しないでください。エラーの可能性があります。
Web Server を担当します。 Javaで作成します。
このパッケージは、教授が与えられたbooksysプログラムをできるだけ似た構造で適用できるように設計されています。
domain
コントローラー部分です。通常、JSPからControllerを要求し、ここでDAOを呼び出します。
コントローラを要求する部分はWEB-INFで再び言及されます。
//domain 코드 예시
public class TestAction implements Action {
@ Override
public String execute ( HttpServletRequest request , HttpServletResponse response ) throws Exception {
Gson gson = new Gson ();
request . setAttribute ( "getSomething" , gson . toJson ( TestDAO . getInstance (). getSomething ( 1 )));
return "RequestDispatcher:test.jsp" ;
}
}
メインホームページに関連するコントローラです。
persistency
Model部分です。 MariaDBと通信するためのクラスが含まれています。
クエリステートメントを直接作成するクラスです。
教授が与えられたファイルのようにデータベースクラスにクエリを送信するかどうかを心配する必要があるようです。
//DAO클래스 예시
public class TestDAO {
public static TestDAO it ;
public static TestDAO getInstance () { //인스턴스 생성
if ( it == null )
it = new TestDAO ();
return it ;
}
//테스트 메소드
public ArrayList < TestDTO > getSomething ( int num ) {
ArrayList < TestDTO > result = null ;
List < Map < String , Object >> list = null ;
Connection conn = Config . getInstance (). sqlLogin ();
try {
QueryRunner queryRunner = new QueryRunner ();
list = queryRunner . query ( conn , "SELECT * FROM customer WHERE oid=?" , new MapListHandler (), num );
} catch ( SQLException e ) {
e . printStackTrace ();
} finally {
DbUtils . closeQuietly ( conn );
}
Gson gson = new Gson ();
result = gson . fromJson ( gson . toJson ( list ), new TypeToken < List < TestDTO >>() {
}. getType ());
return result ;
}
}
mariaDBから受け取ったDBをJavaクラスに乗せるためのクラスです。
DBテーブル1つにつき1つのDTOが存在すると考えると楽です。
public class TestDTO {
private String oid ;
private String name ;
private String phoneNumber ;
public String getOid () { return oid ;}
public void setOid ( String oid ) { this . oid = oid ;}
public String getName () { return name ;}
public void setName ( String name ) { this . name = name ;}
public String getPhoneNumber () { return phoneNumber ; }
public void setPhoneNumber ( String phoneNumber ) { this . phoneNumber = phoneNumber ;}
}
このプロジェクトのスケルトンを握っているクラスです。絶対に修正しないでください。
修正時に必ず修正理由を共有すること
Viewを担当します。 JSPで作成します。
JSPで使用するcssをまとめたフォルダです。 (ブートストラップ5.0を入れておく)
JSPで使用するjsをまとめたフォルダです。
jsp
JSPは* .do形式のdomainクラスを要求します。
*.do 形式のパスは booksys.properties にあります。
先行する domain クラスで定義された DB を受け取り、JS に加工した後、HTML に挿入します。
//앞선 설정으로 setAttribute 된 자바 변수를 JSP에서 받는 예시 (JQuery와 JSP문법을 사용하여 데이터를 가공한 후, id에 넘겨서 삽입함.)
< script >
$ ( document ) . ready ( function ( ) {
makeinfo1 ( ) ;
} )
function makeinfo1 ( ) {
var data = < %= getSomething % > ;
var list = $('#testDataPrinter');
var text = '';
text+= ' < div > '+'oid : '+data[0].oid+'/ name : '+data[0].name+'/ phoneNumber : '+data[0].phoneNumber+' div > ';
list.append(text);
}
script >
共通して使うJSPをまとめました。 ex) ヘッダー、フッター
各種基本ページを集めます。
lib
プロジェクトを作ってみたら、何が起こったのかわかりません。
https://leirbag.tistory.com/50
https://leirbag.tistory.com/52の第1節
https://leirbag.tistory.com/46
https://leirbag.tistory.com/47
https://leirbag.tistory.com/48
https://leirbag.tistory.com/56
https://velog.io/@ruddms936/IntelliJ%EB%A1%9C-JSP-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%83 %9D%EC%84%B1
https://withthisclue.tistory.com/entry/JSP-%EC%9B%B9%ED%8E%98%EC%9D%B4%EC%A7%80%EC%97%90%EC% 84%9C-%EA%B6%81%EA%B8%88%ED%96%88%EB%8D%98-do-%ED%8C%8C%EC%9D%BC%EC%9D%98- %EC%9D%98%EB%AF%B8
https://m.blog.naver.com/PostView.nhn?blogId=eroicaplus&logNo=90029919122&proxyReferer=http:%2F%2F210.217.72.119%2F
https://themach.tistory.com/68
https://m.blog.naver.com/acornedu/221128616501