Project0701.zip




어제 안된 메일링

centos mail 깐 것 켜서

su

cd /etc/mail

gedit access 에서 

마지막 줄에 

Connect:192.168.89 RELAY 를 추가.(89.~~~ 다음에 1~255가 나오는 어떤 것이든)

makemap hash /etc/mail/access < /etc/mail/access

service saslauthd start

service sendmail stop

service sendmail start

서비스가 시작되면 윈도우즈 명령프롬프트 켜서

telnet 192.168.89.135 25

ehlo test



220 javaexpert.co.kr ESMTP Sendmail ; Tue, 1 Jul 2014 09:33:39 +0900

ehlo test

501 5.0.0 Invalid domain name

ehlo test

500 5.5.1 Command unrecognized: "ehlo test"

ehlo test

250-javaexpert.co.kr Hello [192.168.89.1], pleased to meet you

250-ENHANCEDSTATUSCODES

250-PIPELINING

250-8BITMIME

250-SIZE 20480000

250-DSN

250-ETRN

250-AUTH GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN

250-DELIVERBY

250 HELP

mail from:admin@javaexpert.co.kr

250 2.1.0 admin@javaexpert.co.kr... Sender ok

rcpt to:jongsoon.bok@gmail.com

250 2.1.5 jongsoon.bok@gmail.com... Recipient ok

data

354 Enter mail, end with "." on a line by itself

subject:mail testing

hi! Good morning~

.

250 2.0.0 s610XdbG005479 Message accepted for delivery

메일보내기 성공.

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

===============================================

게시판

지난번 방명록과 로그인 했던 것 이용해서 server.xml은 아이피 바뀌었으면 바꾸고,

프로시져 추가.

CREATE PROCEDURE selectGesipan()

BEGIN

SELECT idx, name, email, title, writedate, readcount, filename, grp, lev, step

    FROM Gesipan

    ORDER BY grp DESC, step ASC;

END

server.xml 은 그 때 그대로

      <Context docBase="Project" path="/Project" reloadable="true" source="org.eclipse.jst.jee.server:Project">

            <Resource auth="Container" 

                       driverClassName="com.mysql.jdbc.Driver" 

                       maxActive="10" maxIdle="10" 

                       maxWait="10000" name="jdbc/project" 

                       password="javamysql" type="javax.sql.DataSource" 

                       url="jdbc:mysql://192.168.89.135:3306/test" 

                       username="root"/>

      </Context>


GesipanDTO.java

package com.javasoft.libs.model;


