📄 book_query.java
字号:
package ksnb;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import java.sql.*;
public class book_query extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=gb2312";
ResultSet rs;
String Id; //书Id
String Catalog_Id; //分类id
String Name; //书名
String Author; //作者
String Price; //价格
String Book_Concern; //出版社
String discount; //会员打折率
String ISBN; //书的ISBN号
String Keywords; //关键字
String Importance_Show; //推荐级别
String Click; //被点击次数
String Purchase_num; //被购次数
String Date_time; //上架时间
String Page_Count; //页数
String Counts; //库存量
String Description;
//Initialize global variables
public void init() throws ServletException {
}
//Process the HTTP Post request
public void doPost(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
response.setContentType(CONTENT_TYPE);
String button = request.getParameter("button");
String BFG=request.getParameter("ground");
String lofty_query = "lofty_query";//高级查询
String query = "query"; //普通查询
String BG="background"; //后台
String FG="foregrounding"; //foregrounding前台操作
Collection c=new ArrayList();
transform tf=new transform();
boolean dd;
HttpSession session=request.getSession(true);
if (button.equals(query))
{
Querybooks qb=new Querybooks();
String keyword = request.getParameter("keyword");
keyword=tf.GBK(keyword);
String selectsql ="select * from Shop_Product_Info where (Name like '%" + keyword +"%') or (Author like '%" + keyword +"%' ) or (Book_Concern like '%" + keyword + "%' )";
try
{
System.out.println(selectsql); //输出查询时给SQL的语句
rs = qb.query(selectsql);
if (BFG.equals(FG)) //判断是否为后台
{
System.out.println(selectsql);
while (rs.next())
{ //此处必须使用while,使用if,只以可读取一条记录
String id=String.valueOf(rs.getInt("id"));
c.add(id);
Name = rs.getString("Name");
c.add(Name);
System.out.println("++++++++++++++++++++++++");
System.out.println(selectsql);
Author = rs.getString("Author");
c.add(Author);
Book_Concern = rs.getString("Book_Concern");
c.add(Book_Concern);
Price = String.valueOf(rs.getFloat("Price"));
c.add(Price);
}
}
}
catch (Exception e)
{
System.out.println(e.toString());
}
request.setAttribute("cc", c);
if (BFG.equals(FG)) //转发到前台用户的Book_Message.jsp
{
RequestDispatcher rd = request.getRequestDispatcher("Book_Message.jsp"); //实行转发
rd.forward(request, response);
}
if(BFG.equals(BG))
{
RequestDispatcher rd = request.getRequestDispatcher("BG_bookmessage.jsp"); //实行转发
rd.forward(request, response);
}
qb.close();
}
if(button.equals(lofty_query))
{
//??如何判断一个没有任何值的String 对象.可以尝试先生成一个同样没有任何值的对象,再用equals进行匹配
String Name=request.getParameter("Name"); //书名
Name=tf.GBK(Name.trim());
String Author=tf.GBK (request.getParameter("Author").trim()); //作者
String Book_Concern=tf.GBK(request.getParameter("Book_Concern").trim()); //出版社
float min_Price=Float.parseFloat(tf.GBK(request.getParameter("min_Price").trim()));//最小价格
if(min_Price<1)
{
min_Price=1;
}
float max_Price=Float.parseFloat(tf.GBK(request.getParameter("max_Price").trim())); //最大价格
if(max_Price<min_Price)
{
max_Price=10000;
}
int Catalog_Id=Integer.parseInt(tf.GBK(request.getParameter("Catalog_Id").trim())); //分类
int Page_Count=Integer.parseInt(tf.GBK(request.getParameter("Page_Count").trim())); //页数
if(Page_Count<30)
{
Page_Count=10000;
}
String selectsql="select * from Shop_Product_Info where ";
selectsql=selectsql+"Name like '%"+Name+"%' "+"and Author like'%" + Author +"%' "+"and Book_Concern like'%" + Book_Concern +"%' "+" and Page_Count<="+Page_Count;
selectsql=selectsql+" and Price>="+min_Price+" and price<="+max_Price;
if(Catalog_Id>0)
{
selectsql=selectsql+"and Catalog_Id =" + Catalog_Id;
}
System.out.println("你输入的查询书籍的语句是:"+selectsql);
Querybooks qb=new Querybooks();
try
{
rs = qb.query(selectsql);
System.out.println(selectsql);
if (BFG.equals(FG)) //判断是否为后台
{
System.out.println(selectsql);
while (rs.next())
{ //此处必须使用while,使用if,只以可读取一条记录
String id=String.valueOf(rs.getInt("id"));
c.add(id);
Name = rs.getString("Name");
c.add(Name);
System.out.println(selectsql);
Author = rs.getString("Author");
c.add(Author);
Book_Concern = rs.getString("Book_Concern");
c.add(Book_Concern);
Price = String.valueOf(rs.getFloat("Price"));
c.add(Price);
}
}
System.out.println(selectsql);
if(BFG.equals(BG)) //判断是否为后台
{
while (rs.next()) { //此处必须使用while,使用if,只以可读取一条记录
Catalog_Id=rs.getInt("Catalog_Id"); //分类id
String cid=String.valueOf( Catalog_Id);
c.add(cid);
Id = rs.getString("Id");//用于超链接时传递参数
Name = rs.getString("Name");
c.add(Name);
Author = rs.getString("Author");
c.add(Author);
Keywords = rs.getString("Keywords"); //关键字
c.add(Keywords);
Book_Concern = rs.getString("Book_Concern"); //出版社
c.add(Book_Concern);
Price = String.valueOf(rs.getFloat("Price"));
c.add(Price);
discount = rs.getString("discount"); //会员打折率
c.add(discount);
ISBN = rs.getString("ISBN"); //书的ISBN号
c.add(ISBN);
Importance_Show = rs.getString("Importance_Show"); //推荐级别
c.add(Importance_Show);
Click = rs.getString("Click"); //被点击次数
c.add(Click);
Purchase_num = rs.getString("Purchase_num"); //被购次数
c.add(Purchase_num);
Date_time = rs.getString("Date_time"); //上架时间
c.add(Date_time);
Page_Count = rs.getInt("Page_Count"); //页数,因为获取的是int的值,所以使用getInt
//String Pc=String.valueOf( );//因为c 必须放入的是一个对象,所以必须进行轮换
Integer pp=Integer.valueOf(Page_Count);
c.add(pp);
Counts = rs.getString("Counts"); //库存量
c.add(Counts);
Description=rs.getString("Description");
c.add(Id);
c.add(cid);
c.add(Name);
c.add(Author);
c.add(Price);
c.add(Book_Concern);
c.add(Keywords);
c.add(discount);
c.add(ISBN);
c.add(Importance_Show);
c.add(Click);
c.add(Purchase_num);
c.add(Date_time);
c.add(pp);
c.add(Counts);
c.add(Description);
c.add(Id);
c.add(Id);
}
}
} catch (Exception e) {
qb.close();
System.out.println("在book_query的servlet中出现错误,数据库已关闭!");
System.out.println("在book_query的servlet中出现错误,原因:"+e.toString());
}
request.setAttribute("cc", c);
if (BFG.equals(FG)) //转发到前台用户的Book_Message.jsp
{
RequestDispatcher rd = request.getRequestDispatcher("Book_Message.jsp"); //实行转发
rd.forward(request, response);
}
if(BFG.equals(BG))
{
RequestDispatcher rd = request.getRequestDispatcher("BG_bookmessage.jsp"); //实行转发
rd.forward(request, response);
}
qb.close();
}
}
//Clean up resources
public void destroy() {
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -