board_list.jsp 에 미리 정의된 검색 처리 기능을 완성해보자!

search.go 서블릿을 만들어보자
=============================코드=============================
package com.board.controller;
import java.io.IOException;
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 com.board.model.BoardDAO;
import com.board.model.BoardDTO;
@WebServlet("/search.go")
public class SearchServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public SearchServlet() {
super();
}
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset = UTF-8");
String search_field = request.getParameter("field");
String search_keyword = request.getParameter("keyword");
BoardDAO dao = BoardDAO.getInstance();
dao.searchList(search_field, search_keyword);
BoardDAO에서
=============================코드=============================
public List<BoardDTO> searchList(String field, String keyword) {
List<BoardDTO> list = new ArrayList<BoardDTO>();
try {
openConn();
if(field.equals("title_cont")) {
sql = "select * from board where board_title like ? or board_cont like ? order by board_no desc";
}else {
sql = "select * from board where " + field + " like ? order by board_no desc";
}
pstmt = con.prepareStatement(sql);
pstmt.setString(1, "%" + keyword + "%");
if(field.equals("title_cont")) pstmt.setString(2, "%" + keyword + "%");
rs = pstmt.executeQuery();
while(rs.next()) {
BoardDTO dto = new BoardDTO();
dto.setBoard_no(rs.getInt("board_no"));
dto.setBoard_writer(rs.getString("board_writer"));
dto.setBoard_title(rs.getString("board_title"));
dto.setBoard_cont(rs.getString("board_cont"));
dto.setBoard_pwd(rs.getString("board_pwd"));
dto.setBoard_hit(rs.getInt("board_hit"));
dto.setBoard_date(rs.getString("board_date"));
dto.setBoard_update(rs.getString("board_update"));
list.add(dto);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
closeConn(rs, pstmt, con);
}
return list;
}
다시 서블릿으로 가자
=============================코드=============================
package com.board.controller;
import java.io.IOException;
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 com.board.model.BoardDAO;
import com.board.model.BoardDTO;
@WebServlet("/search.go")
public class SearchServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public SearchServlet() {
super();
}
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset = UTF-8");
String search_field = request.getParameter("field");
String search_keyword = request.getParameter("keyword");
BoardDAO dao = BoardDAO.getInstance();
// -----------------------------여기서부터 작성-----------------------------
List<BoardDTO> searchList = dao.searchList(search_field, search_keyword);
request.setAttribute("SearchList", searchList);
request.getRequestDispatcher("view/board_search.jsp").forward(request, response);
}
}
=============================코드=============================
<%@page import="com.board.model.BoardDTO"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
List<BoardDTO> search = (List<BoardDTO>)request.getAttribute("SearchList");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<div align = "center">
<hr width = "30%" color = "tomato">
<h3>BOARD 테이블 전체 게시물 목록 페이지</h3>
<hr width = "30%" color = "tomato">
<br/> <br/>
<table border = "1" width = "550">
<tr>
<th>게시글 No.</th> <th>글 제목</th> <th>작성자</th> <th>글 내용</th> <th>작성일자</th>
</tr>
<%
if(search.size() != 0) { // 데이터가 있다면
for(int i = 0; i < search.size(); i ++){
BoardDTO dto = search.get(i);
%>
<tr>
<td> <%=dto.getBoard_no() %> </td>
<td> <%=dto.getBoard_title() %> </td>
<td> <%=dto.getBoard_writer() %> </td>
<td> <%=dto.getBoard_cont() %> </td>
<td> <%=dto.getBoard_date().substring(0,10) %> </td>
</tr>
<% } // for문의 end
}else {
// 회원 리스트가 없는 경우
%>
<tr>
<td colspan = "5" align = "center">
<h3>검색된 목록이 없습니다...</h3>
</td>
</tr>
<% }
%>
</table>
</div>
</body>
</html>
main.jsp에서 실행하자
=============================실행=============================

'김' 입력하고 검색 클릭

제목과 내용에 '김'이 포함된 모든 게시물이 화면에 보여짐!