public class GesipanDTO {

private int idx;

private String name;

private String passwd;

private String email;

private String title;

private String contents;

private String writedate;

private int readcount;

private String filename;

private int grp;

private int lev;

private int step;

public int getIdx() {

return idx;

}

public void setIdx(int idx) {

this.idx = idx;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getPasswd() {

return passwd;

}

public void setPasswd(String passwd) {

this.passwd = passwd;

}

public String getEmail() {

return email;

}

public void setEmail(String email) {

this.email = email;

}

public String getTitle() {

return title;

}

public void setTitle(String title) {

this.title = title;

}

public String getContents() {

return contents;

}

public void setContents(String contents) {

this.contents = contents;

}

public String getWritedate() {

return writedate;

}

public void setWritedate(String writedate) {

this.writedate = writedate;

}

public int getReadcount() {

return readcount;

}

public void setReadcount(int readcount) {

this.readcount = readcount;

}

public String getFilename() {

return filename;

}

public void setFilename(String filename) {

this.filename = filename;

}

public int getGrp() {

return grp;

}

public void setGrp(int grp) {

this.grp = grp;

}

public int getLev() {

return lev;

}

public void setLev(int lev) {

this.lev = lev;

}

public int getStep() {

return step;

}

public void setStep(int step) {

this.step = step;

}

}


GesipanDAO.java

package com.javasoft.libs.model;


import java.sql.CallableStatement;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.Vector;


public class GesipanDAO {

public static Vector<GesipanDTO> list(Connection conn, 

  int page, int pageSize) throws SQLException{

 int skip = (page - 1) * pageSize;

 String sql = "{call list}";

 CallableStatement cstmt = conn.prepareCall(sql);

 ResultSet rs = cstmt.executeQuery();

 Vector<GesipanDTO> vector = new Vector<GesipanDTO>(1,1);

 for(int i = 0 ; i < skip ; i++) rs.next();

 int count = 0;

 while(rs.next() && count < pageSize){

  ++count;

GesipanDTO gesipan = new GesipanDTO();

gesipan.setIdx(rs.getInt("idx"));

gesipan.setName(rs.getString("name"));

gesipan.setEmail(rs.getString("email"));

gesipan.setTitle(rs.getString("title"));

gesipan.setWritedate(String.valueOf(rs.getDate("writedate")));

gesipan.setReadcount(rs.getInt("readcount"));

gesipan.setFilename(rs.getString("filename"));

gesipan.setGrp(rs.getInt("grp"));

gesipan.setLev(rs.getInt("lev"));

gesipan.setStep(rs.getInt("step"));

vector.addElement(gesipan);

 }

 if(rs != null) rs.close();

 if(cstmt != null) cstmt.close();

 return vector;

}


public static Vector<GesipanDTO> selectAll(Connection conn) 

throws SQLException{

Vector<GesipanDTO> vector = new Vector<GesipanDTO>(1,1);

String sql = "{call selectGesipan}";

CallableStatement cstmt = conn.prepareCall(sql);

ResultSet rs = cstmt.executeQuery();

if(!rs.next())  vector = null;

else{

do{

GesipanDTO gesipan = new GesipanDTO();

gesipan.setIdx(rs.getInt("idx"));

gesipan.setName(rs.getString("name"));

gesipan.setEmail(rs.getString("email"));

gesipan.setTitle(rs.getString("title"));

gesipan.setWritedate(String.valueOf(rs.getDate("writedate")));

gesipan.setReadcount(rs.getInt("readcount"));

gesipan.setFilename(rs.getString("filename"));

gesipan.setGrp(rs.getInt("grp"));

gesipan.setLev(rs.getInt("lev"));

gesipan.setStep(rs.getInt("step"));

vector.addElement(gesipan);

}while(rs.next());

}

if(rs != null) rs.close();

if(cstmt != null) cstmt.close();

return vector;

}

public static boolean insert(Connection conn, GesipanDTO gesipan)

throws SQLException{

boolean flag = false;

StringBuffer sb = new StringBuffer();

sb.append("INSERT INTO Gesipan(name, passwd, email, title,");

sb.append("contents, writedate, readcount, filename, grp, lev, step)  ");

sb.append("VALUES (?,?,?,?,?,CURRENT_DATE, 0, ?, 0,0,0)"); 

PreparedStatement pstmt = conn.prepareStatement(sb.toString());

pstmt.setString(1, gesipan.getName());

pstmt.setString(2, gesipan.getPasswd());

pstmt.setString(3, gesipan.getEmail());

pstmt.setString(4, gesipan.getTitle());

pstmt.setString(5, gesipan.getContents());

pstmt.setString(6, gesipan.getFilename());

int cnt = pstmt.executeUpdate();

if(cnt > 0) flag = true;

if(pstmt != null) pstmt.close();

String sql = "SELECT MAX(idx) FROM Gesipan";

Statement stmt = conn.createStatement();

ResultSet rs = stmt.executeQuery(sql);

rs.next();

int max = rs.getInt(1);  //가장 큰 번호이자 방금 입력된 번호

if(rs != null) rs.close();

if(stmt != null) stmt.close();

sql = "UPDATE Gesipan SET grp = ? WHERE idx = ?";

pstmt = conn.prepareStatement(sql);

pstmt.setInt(1, max);

pstmt.setInt(2, max);

pstmt.executeUpdate();

if(pstmt != null) pstmt.close();

//conn.commit();

return flag;

}

}



InsertService.java

package com.javasoft.libs.controller;


import java.sql.Connection;

import java.sql.SQLException;


import com.javasoft.libs.model.BoardDAO;

import com.javasoft.libs.model.BoardDTO;

import com.javasoft.libs.model.DBClose;

import com.javasoft.libs.model.DBConnection;

import com.javasoft.libs.model.GesipanDAO;

import com.javasoft.libs.model.GesipanDTO;

import com.javasoft.libs.model.MemberDAO;

import com.javasoft.libs.model.MemberDTO;


public class InsertService {

public boolean boardInsert(BoardDTO board){

boolean flag = false;  

Connection conn = null;

try {

conn = DBConnection.getConnection();

flag = BoardDAO.boardInsert(conn, board);

} catch (SQLException e) {

System.out.println(e.toString());

} finally{

DBClose.close(conn);

}

return flag;

}

public boolean insert(MemberDTO member){

boolean flag = false;  

Connection conn = null;

try {

conn = DBConnection.getConnection();

flag = MemberDAO.insert(conn, member);

} catch (SQLException e) {

System.out.println(e.toString());

} finally{

DBClose.close(conn);

}

return flag;

}

public boolean insert(GesipanDTO gesipan){

boolean flag = false;

Connection conn = null;

try{

conn = DBConnection.getConnection();

flag = GesipanDAO.insert(conn, gesipan);

}catch(SQLException ex){

System.out.println(ex.toString());

}finally{

DBClose.close(conn);

}

return flag;

}

}


SelectService.java

package com.javasoft.libs.controller;


import java.sql.Connection;

import java.sql.SQLException;

import java.util.Vector;


import com.javasoft.libs.model.BoardDAO;

import com.javasoft.libs.model.BoardDTO;

import com.javasoft.libs.model.DBClose;

import com.javasoft.libs.model.DBConnection;

import com.javasoft.libs.model.GesipanDAO;

import com.javasoft.libs.model.GesipanDTO;

import com.javasoft.libs.model.MemberDAO;

import com.javasoft.libs.model.MemberDTO;

import com.javasoft.libs.model.ZipcodeDAO;

import com.javasoft.libs.model.ZipcodeDTO;


public class SelectService {


public MemberDTO getMember(String userid){

MemberDTO member = null;

Connection conn = null;

try {

conn = DBConnection.getConnection();

member = MemberDAO.getMember(conn, userid);

} catch (SQLException e) {

System.out.println(e.toString());

} finally{

DBClose.close(conn);

}

return member;

}

public String getUserName(String userid){

String name = null;

Connection conn = null;

try {

conn = DBConnection.getConnection();

name = MemberDAO.getUserName(conn, userid);

} catch (SQLException e) {

System.out.println(e.toString());

} finally{

DBClose.close(conn);

}

return name;

}

public int checkMember(String userid, String passwd) {

int number = 0;

Connection conn = null;

try {

conn = DBConnection.getConnection();

number = MemberDAO.memberLogin(conn, userid, passwd);

} catch (SQLException e) {

System.out.println(e.toString());

} finally{

DBClose.close(conn);

}

return number;

}

public boolean isMember(String userid){

boolean isExists = true;  //사용할 수 없음.

Connection conn = null;

try {

conn = DBConnection.getConnection();

isExists = MemberDAO.isMember(conn, userid);

} catch (SQLException e) {

System.out.println(e.toString());

} finally{

DBClose.close(conn);

}

return isExists;

}

public Vector<ZipcodeDTO> select(String keyword){

Vector<ZipcodeDTO> vector = null;

Connection conn = null;

try {

conn = DBConnection.getConnection();

vector = ZipcodeDAO.select(conn, keyword);

} catch (SQLException e) {

System.out.println(e.toString());

} finally{

DBClose.close(conn);

}

return vector;

}

/////////////////////////////Board////////////////////////////////

public int getPageCount(int pageSize){

Connection conn = null;

int pagecount = 0;

try {

conn = DBConnection.getConnection();

pagecount = BoardDAO.getPageCount(conn, pageSize);

} catch (SQLException e) {

System.out.println(e.toString());

} finally{

DBClose.close(conn);

}

return pagecount;

}

public Vector<BoardDTO> glist(int page, int pageSize){ //list목록 만들기

Vector<BoardDTO> vector = null;

Connection conn = null;

try {

conn = DBConnection.getConnection();

vector = BoardDAO.list(conn, page, pageSize);

} catch (SQLException e) {

System.out.println(e.toString());

} finally{

DBClose.close(conn);

}

return vector;

}


public BoardDTO selectBoard(int num){

BoardDTO board = null;

Connection conn = null;

try {

conn = DBConnection.getConnection();

board = BoardDAO.selectBoard(conn, num);

} catch (SQLException e) {

System.out.println(e.toString());

} finally{

DBClose.close(conn);

}

return board;

}


////////////////////////////Gesipan////////////////////////////////

public Vector<GesipanDTO> list(){

Vector<GesipanDTO> vector = null;

Connection conn = null;

try {

conn = DBConnection.getConnection();

vector = GesipanDAO.selectAll(conn);

} catch (SQLException e) {

System.out.println(e.toString());

} finally{

DBClose.close(conn);

}

return vector;

}

//페이지 뿌리는 것은 나중에 ~ ~!!

public int getGesipanPageCount(int pageSize){

 Connection conn = null;

 int pagecount = 0;

 try {

  conn = DBConnection.getConnection();

  pagecount = BoardDAO.getPageCount(conn, pageSize);

 } catch (SQLException e) {

  System.out.println(e.toString());

 } finally{

  DBClose.close(conn);

 }

 return pagecount;

}

}


FileExtension.java

package com.javasoft.libs.util;


public class FileExtension {

public static String getExtension(String filename){

String extension = null;

if(filename.endsWith(".doc") || filename.endsWith(".docx")){

extension = "word";

}else if(filename.endsWith(".ppt") || filename.endsWith(".pptx")){

extension = "ppt";

}else if(filename.endsWith(".xls") || filename.endsWith(".xlsx")){

extension = "excel";

}else if(filename.endsWith(".mdb") || filename.endsWith(".accdb")){

extension = "mdb";

}else if(filename.endsWith(".pdf")){

extension = "pdf";

}else if(filename.endsWith("hwp")){

extension = "hwp";

}else if(filename.endsWith("jpg")){

extension = "jpg";

}else if(filename.endsWith("gif")){

extension = "gif";

}else if(filename.endsWith("png")){

extension = "png";

}else if(filename.endsWith("txt")){

extension = "txt";

}else if(filename.endsWith("xml")){

extension = "xml";

}else if(filename.endsWith("zip")){

extension = "zip";

}else{

extension = "file";

}

return extension;

}

}


write.jsp(파일업로드를 위해 enctype을 꼭 써줘야함)

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Welcome to Javasoft.com, inc.</title>

<link rel="stylesheet" type="text/css" href="../common/style.css">

<script type="text/javascript">

function confirm(){

var f = document.forms[0];

if(!f.name.value){

alert("작성자의 이름이 빠졌습니다.");

f.name.focus();

return false;

}

if(!f.passwd.value){

alert("패스워드가 빠졌습니다.");

f.passwd.focus();

return false;

}

if(f.email.value.indexOf("@") + "" == "-1" ||

f.email.value.indexOf(".") + "" == "-1" ||

f.email.value == ""){

alert("Email 을 다시 작성해 주세요");

f.email.focus();

return false;

}

if(!f.title.value){

alert("글 제목이 빠졌습니다.");

f.title.focus();

return false;

}

if(!f.contents.value){

alert("글 내용이 빠졌습니다.");

f.contents.focus();

return false;

}

f.submit();

}

</script>

</head>

<body topmargin="0">

<table width="760" height="100%" cellpadding="0" cellspacing="0" border="0" align="center">

<tr>

<td colspan="3" width="760" height="100">

<!--  top 시작 -->

<jsp:include page="../common/top_menu.jsp" />

</td>

</tr>

<tr width="760" height="520">

<td width="132" height="520" valign="top">

<!--  left 시작 -->

<jsp:include page="../common/left_menu.jsp" />

</td>

<td width="5" height="520">

</td>

<td width="620" height="520" class="main" valign="top">

<table width="620" cellpadding="0" cellspacing="0" border="0">

<tr>

<td align="center">

<!-- main영역은 좌로부터 40px 더 들여서 한다. -->

<table cellpadding="0" cellspacing="0" border="0">

<tr>

<td width="40">&nbsp;</td>

<td>

