ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 3# 게시판 만들기 - 회원가입 기능 추가
    BACK-END/JSP 2020. 7. 23. 14:22

    지금까지 제가 만들어둔 JSP 파일은 이렇습니다.

    선택되지 않은 파일은 게시판과 관련 없는 파일들이니 무시하셔도 괜찮아요.

     

     

    제일 먼저 실행되는 페이지는 guestList.jsp 이고 전역변수와 스타일은 모두 ssi.jsp 에 빼주었습니다. 파일을 만들때마다 긴 코드들을 매번 적어줘야하니 번거로움이 이만저만이 아닙니다. 이런 경우, 한 파일에 import 문을 모두 적어주고 style 도 적어줍니다. 그리고 자주 사용하는 Java코드도 <%%> 태그를 이용해서 적어줍니다.

     

    이 파일을 다른 파일에서 임포트 하면 ssi 파일에 있는 모든 속성들을 사용 할 수 있게 됩니다.

     

    ● ssi.jsp

    더보기
    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    <%@ page import="java.sql.Connection" %>
    <%@ page import="java.sql.Statement" %>
    <%@ page import="java.sql.PreparedStatement" %>
    <%@ page import="java.sql.CallableStatement" %>
    <%@ page import="java.sql.ResultSet" %>
    <%@ page import="java.sql.DriverManager" %>
    <%@ page import="java.util.*"%>
    <%@ page import="java.text.*"%>
    <%! Connection CN;
      Statement ST; 
      PreparedStatement PST;
      CallableStatement CST; 
      ResultSet RS; 
      int Gsabun, Gpay, Ghit, Gtotal, GStotal; 
      String Gname, Gtitle, Gemail, Grownum;
      java.util.Date Gwdate;
      String msg="쿼리문기술"; String submsg="";
      String Gdata;
    %>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>[ssi.jsp]</title>
    <style type="text/css">
    	*{font-size:16pt;}
    	a{ font-size: 16pt; color:black; text-decoration:none;}
    	a:hover{ font-size: 16pt; color:blue; text-decoration:underline;}
    	#pline{ margin-top : 35px; }
    </style>
    </head>
    <body>
    
    <%
    	try{
    	Class.forName("oracle.jdbc.driver.OracleDriver"); //드라이브로드
        String url="jdbc:oracle:thin:@127.0.0.1:1521:XE" ;
        CN=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:XE","system","1234");
        Date now = new Date();
        System.out.println("[ssi.jsp] Oracle Connected at " + now);
    	}catch(Exception ex){System.out.println("Error name :" + ex);}
    	ST=CN.createStatement();
    %>
    
    </body>
    </html>

     

    ● guestList.jsp 페이지 현재 모습

    [실행] guestList

    [수정] guestList -> 제목 클릭 -> guestDetail -> 수정클릭 -> guestEdit -> guestEditSave

    [삭제] guestList -> 제목 클릭 -> guestDetail -> 삭제클릭 -> guestDelete

     

    오늘은 각각의 파일에 제대로 웹사이트 기능을 하게끔 세부적인 내용을 추가해주려고 합니다. 편의상 .jsp 는 생략할게요.

     

    먼저, guestEdit에 있는 사번칸을 조금 수정해주었습니다. 사번값은 데이터베이스에서 절대 변경이 되지 않는 Primary Key 이기 때문에 form 태그의 readonly 속성을 붙여서 사용자가 수정하지 못하도록 했습니다. 사용자가 사번칸을 클릭해도 커서가 사번칸 안으로 들어가지 않고 보기만 할 수 있어요!

     

    guestList 에 삭제 버튼을 테이블 옆에 추가해주었습니다. 기존에는 guestList에서 제목을 클릭하고 guestDetail 들어간 다음에 [삭제] 버튼을 눌러야 했는데, 이런 과정들을 모두 생략해버리고자 guestList에 아예 버튼을 만들어서 guestDelete 를 연결시켜버렸습니다.

     

    ● guestList.jsp 삭제버튼 추가

    ● guestList.jsp 코드

    더보기
    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    <%@ include file ="ssi.jsp"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>[geustList.jsp]</title>
    <style type="text/css">
    </style>
    </head>
    <body> <!-- 이 파일은 단독실행 가능 -->
    <%
    	msg="select count(*) as Record from guest";
    	RS=ST.executeQuery(msg);
    	RS.next();
    	Gtotal = RS.getInt("RECORD");
    %>
    <p id="Pline">
    
    <table width=900 border="1" cellspacing="0">
    <tr align="center">
    	<td colspan="8">레코드 갯수 [<%= Gtotal %>]</td>
    </tr>
    
    <tr bgcolor="yellow">
    <td>행번호</td> <td>사번</td> <td>이름</td> <td>제목</td> <td>이메일</td> <td>날짜</td> <td>조회수</td> <td>삭제</td>
    </tr>
    
    <%
        msg="select rownum rn, g.* from guest g";
        RS=ST.executeQuery(msg);
    	while(RS.next()){
    		//Grownum=RS.getInt("rn");
    		Gsabun=RS.getInt("sabun");
    		Gtitle=RS.getString("title");
    		Gemail=RS.getString("email");
    %>
    <tr>
      <td><%= RS.getInt("rn") %></td>
      <td><%= RS.getInt("sabun") %></td>
      <td><%= RS.getString("name") %></td> 
      <td><a href="guestDetail.jsp?idx=<%=Gsabun%>"><%= RS.getString("title") %></a></td> 
      <td><%= RS.getString("email") %></td>
      <td><%= RS.getDate("wdate") %></td> 
      <td><%= RS.getInt("hit") %></td>
      <td align="center"><input type="button" value="삭제" onclick="location.href='guestDelete.jsp?idx=<%=Gsabun %>'"></td>
    </tr>
    <% } %>
    </table>
    <br>
     <a href="guestWrite.jsp">[회원등록]</a>
     <a href="index.jsp">[메인화면]</a>
     <a href="guestList.jsp">[전체출력]</a>	
    	<p><br>
    </body>
    </html>

    댓글

Today
Designed by Danbee Park.