[2022-08-26] TIL - 21일차
2022. 8. 26. 17:42ㆍGolfzon tech/TIL
😁 Today I Learned
- Controller
- doGet
- doPost
- insert, delete, selectOne, selectAll, searchList
- setAttribute() , getAttribute()
BoardController
package test.com.controller;
import java.io.IOException;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import test.com.model.BoardVO;
@WebServlet({ "/b_insert.do", "/b_update.do", "/b_delete.do", "/b_selectAll.do", "/b_insertOk.do", "/b_updateOk.do",
"/b_deleteOk.do","/b_searchList.do","/b_selectOne.do" })
public class BoardController extends HttpServlet {
private static final long serialVersionUID = 1L;
public BoardController() {
super();
System.out.println("board() 생송자~~~");
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String sPath = request.getServletPath();
System.out.println("doGet : " + sPath);
if (sPath.equals("/b_insert.do")) {
RequestDispatcher rd = request.getRequestDispatcher("board/insert.jsp");
rd.forward(request, response);
} else if (sPath.equals("/b_insertOk.do")) {
response.sendRedirect("b_insert.do");
} else if (sPath.equals("/b_update.do")) {
// 최종 때까지는 이 정도까지 하면 좋다.
if (request.getParameter("num") != null) {
String num = request.getParameter("num");
System.out.println(num);
// BoardVO vo = new BoardVO();
// vo.setNum(Integer.parseInt(num));
// BoardVO vo2 = dao.selectOne(vo);
// 아직 안나옴.
BoardVO vo2 = new BoardVO();
vo2.setNum(Integer.parseInt(num));
vo2.setTitle("제목1");
vo2.setContent("내용1");
vo2.setWriter("작가1");
request.setAttribute("vo2", vo2);
RequestDispatcher rd = request.getRequestDispatcher("board/update.jsp");
rd.forward(request, response);
} else {
response.sendRedirect("b_selectAll.do");
}
} else if (sPath.equals("/b_updateOk.do")) {
// 최종 때까지는 이 정도까지 하면 좋다.
if (request.getParameter("num") != null) {
String num = request.getParameter("num");
System.out.println(num);
System.out.println();
response.sendRedirect("b_selectAll.do");
}
}
else if (sPath.equals("/b_delete.do")) {
RequestDispatcher rd = request.getRequestDispatcher("board/delete.jsp");
rd.forward(request, response);
}
else if (sPath.equals("/b_deleteOk.do")) {
String num = request.getParameter("num");
response.sendRedirect("b_selectAll.do");
}
else if (sPath.equals("/b_selectAll.do")) {
List<BoardVO> vos = new ArrayList<BoardVO>();
for (int i = 0; i < 10; i++) {
BoardVO vo2 = new BoardVO();
vo2.setNum(i + 1);
vo2.setTitle("제목1" + i);
vo2.setContent("내용1" + i);
vo2.setWriter("작가1" + i);
vo2.setWdate(new Timestamp(System.currentTimeMillis()));
vos.add(vo2);
}
request.setAttribute("vos", vos);
RequestDispatcher rd = request.getRequestDispatcher("board/selectAll.jsp");
rd.forward(request, response);
} else if (sPath.equals("/b_searchList.do")) {
String num = request.getParameter("num");
System.out.println(request.getParameter("searchKey"));
System.out.println(request.getParameter("searchWord"));
List<BoardVO> vos = new ArrayList<BoardVO>();
for (int i = 0; i < 5; i++) {
BoardVO vo2 = new BoardVO();
vo2.setNum(i + 1);
vo2.setTitle("제목1" + i);
vo2.setContent("내용1" + i);
vo2.setWriter("작가1" + i);
vo2.setWdate(new Timestamp(System.currentTimeMillis()));
vos.add(vo2);
}
request.setAttribute("vos", vos);
RequestDispatcher rd = request.getRequestDispatcher("board/selectAll.jsp");
rd.forward(request, response);
// response.sendRedirect("b_selectAll.do");
}
else if (sPath.equals("/b_selectOne.do")) {
String num = request.getParameter("num");
BoardVO vo2 = new BoardVO();
vo2.setNum(Integer.parseInt(num));
vo2.setTitle("제목23");
vo2.setNum(Integer.parseInt(num));
vo2.setNum(Integer.parseInt(num));
request.setAttribute("vo2", vo2);
RequestDispatcher rd = request.getRequestDispatcher("board/selectOne.jsp");
rd.forward(request, response);
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
String sPath = request.getServletPath();
System.out.println("doPost : " + sPath);
System.out.println(request.getParameter("title"));
System.out.println(request.getParameter("content"));
if (sPath.equals("/b_insertOk.do")) {
response.sendRedirect("b_selectAll.do");
}
// doGet(request, response); // doGet으로 넘기기 싫으면 지우면
}
}
- 생성자 내부는 딱 한번 실행 된다.
- if 문으로 path 주소를 나눠 실행하게 한다.
BoardVO
package test.com.model;
import java.io.Serializable;
import java.sql.Date;
import java.sql.Time;
import java.sql.Timestamp;
import java.util.Objects;
public class BoardVO implements Serializable{
// BoardVO - num, title, content, writer, wdate(Date 타입)
private int num; // 번호
private String title; // 제목
private String content; // 내용
private String writer; // 작가
// private Date wdate; // 날씨 // 더 길게 뽑으려면 Timestamp 로 바뀜.
private Timestamp wdate;
// 매개변수 없는 생성자.
public BoardVO() {
// System.out.println("BoardVO 빈 생성자.. ");
}
// 매개변수 있는 생성자.
public BoardVO(int num, String title, String content, String writer, Timestamp wdate) {
super();
this.num = num;
this.title = title;
this.content = content;
this.writer = writer;
this.wdate = wdate;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getWriter() {
return writer;
}
public void setWriter(String writer) {
this.writer = writer;
}
public Timestamp getWdate() {
return wdate;
}
public void setWdate(Timestamp string) {
this.wdate = string;
}
@Override
public int hashCode() {
return Objects.hash(content, num, title, wdate, writer);
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
BoardVO other = (BoardVO) obj;
return Objects.equals(content, other.content) && num == other.num && Objects.equals(title, other.title)
&& Objects.equals(wdate, other.wdate) && Objects.equals(writer, other.writer);
}
@Override
public String toString() {
return num + " " + title + " " + content + " " + writer + " " + wdate;
}
} // end class
- 만들어두었던 VO
- 입력 잘 되어있으면 목록으로 가기나 삭제 하고 삭제 이후에 목록을 보여줄 때. Redirect 를 써주는걸 권장한다…!!!
728x90
'Golfzon tech > TIL' 카테고리의 다른 글
[2022-08-30] TIL - 23일차 (0) | 2022.08.30 |
---|---|
[2022-08-29] TIL - 22일차 (0) | 2022.08.29 |
[2022-08-25] TIL - 20일차 (0) | 2022.08.26 |
[2022-08-24] TIL - 19일차 (2) | 2022.08.24 |
[2022-08-22] TIL - 18일차 (0) | 2022.08.22 |