     <!-- main 시작 -->

     <form action="write_ok.jsp" method="post" enctype="multipart/form-data">      

      <table border="0" width="600" bordercolor="#c0c0c0" cellpading="0" cellspacing="0" style="padding-top:10px">

      <tr>

      <td>

      <p style="text-align:center"><span style="font-size:2em;font-weight:bold;">게시판 글 쓰기</span></p>

      <table bordercolor="#c0c0c0" width="595" height="300" border="1" cellpading="0" cellspacing="0">

      <tr height="30" bgcolor="#f0f0f0">

      <td width="120" align="right">

      <font color="#000000"><b>작성자</b></font>

      </td>

      <td>

      <input type="text" name="name" maxlength="20" id="name" size="25">

      <font color='red'><b>*</b>필수</font>            

      </td>

      </tr>

      <tr height="30" bgcolor="#f0f0f0">

      <td width="120" align="right">

      <font color="#000000"><b>패스워드</b></font>

      </td>

      <td>

      <input type="password" name="passwd" maxlength="20" id="passwd" size="25">

      <font color='red'><b>*</b>필수</font>(글 수정 및 삭제에 필요)            

      </td>

      </tr>

      <tr height="30" bgcolor="#f0f0f0">

      <td width="120" align="right">

      <font color="#000000"><b>Email</b></font>

