📌 boardController.java
package contrller;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import kic.mskim.MskimRequestMapping;
import kic.mskim.RequestMapping;
@WebServlet("/board/*")
public class boardController extends MskimRequestMapping {
private BoardDao dao = new BoardDao();
//http://localhost:8088/jsp3/board/writeForm
@RequestMapping("writeForm")
public String writeForm (HttpServletRequest request, HttpServletResponse response) {
String boardid = (String)request.getSession().getAttribute("boardid");
return "/view/board/writeForm.jsp";
}
}
📌 board.java 생성
package model;
import java.util.Date;
public class Board {
private int num;
private String writer;
private String pass;
private String subject;
private String content;
private String file1;
private String boardid;
private Date regdate;
private String ip;
private int grp;
private int grplevel;
private int grpstep;
//getter,setter, toString
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public String getWriter() {
return writer;
}
public void setWriter(String writer) {
this.writer = writer;
}
public String getPass() {
return pass;
}
public void setPass(String pass) {
this.pass = pass;
}
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getFile1() {
return file1;
}
public void setFile1(String file1) {
this.file1 = file1;
}
public String getBoardid() {
return boardid;
}
public void setBoardid(String boardid) {
this.boardid = boardid;
}
public Date getRegdate() {
return regdate;
}
public void setRegdate(Date regdate) {
this.regdate = regdate;
}
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
}
public int getGrp() {
return grp;
}
public void setGrp(int grp) {
this.grp = grp;
}
public int getGrplevel() {
return grplevel;
}
public void setGrplevel(int grplevel) {
this.grplevel = grplevel;
}
public int getGrpstep() {
return grpstep;
}
public void setGrpstep(int grpstep) {
this.grpstep = grpstep;
}
@Override
public String toString() {
return "Board [num=" + num + ", writer=" + writer + ", pass=" + pass + ", subject=" + subject + ", content="
+ content + ", file1=" + file1 + ", boardid=" + boardid + ", regdate=" + regdate + ", ip=" + ip
+ ", grp=" + grp + ", grplevel=" + grplevel + ", grpstep=" + grpstep + "]";
}
}
📌 boardController.java 추가
@RequestMapping("write")
public String write(HttpServletRequest request, HttpServletResponse response) {
String path = getServletContext().getRealPath("/") + "/upload/"; //파일 업로드 위치
String ip = request.getRemoteAddr();
File f = new File(path);
if (!f.exists()) f.mkdirs();
int size = 10 * 1024 * 1024;
MultipartRequest multi = null;
try {
multi = new MultipartRequest(request, path, size, "UTF-8");
} catch (IOException e) {
e.printStackTrace();
}
Board board = new Board();
board.setWriter(multi.getParameter("writer"));
board.setPass(multi.getParameter("pass"));
board.setSubject(multi.getParameter("subject"));
board.setContent(multi.getParameter("content"));
board.setFile1(multi.getFilesystemName("file1"));
board.setIp(request.getLocalAddr());
String boardid = (String)request.getSession().getAttribute("boardid");
if(boardid == null) boardid="1";
board.setBoardid(boardid);
if(board.getFile1() == null) board.setFile1("");
int num = dao.maxnum();
board.setNum(++num);
board.setGrp(num); //답변글 때문에 기입
String msg = "게시물 등록 실패";
String url = request.getContextPath() + "/board/writeForm";
if(dao.insert(board)) { //true
msg = "게시물이 등록되었습니다.";
url = request.getContextPath() + "/board/list?boardid=" + boardid + "&pageNum=1";
}
request.setAttribute("msg",msg);
request.setAttribute("url", url);
return "/view/alert.jsp";
}
📌 BoardDao.java
package model;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class BoardDao {
public int maxnum() {
Connection conn = DBConnection.getConnection();
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
pstmt = conn.prepareStatement("select nvl(max(num),0) from board");
rs = pstmt.executeQuery();
if(rs.next()) {
return rs.getInt(1);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBConnection.close(conn,pstmt,rs);
}
return 0;
}
public boolean insert(Board board) {
Connection conn = DBConnection.getConnection();
PreparedStatement pstmt = null;
String sql = "insert into board (num,writer,pass,subject,"
+ "content,file1,regdate,readcnt,grp,grplevel,"
+ "grpstep,boardid,ip) "
+ " values (?,?,?,?,?,?,sysdate,0,?,?,?,?,?)";
try {
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1,board.getNum());
pstmt.setString(2,board.getWriter());
pstmt.setString(3,board.getPass());
pstmt.setString(4,board.getSubject());
pstmt.setString(5,board.getContent());
pstmt.setString(6,board.getFile1());
pstmt.setInt(7,board.getGrp());
pstmt.setInt(8,board.getGrplevel());
pstmt.setInt(9,board.getGrpstep());
pstmt.setString(10,board.getBoardid());
pstmt.setString(11,board.getIp());
return pstmt.executeUpdate() > 0;
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBConnection.close(conn,pstmt, null);
}
return false;
}
}
'수업(국비지원) > JSP' 카테고리의 다른 글
| [JSP] MVC MODEL2 방식 - 로그인 시 화면 list 변화(kiclayout, layout) (0) | 2023.04.20 |
|---|---|
| [JSP] MVC MODEL2 방식 - 게시글 목록(list) (0) | 2023.04.20 |
| [JSP] MVC MODEL2 방식 - 게시판 만들기(kiclayout, writeForm) (0) | 2023.04.20 |
| [JSP] MVC MODEL2 방식 - 아이디 중복체크(joinForm, idchk) (0) | 2023.04.20 |
| [JSP] MVC MODEL2 방식 - 비밀번호 변경(passwordForm) (0) | 2023.04.20 |