使用JSP+Java+MySQL实现jsp页面输入并进行模糊查询,但是好像实现不了,想贴下代码,请帮忙看看是不是哪里错了,

渡阡 2014-05-09 04:47:28
分别是一个resource.java 和一个 resource.jsp 数据库内容是关于录像带的,Java编译没出问题,新手出没
package chongxieServlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Statement;
import java.sql.SQLException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


public class resource extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=utf-8";
@Override
public void init() throws ServletException {
super.init();
}

/**
*
* @param config
* @throws ServletException
*/

/**
*
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/

@Override
public void doPost(HttpServletRequest request,HttpServletResponse response) throws
ServletException,IOException
{
PrintWriter out=response.getWriter();
response.setContentType("text/html;charset=utf-8");
out.print("<HTML>");
out.print("<BODY>");

String zhizuodanwei=request.getParameter("zhizuodanwei");
out.println(zhizuodanwei);
String jiemuneirong=request.getParameter("jiemuneirong");
out.println(jiemuneirong);
String chubanshe=request.getParameter("chubanshe");
out.println(chubanshe);
String zhizuoshijian=request.getParameter("zhizuoshijian");
out.println(zhizuoshijian);
String xuhao=null;
String kucunbianhao=null;
String changdu=null;
String geshi=null;
String shifousunhuai=null;
String shifoubeifen=null;
String cunfangweizhi=null;
String L=null;


Connection con=null;
Statement stmt=null;
ResultSet rs=null;

try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}catch(ClassNotFoundException e){e.printStackTrace();}
try{
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/resource","root","ydx");

stmt=con.createStatement();
String sql="Select * from sheet1 where zhizuoshijian like ('%%') and zhizuodanwei='%%' and"
+ "jiemuneirong ='%%' and chubanshe ='%%'";
rs=stmt.executeQuery(sql);
out.print("<Table Border>");
out.print("<TR>");
out.print("<TH width=100>"+"xuhao");
out.print("<TH width=100>"+"kucunbianhao");
out.print("<TH width=100>"+"jiemuneirong");
out.print("<TH width=100>"+"changdu");
out.print("<TH width=100>"+"geshi");
out.print("<TH width=100>"+"zhizuoshijian");
out.print("<TH width=100>"+"zhizuodanwei");
out.print("<TH width=100>"+"chubanshe");
out.print("<TH width=100>"+"shifousunhuai");
out.print("<TH width=100>"+"shifoubeifen");
out.print("<TH width=100>"+"cunfangweizhi");
out.print("<TH width=100>"+"L");
out.print("</TR>");

while(rs.next())
{
out.print("<TR>");
xuhao=rs.getString("xuhao");
out.print("<TD>"+xuhao+"</TD>");
kucunbianhao=rs.getString("kucunbianhao");
out.print("<TD>"+kucunbianhao+"</TD>");
jiemuneirong=rs.getString("jiemuneirong");
out.print("<TD>"+jiemuneirong+"</TD>");
changdu=rs.getString("changdu");
out.print("<TD>"+changdu+"</TD>");
geshi=rs.getString("geshi");
out.print("<TD>"+geshi+"</TD>");
zhizuoshijian=rs.getString("zhizuoshijian");
out.print("<TD>"+zhizuoshijian+"</TD>");
zhizuodanwei=rs.getString("zhizuodanwei");
out.print("<TD>"+zhizuodanwei+"</TD>");
chubanshe=rs.getString("chubanshe");
out.print("<TD>"+chubanshe+"</TD>");
shifousunhuai=rs.getString("shifousunhuai");
out.print("<TD>"+shifousunhuai+"</TD>");
shifoubeifen=rs.getString("shifoubeifen");
out.print("<TD>"+shifoubeifen+"</TD>");
cunfangweizhi=rs.getString("cunfangweizhi");
out.print("<TD>"+cunfangweizhi+"</TD>");
L=rs.getString("L");
out.print("<TD>"+L+"</TD>");
out.print("</TR>");
}
out.print("</Table>");
con.close();
}catch(SQLException e)
{}
out.println("</BODY>");
out.println("</HTML>");
}

/**执行 HTTP Get 请求
*
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/

@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
response.setContentType("text/html;chraset=utf-8");
try(PrintWriter out = response.getWriter()) {
out.println("<html>");
out.println("<head><title>查询结果</title></head>");
out.println("<body bgcolor=\"#ffffff\">");
String zhizuodanwei=request.getParameter("zhizuodanwei");
out.println(zhizuodanwei);
String jiemuneirong=request.getParameter("jiemuneirong");
out.println(jiemuneirong);
String chubanshe=request.getParameter("chubanshe");
out.println("chubanshe");
String zhizuoshijian=request.getParameter("zhizuoshijian");
out.println("zhizuoshijian");
String xuhao=null;
String kucunbianhao=null;
String changdu=null;
String geshi=null;
String shifousunhuai=null;
String shifoubeifen=null;
String cunfangweizhi=null;
String L=null;
Connection con=null;
Statement stmt=null;
ResultSet rs=null;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}catch(ClassNotFoundException e){}
try{
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/resource","root","ydx");
stmt = con.createStatement();
String sql="Select * from sheet1 where zhizuoshijian like ('%%') and zhizuodanwei='%%' and"
+ "jiemuneirong ='%%' and chubanshe ='%%'";
rs=stmt.executeQuery(sql);
out.print("<Table Border>");
out.print("<TR>");
out.print("<TH width=100>"+"xuhao");
out.print("<TH width=100>"+"kucunbianhao");
out.print("<TH width=100>"+"jiemuneirong");
out.print("<TH width=100>"+"changdu");
out.print("<TH width=100>"+"geshi");
out.print("<TH width=100>"+"zhizuoshijian");
out.print("<TH width=100>"+"zhizuodanwei");
out.print("<TH width=100>"+"chubanshe");
out.print("<TH width=100>"+"shifousunhuai");
out.print("<TH width=100>"+"shifoubeifen");
out.print("<TH width=100>"+"cunfangweizhi");
out.print("<TH width=100>"+"L");
out.print("</TR>");
while(rs.next())
{
out.print("<TR>");
xuhao=rs.getString("xuhao");
out.print("<TD>"+xuhao+"</TD>");
kucunbianhao=rs.getString("kucunbianhao");
out.print("<TD>"+kucunbianhao+"</TD>");
jiemuneirong=rs.getString("jiemuneirong");
out.print("<TD>"+jiemuneirong+"</TD>");
changdu=rs.getString("changdu");
out.print("<TD>"+changdu+"</TD>");
geshi=rs.getString("geshi");
out.print("<TD>"+geshi+"</TD>");
zhizuoshijian=rs.getString("zhizuoshijian");
out.print("<TD>"+zhizuoshijian+"</TD>");
zhizuodanwei=rs.getString("zhizuodanwei");
out.print("<TD>"+zhizuodanwei+"</TD>");
chubanshe=rs.getString("chubanshe");
out.print("<TD>"+chubanshe+"</TD>");
shifousunhuai=rs.getString("shifousunhuai");
out.print("<TD>"+shifousunhuai+"</TD>");
shifoubeifen=rs.getString("shifoubeifen");
out.print("<TD>"+shifoubeifen+"</TD>");
cunfangweizhi=rs.getString("cunfangweizhi");
out.print("<TD>"+cunfangweizhi+"</TD>");
L=rs.getString("L");
out.print("<TD>"+L+"</TD>");
out.print("</TR>");
}
}catch (SQLException e) {}
out.println("</body>");
out.println("</html>");
} }
/**Clean up resources
*
*/
@Override
public void destroy(){
}

}