      </td>

      <td>

      <input type="text" name="email" maxlength="50" id="email" size="50">

      <font color='red'><b>*</b>필수</font>      

      </td>

      </tr>

      <tr height="30" bgcolor="#f0f0f0">

      <td width="120" align="right">

      <font color="#000000"><b>제목</b></font>

      </td>

      <td>

      <input type="text" name="title" id="title" size="55">

      <font color='red'><b>*</b>필수</font>      

      </td>

      </tr>

      <tr height="30" bgcolor="#f0f0f0">

      <td width="120" align="right">

      <font color="#000000"><b>내용</b></font>

      </td>

      <td>

      <textarea id="contents" name="contents" cols="55" rows="10"></textarea>

      <span style="color:red;font-weight:bold;vertical-align:top">*필수</span>

      </td>

      </tr>

      <tr height="30" bgcolor="#f0f0f0">

      <td width="120" align="right">

      <font color="#000000"><b>파일</b></font>

      </td>

      <td>

      <input type="file" name="filename" id="filename" size="60">      

      </td>

      </tr>      

      <tr height="30" bgcolor="#f0f0f0">

      <td colspan="2" align="center">

      <input type="button" value="작성하기" style='font-size:1.3em' onclick="confirm()">&nbsp;&nbsp;

      <input type="reset" value="취소하기" style='font-size:1.3em'>

