package left;
//インポート
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
import java.util.*;
import left.*;
public class BookSearch extends HttpServlet
{
//index.html(トップページ)から、本や雑誌のリンクから来る
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws IOException, ServletException
{
// 文字エンコードの設定
req.setCharacterEncoding("Shift_JIS");
//検索文字列を取得
String strSearch = req.getParameter("search");
String strType = req.getParameter("booktype");
String strSort = req.getParameter("sort");
ResultSet rs = null;
if(strSearch != null) // 文字列検索
{
if(strSearch.startsWith("_"))
strSearch = "='" + strSearch.substring(1) + "'"; // ランキングまたはランダムリンク
else
strSearch = "like '%" + strSearch + "%'"; // 通常検索
//検索ボックスに入力された文字列をNameに含む列を出す。
rs = SqlControl.ExecuteSelect("select * from left_shohin_m where name " + strSearch + " order by id");
}
else if(strType != null) // ジャンル検索
{
//押されたリンクのTypeのジャンルIDの内容を取得
rs = SqlControl.ExecuteSelect("select * from left_shohin_m where genre=" + strType + " order by id");
}
else // トップメニュー
{
// 商品テーブルを全て取得
String strSql = "select * from left_shohin_m";
if(strSort != null)
{
if(strSort.equals("sale"))
strSql += " order by totalsale desc";
else
strSql += " order by " + strSort;
}
else
strSql += " order by totalsale desc";
rs = SqlControl.ExecuteSelect(strSql);
}
//List作成。Book型のArrayList
ArrayList
try
{
//セレクトした商品をクラスに入れて、
while(rs.next())
{
Book book = new Book();
book.setBookID(rs.getInt("ID"));
book.setBookName(rs.getString("NAME"));
book.setCompany(rs.getString("PUBLISHER"));
String strAuthor = rs.getString("AUTHOR");
book.setWriterName((strAuthor == null) ? "" : strAuthor);
book.setPrice(rs.getInt("PRICE"));
book.setGenreID(rs.getInt("GENRE"));
book.setComment(rs.getString("INFO"));
book.setTotalSale(rs.getInt("totalsale"));
//それをリストに追加していく。
BookList.add(book);
}
}
catch(Exception e)
{
}
// DBを閉じる
SqlControl.CloseDb();
// トップメニュー表示時はリストをランダム抽出した6件にする
if(strSearch == null && strType == null && strSort == null)
{
ArrayList
for(int i = 0; i < 3; i++)
{
if(i < BookList.size())
ranking.add(BookList.get(i));
}
// ランキングをセッションに格納
req.getSession().setAttribute("ranking", ranking);
// 全件検索結果を一時保存リストにコピー
ArrayList
for(int i = 0; i < BookList.size(); i++)
tempList.add(BookList.get(i));
// リストをクリア
BookList.clear();
//6冊を決める。
for(int i = 0; i < 6; i++)
{
//リスト内でランダムで番号を取得
int Random = (int)(Math.random() * tempList.size());
//その番号に登録してある本を、トップに表示する本のリストに入れていく。
BookList.add(tempList.get(Random));
//BookListから、一度トップに置いた本を削除する
tempList.remove(Random);
}
}
//セッションに格納
req.getSession().setAttribute("list", BookList);
// リスト表示時は商品リスト画面へ
if(strSearch != null || strType != null)
req.getRequestDispatcher("../servlet/left.shop_control?link=4").forward(req, res);
else if(strSort != null) // 書籍管理画面へ
req.getRequestDispatcher("../servlet/left.shop_control?link=15").forward(req, res);
}
//index.html(トップページ)から、本や雑誌のリンクから来る
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws IOException, ServletException
{
doGet(req, res);
}
}
0 件のコメント:
コメントを投稿