어제 안된 메일링
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"> </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()">
<input type="reset" value="취소하기" style='font-size:1.3em'>
</td>
</tr>
</table>
</td>
</tr>
</table>
</form>
<!-- main 끝 -->
</td>
<td width="40"> </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("<", "<");
title = title.replace(">", ">");
title = title.replace("'", "''");
String contents = mr.getParameter("contents");
contents = contents.replace("<", "<");
contents = contents.replace(">", ">");
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"> </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("")){
%>
<% }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> </p>
<p> </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(" ");
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> ");
}else{
out.print("<a style='text-decoration:none' href='list.jsp?page=" + i + "'>");
out.print(i);
out.print("</a> ");
}
}
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"> </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 |