      </td>

      </tr>

      </table>

      </td>

      </tr>

      </table>      

     </form>

     <!-- main 끝 -->

</td>

<td width="40">&nbsp;</td>

</tr>

</table>

</td>

</tr>

</table>

</td>

</tr>

</table>

</body>

</html>


wirte_ok.jsp 

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8" errorPage="../error/error.jsp" %>

<jsp:directive.page import="com.javasoft.libs.controller.InsertService" />

<jsp:directive.page import="com.javasoft.libs.model.GesipanDTO" />

<jsp:directive.page import="com.oreilly.servlet.*" />

<jsp:directive.page import="com.oreilly.servlet.multipart.*" />


<jsp:useBean id="is" class="com.javasoft.libs.controller.InsertService" />

<jsp:useBean id="gd" class="com.javasoft.libs.model.GesipanDTO" />


<% request.setCharacterEncoding("utf-8"); %>


<%

String path = application.getRealPath(".") + "/files";

int max = 10 * 1024 * 1024;  //10MB

MultipartRequest mr = new MultipartRequest(

request, path, max, "utf-8", new DefaultFileRenamePolicy());

String name = mr.getParameter("name");

String passwd = mr.getParameter("passwd");

String email = mr.getParameter("email");

String title = mr.getParameter("title");

title = title.replace("<", "&lt;");

title = title.replace(">", "&gt;");

title = title.replace("'", "''");

String contents = mr.getParameter("contents");

contents = contents.replace("<", "&lt;");

contents = contents.replace(">", "&gt;");

contents = contents.replace("'", "''");

contents = contents.replace("\r\n", "<br />");

String filename = mr.getFilesystemName("filename");

if(filename == null) filename = "";

gd.setName(name);

gd.setPasswd(passwd);

gd.setEmail(email);

gd.setTitle(title);

gd.setContents(contents);

gd.setFilename(filename);

boolean flag = is.insert(gd);

if(!flag){

%>

<script>

alert("글 올리기에 실패했습니다.\n다시 입력해 주세요");

history.back();

</script>

<% }else{ %>

<script>

location.href="list.jsp";

</script>

<% } %>



error.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8" isErrorPage="true" %>

<%

String str = "<br /><span style='color:red;font-size:1.2em;font-weight:bold'>";

%>

<div align="center">

<img src="../images/18.jpg" />

<%

if(exception instanceof NullPointerException){

out.print(str);

out.println("Null Pointer Exception" + "</span>");

}else if(exception instanceof java.sql.SQLException){

out.print(str);

out.println("SQL Excepton : " + exception.getMessage() + "</span>");

}else if(exception instanceof java.io.IOException){

out.print(str);

out.println("IO Exception : " + exception.getMessage() + "</span>");

}else{

out.print(str);

out.println("Exception : " + exception.getMessage() + "</span>");

}

%>

</div>


list.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<jsp:directive.page import="com.javasoft.libs.controller.SelectService" />

<jsp:directive.page import="com.javasoft.libs.model.GesipanDTO" />  

<jsp:directive.page import="java.util.Vector" />

<jsp:directive.page import="com.javasoft.libs.util.FileExtension" />  

<jsp:useBean id="ss" class="com.javasoft.libs.controller.SelectService" />


<%

String strPage = request.getParameter("page");

if(strPage == null) strPage = "1";

int current_page = Integer.parseInt(strPage);

int pageSize = 4;

int pageCount = ss.getGesipanPageCount(pageSize);

Vector<GesipanDTO> vector = ss.list();

%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Welcome to Javasoft.com, inc.</title>

<link rel="stylesheet" type="text/css" href="../common/style.css">

</head>

<body topmargin="0">

<table width="760" height="100%" cellpadding="0" cellspacing="0" border="0" align="center">

<tr>

<td colspan="3" width="760" height="100">

<!--  top 시작 -->

<jsp:include page="../common/top_menu.jsp" />

</td>

</tr>

<tr width="760" height="520">

<td width="132" height="520" valign="top">

<!--  left 시작 -->

<jsp:include page="../common/left_menu.jsp" />

</td>

<td width="5" height="520">

</td>

<td width="620" height="520" class="main" valign="top">

<table width="620" cellpadding="0" cellspacing="0" border="0">

<tr>

<td>

<!-- main영역은 좌로부터 40px 더 들여서 한다. -->

<table cellpadding="0" cellspacing="0" border="0" style="margin-top:10px">

<tr>

<td width="20">&nbsp;</td>

<td>

     <!-- main 시작 -->

     <table border = '0' cellspacing = '0' cellpadding='0' width = '600'>

<caption><font color='blue' size='5'><b>게시판</b></font></caption>

<tr>

<td align='left'>[<a href="write.jsp">게시판쓰기</a>]</td>

<td align='right'><font size='3' color='orange'><b>(<%=current_page%>/<%=pageCount%>)</b></font></td>

</tr>

</table>

<table border = '1' bordercolor="white" cellspacing = '0' cellpadding='0' width = '600'>

<thead>

<tr height="40" bgcolor="black">

<th width="7%"><font size="2" color="white">번호</font></th>

<th width="15%"><font size="2" color="white">작성자</font></th>

<th width="46%"><font size="2" color="white">제목</font></th>

<th width="7%"><font size="2" color="white">파일</font></th>

<th width="15%"><font size="2" color="white">날짜</font></th>

<th width="10%"><font size="2" color="white">조회수</font></th>

</tr>

</thead>

<tbody>

<%

if(vector == null || vector.size() == 0){

%>

<tr>

<th colspan="6">글이 없습니다.</th>

</tr>

<% 

    }else{   //글이 있다면

    int start = (current_page - 1) * pageSize;

    int count = 0;

    for(int i = start ; i < vector.size() && count < pageSize  ; i++){

    GesipanDTO gesipan = vector.get(i);

%>      

<tr height="40" onmouseover="this.style.backgroundColor='yellow';"

                       onmouseout="this.style.backgroundColor='white';">

<td align="center"><%=gesipan.getGrp() %></td>

<td align="center">

<% 

String name = gesipan.getName();

String email = gesipan.getEmail();

out.print(name);

%>

</td>

<td align="left">

<%=gesipan.getTitle() %>

</td>

<td align="center">

<%

String filename = gesipan.getFilename();

String extension = null;

if(filename.equals("")){

%>

&nbsp;

<% }else{ 

extension = FileExtension.getExtension(filename);

//endswith 트루 펄스 일 경우 마지막에 그랬니 FileExtension.java에서 확장자 보기

%>

<img src="../images/<%=extension %>.jpg" width="20" height="20" />

<% } %>

</td>

<td align="center">

<%=gesipan.getWritedate() %>

</td>

<td align="center">

<%=gesipan.getReadcount() %>

</td>

</tr>

<%

    count++;

    } //for end

    } //if end

%>

</tbody>

</table>

<p>&nbsp;</p>

<p>&nbsp;</p>

<div style="text-align:center">

<%

out.print("[");

if(current_page == 1) out.print("이전");

else{

out.print("<a style='text-decoration:none' href='list.jsp?page=" + (current_page -1) + "'>");

out.print("이전</a>");

out.println("]");

out.println("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");

for(int i = 1 ; i <= pageCount ; i++){

if(i == current_page){

out.print("<span style='font-size:1.2em;color:red'>");

out.print(i + "</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");

}else{

out.print("<a style='text-decoration:none' href='list.jsp?page=" + i + "'>");

out.print(i);

out.print("</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");

}

}

out.print("[");

if(current_page == pageCount) out.print("다음");

else{

out.print("<a style='text-decoration:none' href='list.jsp?page=" + (current_page +1) + "'>");

out.print("다음</a>");

}

out.println("]");

%>

</div>

     <!-- main 끝 -->

</td>

<td width="40">&nbsp;</td>

</tr>

</table>

</td>

</tr>

</table>

</td>

</tr>

</table>

</body>

</html>



'Java & Oracle' 카테고리의 다른 글

게시판, JSTL  (0) 2014.07.03
게시판 작성자 링크 댓글기능 삭제 전까지  (0) 2014.07.02
자료실(파일업로드), 게시판(하기전세팅)  (0) 2014.06.30
JSTL, 메일 보내기, 파일 업로드  (0) 2014.06.27
EL  (0) 2014.06.26

+ Recent posts