<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>검색하기</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-Fy6S3B9q64WdZWQUiU+q4/2Lc9npb8tCaSX9FK7E8HnRr0Jz8D6OP9dO5Vg3Q9ct" crossorigin="anonymous"></script>
</head>
<body>
<div class="container">
<h1>검색</h1>
<form method="get" action="/lesson01/quiz08">
action= ""
반드시 / 로 시작해야된다.
안그럴시 /lesson01
이 두번 입력된다.
<div class="form-group d-flex">
<input type="text" class="form-control col-5" name="search" placeholder="검색어를 입력하세요.">
<input type="submit" value="검색" class="btn btn-primary"></input>
</div>
div
로 감싼 뒤 class에 d-flex를 입력한다.form
태그는 서버에 보내는 목적으로 만들어진 특수한 태그이기 때문에 부모 태그로 쓰기보단 div
태그를 따로 쓰는 게 더 안전하다. </form>
</div>
</body>
</html>
package com.test.lesson01;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/lesson01/quiz08")
public class GetMethodQuiz08 extends HttpServlet {
//테스트 주석 추가
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
// 한글깨짐 방지 + content type - response header
response.setCharacterEncoding("utf-8");
response.setContentType("text/html");
// request param 꺼내기
String search = request.getParameter("search");
// 리스트 정의
List<String> list = new ArrayList<>(Arrays.asList("강남역 최고 맛집 소개 합니다.", "오늘 기분 좋은 일이 있었네요.",
"역시 맛집 데이트가 제일 좋네요.", "집에 가는 길에 동네 맛집 가서 안주 사갑니다.", "자축 저 오늘 생일 이에요."));
// 검색 -> 출력
PrintWriter out = response.getWriter();
Iterator<String> iter = list.iterator();
while (iter.hasNext()) {
String line = iter.next();
//1번째 방식
// if (line.contains(search)) {
// String[] words = line.split(search); // 0:앞문장, 1:뒷문장
// out.print(words[0] + "<b>" + search + "</b>" + words[1] + "<br>");
// }
//2번째 방식
if (line.contains(search)) {
line = line.replace(search, "<b>" + search + "</b>");
out.print(line + "<br>");
}
}
}
}