TODAY TOTAL
[JSP] 검색어 입력하면 사이트에 검색하기

 

1.  검색어 입력하면 사이트에 검색하기

 

request.getparameter(); // 이름이 name인 파라미터의 값을 구한다. 존재하지 않을 경우 null을 리턴

response.sendRedirect(); // 특정 처리 후, 또는 특정 조건일 때에 지정한 페이지로 이동하고 싶은 경우 많이 사용되는 것

 

 

form.jsp

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%
    	//요청 정보의 인코딩을 변경 (기본 ISO-8859-1)
    	request.setCharacterEncoding("UTF-8");
    %>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<div style="text-align: center;">
	<h2>검색</h2>
		<form action="search.jsp" method="POST"> <!-- GET 요청 . POST 전송 -->
			<table>
				<colgroup>
					<col style = "width:"20%;" />
					<col />
				</colgroup>
				<tr>
				<th>검색어</th>
				<td><input type="text" name="find" 
				placeholder="검색어 입력"></td>
				</tr>
				<tr>
				<th>검색사이트</th>
				<td>
                <% //<lable> 태그는 사용자 인터페이스 요소의 라벨을 정의할때 사용%>
					<label><input type="radio" name = "site" value = "naver">네이버  </label>
					<label><input type="radio" name = "site" value = "daum">다음  </label>
					<label><input type="radio" name = "site" value = "google">구글  </label>
					<label><input type="radio" name = "site" value = "bing">빙  </label>
				</td>
				<tr>
					<td colspan="2"><button type="submit">찾아보기</button>
					</td>
					</tr>
					
			</table>
		</form>
		</div>
</body>
</html>

 

//name = find가 검색어

//site = 포털사이트를 선택해 어디서 검색할지

 

search.jsp

 

<%@page import="java.net.URLEncoder"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
	String f = request.getParameter("find"); 
	//form에서 "검색어"에서 입력한 파라미터를 f 변수에 저장
	String s = request.getParameter("site");

//form에서 "사이트"에서 입력한 파라미터를 s 변수에 저장
//https://www.google.com/search?q=%EC%98%A4%ED%86%A0%EB%B0%94%EC%9D%B4
//https://search.daum.net/search?w=tot&DA
//
%>

검색어 : <%=f %> <br>
사이트 : <%=s %> <br>
<%
	//URLEncoder.encode(s);
	String encF = URLEncoder.encode(f,"utf-8");
	String url = "";
switch(s) {
<%-- 구글이나 다음,네이버에 '오토바이'라고 검색 할 시 주소창 =까지 복사 -->
<%-- f는 검색할 단어,문장 + f를 해주면 그에 해당하는 검색을 한다. -->
case "naver" : url = "https://search.naver.com/search.naver?query=" + f;
break;
case "daum" : url = "https://search.daum.net/search?w=tot&q=" + f;
break;
case "google" : url = "https://www.google.com/search?q=" +f;
break;
}
<%-- s는 라디오버튼을 선택 해야 하지만 만약 null(선택하지 않으면)
if문이 실행 된다. 
if( !"".equals(url)  ) {
	response.sendRedirect(url);
}else{
	%>
	<h4>윤고랭이</h4>
	<% }%>
</body>
</html>

 


1. getparameter를 사용해 name "site" 불러오기

 

2. switch문을 사용해서 url 복사 후 검색할 단어,문장 붙이기 + f

 

3. if( !"".equals(url)  : s는 라디오 버튼인데

    아무것도 선택하지 않을 때 if문 이 실행된다.

    (url)에 링크 입력 하면 그쪽으로 간다.

  Comments,     Trackbacks