...全文
1090 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
渡阡 2014-05-12
  • 打赏
  • 举报
回复
引用 11 楼 dandandeshangni 的回复:
建议使用预编译语句
嗯,谢啦!!☆⌒(*^-゜)v
wyx100 2014-05-11
  • 打赏
  • 举报
回复
引用 2 楼 wlwlwlwl015 的回复:
扫了一眼,你的%%里面什么也没写,肯定实现不了啊,你前台肯定会输入查询的关键字,然后通过串接SQL或者PreparedStatement将值注入到你的SQL才行。比如: String name="request.getParamter("name")": String sql="select * from t1 where name like '%"+name+"%'"; //串接SQL
java干货 2014-05-11
  • 打赏
  • 举报
回复
建议使用预编译语句
渡阡 2014-05-11
  • 打赏
  • 举报
回复
引用 8 楼 shudejiyi 的回复:
你这个用预编译的PreparedStatement对象更好,"Select * from sheet1 where zhizuoshijian like (?) and zhizuodanwei =(?) and chubanshe =(?) and jiemuneirong =(?)",然后将4个?设置为:“%”+参数变量名+“%”,正确与否你自己试试,我只做过Oracle的模糊查询
嗯嗯,O(∩_∩)O谢谢
渡阡 2014-05-10
  • 打赏
  • 举报
