기초공사 (html,css,javascript)

jsp코드들..write.jsp 본문

게시판

jsp코드들..write.jsp

에스프레소라떼 2024. 1. 12. 13:18

//

write.jsp  204p

 

<%@ page language="java" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ page import="java.sql.*" %>

<%

	//글번호 값 얻기.주어지지 않았으면 0으로 설정
	String tmp = request.getParameter("id");
	int id = (tmp != null && tmp.length() > 0) ? Integer.parseInt(tmp):0;
	
	//새글쓰기 모드를 가정하고 변수 초기값 설정
	String reguser = "";
	String btitle = "";
	String content = "";
	String action = "insert.jsp";
	
	//글 번호가 주어졌으면, 글 수정 모드
	if(id > 0){
		
		Class.forName("oracle.jdbc.driver.OracleDriver");//드라이버불러오기
	     	try(
	      		Connection conn = DriverManager.getConnection(
	      			"jdbc:oracle:thin:@192.168.0.54:1525:CDSWT", "PVOICE_TEMP", "temp1234");
				Statement stmt = conn.createStatement();
	           		   
	           		//쿼리실행
	           		ResultSet rs = stmt.executeQuery(
	           			"select * from t_board where id=" +id);
	           	){
	     		if (rs.next()){
	     			//읽어들인 글 데이터를 변수에 저장
	     			reguser = rs.getString("REGUSER");
	     			btitle = rs.getString("BTITLE");
	     			content = rs.getString("CONTENT");
	     			
	     		 // 글 수정 모드일때는 저장버튼을 누르면 update 실행
	     			action = "update.jsp?id=" + id;
	     		}
	     	}catch(Exception e){
	     	   e.printStackTrace();//프로그램 다운 안되고,에러문출력
	        }
	}
%>

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="css/import.css">
    <title>글쓰기양식</title>
</head>
<body>
    <div class="wrapper" style="padding: 20px;">
        <!-- 페이지 타이틀 -->
        <div class="tit-wrap">
            <h2 class="tit">뉴스&미디어</h2>
        </div>
        <!--// 페이지 타이틀 -->
     
        <!-- <form method="post" encType = "multipart/form-data" class="content" action="<%=action%>"> -->
        <form method="post"  action="<%=action%>">
            <p class="guide-txt txt-r">
            	<span class="colr-FF3000">*</span> 표시는 필수 입력 사항입니다.</p>
            	
            <table class="bg-grey write-cont">
                <tr class="frm-inp"> 
                    <th class="lbel-wrap">
                        <div class="lbel-cont">
                            <label for="#" class="lbel">작성자</label> 
                           <!--  <span class="required">필수 입력 사항</span> -->
                        </div>
                    </th>
                    <td class="inp-wrap inp-type01">
                        <input type="text" name="reguser" placeholder="이름을 입력해 주세요." class="inp" 
                        value="<%=reguser%>">
                    </td>
                </tr>
               
                <tr class="frm-inp">
                    <th class="lbel-wrap">
                        <div class="lbel-cont">
                            <label for="#" class="label">제목</label>
                         </div>
                    </th>
                    <td class="inp-wrap inp-type01">
                        <input type="text" name="btitle" placeholder="제목을 입력해 주세요." class="inp" 
                        value="<%=btitle%>">
                    </td>
                </tr>
                
                <tr class="frm-inp">
                   <th class="lbel-wrap">
                        <div class="lbel-cont">
                            <label for="#" class="lbel">내용</label>
                            <span class="required">필수 입력 사항</span>
                        </div>
                    </th>
                    <td class="txtarea-wrap txtarea-type01">
                        <textarea id="content" name="content" placeholder="내용을 입력해 주세요." class="txtarea">
                        <%=content%>
                        </textarea>
                    </td>
                </tr>

                <tr class="frm-inp">
                    <th class="lbel-wrap">
	                    <div class="lbel-cont">
	                         <label for="#" class="lbel">첨부파일</label>
	                      </div>
	                 </th>
	                 <td class="inp-wrap inp-type01 board-flex">
		                 <div class="inp-wrap inp-type01">
	                           <input type="text" placeholder="10MB 이하" class="inp" readonly>
	                      </div>
	                      
	                     <label for="file_inp" class="btn btn-type01 btn-file">
                            <input type="file" id="file_inp">
                            <span class="btn-txt">파일 첨부</span>
	                     </label>   
                     
                     <input type="file" name="fileName">
	                 </td>
	             </tr> 
           </table>
            
            <div class="btn-wrap">
            	<input type="submit" class="btn btn-type01 btn-txt long" value="저장">
            	<input type="button"class="btn btn-type01 white long btn-txt" value="취소" onclick="history.back()">
            </div>
        </form>
    </div>
</body>
</html>

String tmp = request.getParameter("id");

int id = (tmp != null && tmp.length() > 0) ? Integer.parseInt(tmp):0;

 

이코드는 id라는 이름으로 주어진 값이 있는지 먼저 체크하고, 있을 때는 IntegerparseInt를 사용하여 정수로 바꾼다.

