PHASE2 LOG

主にIT関連・ゲームのログ

JSP◆検索エンジンへリダイレクト

   

Eclipseを使いながら、参考書のサンプルをもとにして

JSPに初めてふれてみましたが引っかかりすぎたのでメモです(笑)

 

JSTLの導入

サンプルを参考にしてみてもどうも思ったように動いてくれず、

teratailで質問してみました!

https://teratail.com/questions/65000

 

なんとJSTLというJSPの拡張タグライブラリを導入しておりませんでした…(;´∀`)

JSTLのjarを探してEclipseに導入してちゃんと動くようになりました!

 

その時の手順がこちらです。

 

[JSTLの導入]

1.jarのインストール

http://tomcat.apache.org/download-taglibs.cgi

上のURLからを以下をDL
・taglibs-standard-impl-1.2.5.jar
・taglibs-standard-spec-1.2.5.jar
・taglibs-standard-jstlel-1.2.5.jar

2.Eclipseの動的webプロジェクト- WEB-INF/lib配下に1.のjarをインポート
3.2.の各jarを右クリックしてビルドパスへ追加
4.対象のjspファイルに以下を追加
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
5.実行

 

JSTLの導入が済んだら実際に動かしてみます!

 

JSPでリダイレクト

 

search.jspというファイルを

検索サービスの選択と、検索ワードを指定するJSPファイルとします。

・search.jsp

<%@ page pageEncoding="UTF-8" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>検索エンジンの活用</title>
</head>
<body>

<h1 style="color:white; background-color:#525D56; font-size:22px;">
検索エンジンの活用</h1>


<form method="GET" action="redirect.jsp">

<table border="0">
	
<tr>
		
<th>検索ワード:</th>


<td><input type="text" name="keywd" size=20 /></td>


<td>
			<select name="eng">
<option value="Y">Yahoo!</option>
<option value="G">Google</option>
			</select>
	</tr>


<tr>
	
<td colspan="2"><input type="submit" value="検索"/></td>

</table>

</form>

</body>
</html>

 

22行目のの<form method=”GET” action=”redirect.jsp”>では

redirect.jspにGETでデータを渡します。

 

次にredirect.jspというファイルを作成し、このファイルにsearch.jspから渡ってきたデータを使用して

検索エンジンにリダイレクトします。

・redirect.jsp

<%@ page pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<c:choose>
	<c:when test="${param['eng'] == 'Y'}">
		<c:out value="${param['keywd']}" />
		<c:redirect url="https://search.yahoo.co.jp/search?ei=UTF-8">
		<c:param name="p" value="${param['keywd']}"/>		
		</c:redirect>		
	</c:when>
	
	<c:when test="${param['eng'] == 'G'}">
		<c:redirect url="https://www.google.co.jp/search">
		<c:param name="q" value="${param['keywd']}"/>		
		</c:redirect>	
	</c:when>
	
	<c:otherwise>
		
<div style="color:Red">検索エンジンの指定が間違っています</div>

	</c:otherwise>
</c:choose>

 

<c:XXXX>というタグが、最初に導入したJSTLによるカスタムタグです。

 

条件分岐を下記の要素で実現しています。

 →  多岐分岐

→  条件式

→  <c:when>のどれにも合致しない場合の処理

また、ページのリダイレクトにはを使用し、

配下のでパラメータを指定しています。

 

実行時の画面キャプチャが以下となります。

 

・yahoo!を選択した場合

・Googleを選択した場合

 

 

スムーズには行きませんでしたが、なんとか動かせました!

GETをPOSTにすると文字化けしたりするのでこれも解消したいところですね(´・ω・`)

今回は以上となります。

 

人気ブログランキング

 - ,