回复
引用 6 楼 JUST_lOVE_LE 的回复:
java 的话最好是用预编译语句来做吧, 模糊查询的问题我也遇到过 把这两个 % % 用字符串括起来 再来个变参 ? 就可以了
String sql="Select * from sheet1 where zhizuoshijian like ('%?%') and zhizuodanwei =('%?%') and chubanshe =('%?%') and jiemuneirong =('%?%')"; 改成这样么?还是不能查询呢、、 不过Tomcat 有点问题,前几天简单的 select * from sheet1;还能输出一整张表来,现在连输出一整张表都出不来了 也不知道这样写对不对T^T
渡阡 2014-05-10
  • 打赏
  • 举报
回复
引用 4 楼 liyang0410 的回复:
('%%')这个貌似有点问题
O.Osoga。。。说一说,我去试一下
北落师门_Orz 2014-05-10
  • 打赏
  • 举报
回复
java 的话最好是用预编译语句来做吧, 模糊查询的问题我也遇到过 把这两个 % % 用字符串括起来 再来个变参 ? 就可以了
树的记忆 2014-05-10
  • 打赏
  • 举报
回复
你这个用预编译的PreparedStatement对象更好,"Select * from sheet1 where zhizuoshijian like (?) and zhizuodanwei =(?) and chubanshe =(?) and jiemuneirong =(?)",然后将4个?设置为:“%”+参数变量名+“%”,正确与否你自己试试,我只做过Oracle的模糊查询
咖啡不放糖 2014-05-09
  • 打赏
  • 举报
回复
('%%')这个貌似有点问题
渡阡 2014-05-09
  • 打赏
  • 举报
回复
引用 2 楼 wlwlwlwl015 的回复:
扫了一眼,你的%%里面什么也没写,肯定实现不了啊,你前台肯定会输入查询的关键字,然后通过串接SQL或者PreparedStatement将值注入到你的SQL才行。比如: String name="request.getParamter("name")": String sql="select * from t1 where name like '%"+name+"%'"; //串接SQL
O.O嗯嗯,我去改一下试试
小灯光环 2014-05-09
  • 打赏
  • 举报
回复
扫了一眼,你的%%里面什么也没写,肯定实现不了啊,你前台肯定会输入查询的关键字,然后通过串接SQL或者PreparedStatement将值注入到你的SQL才行。比如: String name="request.getParamter("name")": String sql="select * from t1 where name like '%"+name+"%'"; //串接SQL
渡阡 2014-05-09
  • 打赏
  • 举报
回复
怕太乱,这一个是jsp的代码,resource.jsp

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://wwww.w3.org/TR/html4/loose.dtd">


    <html>
	<head>
	<base href="<%=basePath%>">
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<title>录像带资源整理查询系统</title>
	</head>
	<body>

<form name="form1" method="post" action="/servlet/resource">
<p>按类别选择查询</p>
<p>请输入  制作单位:
   <input type="text" name="zhizuodanwei">
   <input type="submit" name="zhizuodanwei" value="查询">
   </p>
<form name="form1" method="post" action="/servlet/resource">
<p>请输入  节目内容:
   <input type="text" name="jiemuneirong">
   <input type="submit" name="jiemuneirong" value="查询">
   </p>
<form name="form1" method="post" action="/servlet/resource">
<p>请输入  出 版 社:
   <input type="text" name="chubanshe">
   <input type="submit" name="chubanshe" value="查询">
   </p>
<form name="form1" method="post" action="/servlet/resource">
<p>请输入  制作时间:
   <input type="text" name="zhizuoshijian">
   <input type="submit" name="zhizuoshijian" value="查询">
   
   </p>
   <p> </p>
   </form>

   </body>
   </html>

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