하지만 주어진 값이 없으면 글 번호를 0으로 설정한다.

글 번호가 0 인 글은 없으므로, 글 번호가 주어지지 않았다는 뜻으로  0을 사용하는 것이다.

 

(책에서는,

String tmp = request.getParameter("num");

int num = (tmp != null && tmp.length() > 0) ? Integer.parseInt(tmp):0; 이라고 씌여있다.)

 

 

// update.jsp 코드 기존

<%@ page language="java" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ page import="java.sql.*" %>
<%@ page import="java.time.*" %>

<%

	//글번호 값 얻기.주어지지 않았으면 0으로 설정
	String tmp = request.getParameter("id");
	int id = (tmp != null && tmp.length() > 0) ? Integer.parseInt(tmp):0;
	
	//새글쓰기 모드를 가정하고 변수 초기값 설정
	String reguser = "";
	String btitle = "";
	String content = "";
	String action = "insert.jsp";
	
	//글 번호가 주어졌으면, 글 수정 모드
	if(id > 0){
		
		Class.forName("oracle.jdbc.driver.OracleDriver");//드라이버불러오기
	     	try(
	      		Connection conn = DriverManager.getConnection(
	      			"jdbc:oracle:thin:@192.168.0.54:1525:CDSWT", "PVOICE_TEMP", "temp1234");
				Statement stmt = conn.createStatement();
	           		   
	           		//쿼리실행
	           		ResultSet rs = stmt.executeQuery(
	           			"select * from t_board where id=" +id);
	           	){
	     		if (rs.next()){
	     			//읽어들인 글 데이터를 변수에 저장
	     			reguser = rs.getString("reguser");
	     			btitle = rs.getString("btitle");
	     			content = rs.getString("content");
	     			
	     				     			
	     			
	     			// 글 수정 모드일때는 저장버튼을 누르면 update 실행
	     			action = "update.jsp?id=" + id;
	     		}
	     	}catch(Exception e){
	     	   e.printStackTrace();//프로그램 다운 안되고,에러문출력
	        }
	}
%>


<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="css/import.css">
    <title>글쓰기양식</title>
</head>
<body>
    <div class="wrapper" style="padding: 20px;">
        <!-- 페이지 타이틀 -->
        <div class="tit-wrap">
            <h2 class="tit">뉴스&미디어</h2>
        </div>
        <!--// 페이지 타이틀 -->
     
        <form method="post" encType = "multipart/form-data" class="content" action="<%=action%>">
            <p class="guide-txt txt-r">
            	<span class="colr-FF3000">*</span> 표시는 필수 입력 사항입니다.</p>
            	
            <table class="bg-grey write-cont">
                <tr class="frm-inp"> <!-- display:flex -->
                    <th class="lbel-wrap">
                        <div class="lbel-cont">
                            <label for="#" class="lbel">작성자</label> 
                           <!--  <span class="required">필수 입력 사항</span> -->
                        </div>
                    </th>
                    <td class="inp-wrap inp-type01">
                        <input type="text" name="reguser" placeholder="이름을 입력해 주세요." class="inp" 
                        value="<%=reguser%>">
                    </td>
                </tr>
               
                <tr class="frm-inp">
                    <th class="lbel-wrap">
                        <div class="lbel-cont">
                            <label for="#" class="lbel">제목</label>
                         </div>
                    </th>
                    <td class="inp-wrap inp-type01">
                        <input type="text" placeholder="제목을 입력해 주세요." class="inp" value="<%=btitle%>">
                    </td>
                </tr>
                
                <tr class="frm-inp">
                   <th class="lbel-wrap">
                        <div class="lbel-cont">
                            <label for="#" class="lbel">내용</label>
                            <span class="required">필수 입력 사항</span>
                        </div>
                    </th>
                    <td class="txtarea-wrap txtarea-type01">
                        <textarea name="#" id="#" placeholder="내용을 입력해 주세요." class="txtarea">
                        <%=content%>
                        </textarea>
                    </td>
                </tr>

                 <tr class="frm-inp"><!-- flex -->
                    <th class="lbel-wrap">
	                    <div class="lbel-cont">
	                         <label for="#" class="lbel">첨부파일</label>
	                      </div>
	                 </th>
	                 <td class="inp-wrap inp-type01 board-flex">
		                 <div class="inp-wrap inp-type01">
	                           <input type="text" placeholder="10MB 이하" class="inp" readonly>
	                      </div>
	                      
	                     <label for="file_inp" class="btn btn-type01 btn-file">
                            <input type="file" id="file_inp">
                            <span class="btn-txt">파일 첨부</span>
	                     </label>   
                     
                     <!-- <input type="file" name="fileName"> -->
	                 </td>
	             </tr>
           </table>
            
            <div class="btn-wrap">
            	<input type="submit" class="btn btn-type01 btn-txt long" value="저장" onclick="location.href='list.jsp'">
            	<input type="button"class="btn btn-type01 white long btn-txt" value="취소" onclick="history.back()">
            </div>
        </form>
    </div>
</body>
</html>

 

 

// update 수정 후 코드