高分求救!servlet出现的怪问题,高手进来!感谢ing
我想在html页面输入查询参数,经过servlet处理后由good.jsp输出
html:
<form name="form1" method="post" action="/servlet/chaxun">
<input type="text" name="shuming">
<input type="text" name="chubanshe">
<input type="submit" name="Submit" value="Submit">
<input type="reset" value="reset" name="reset">
</form>
servlet:
String shuming=request.getParameter("shuming");
String chubanshe=request.getParameter("chubanshe");
String name="";
String publ="";
if(shuming.compareTo("")!=0) name="bookname like '%"+shuming+"%'";
if(chubanshe.compareTo("")!=0) publ="publi like '%"+chubanshe+"%'";
if(shuming.compareTo("")!=0&& chubanshe.compareTo("")!=0) name="and"+name;
String sql="select * from bb where";
sql=sql+publ+"and"+name;
b2 b=new b2();
ResultSet rs=b.executeQuery(sql);
try
{
if(rs.next())
{
HttpSession session=request.getSession(true);session.setAttribute("rs",rs);
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/xin.jsp");
dispatcher.forward(request,response);
response.sendRedirect("/good.jsp");
}
else
response.sendRedirect("/left.htm");
}
catch(Exception e)
{}
但是他在什么情况下都不会跳转,超级神奇,而且就只运行到servlet就停住了,什么提示也没有!是啥情况啊?
问题点数:0、回复次数:12Top
1 楼cricketlj(蟋蟀)回复于 2003-12-01 15:54:20 得分 0
request.getRequestDispatcher("("/good.jsp").forward(request,response);
request.getRequestDispatcher("/left.jsp").forward(request,response);
试试Top
2 楼wy7861(学海无边,回头是岸^-^)回复于 2003-12-01 15:57:05 得分 0
生成的查询语句有问题
try-->rs.next()-->catch-->没有错误处理-->结束Top
3 楼aku0708(怀念奶茶)回复于 2003-12-01 16:00:45 得分 0
直接用response.sendRedirect("good.jsp");
可以吧?
Top
4 楼gong1(轻松编程)回复于 2003-12-01 16:04:18 得分 0
catch()
出错误来看看。
^_^
Top
5 楼dollyang(呵呵)回复于 2003-12-01 16:07:34 得分 0
你的servlet函数是不是写在doPost里面的?Top
6 楼cricketlj(蟋蟀)回复于 2003-12-01 16:22:38 得分 0
catch(Exception e)
{System.out.println(ex.getMessage());}Top
7 楼cricketlj(蟋蟀)回复于 2003-12-01 16:23:00 得分 0
catch(Exception e)
{System.out.println(e.getMessage());}
呵呵Top
8 楼aha99(学习-工作)回复于 2003-12-01 16:26:53 得分 0
你的是在dopost里面吗?Top
9 楼kongxiangli(笑看红尘)回复于 2003-12-01 16:31:03 得分 0
你写一个固定的sql试试Top
10 楼caodavid2003(骆驼祥子)回复于 2003-12-01 16:41:39 得分 0
.
.
.
if(shuming.compareTo("")!=0&& chubanshe.compareTo("")!=0) name="and"+name;
String sql="select * from bb where";
sql=sql+publ+"and"+name;
b2 b=new b2();
ResultSet rs=b.executeQuery(sql);
.
.
.
你的sql语句有问题:
改为:
...
if(shuming.compareTo("")!=0&& chubanshe.compareTo("")!=0) name=" and"+name;
//and前有空格
String sql="select * from bb where";
sql=sql+" "+publ+name;
b2 b=new b2();
System.out.println("sql="+sql);
ResultSet rs=b.executeQuery(sql);
...
这样sql语句不会有问题啦
你可以在试一试
如果不行,你将输出的sql语句拷贝出来放到数据库查询工具上执行看看有没有问题;如果没有则是其他地方出错。
Top
11 楼xiexiaor(小啸)回复于 2003-12-02 10:35:20 得分 0
谢谢上面那么多位的回答,我试试先Top
12 楼lzsbj(黄羊·玫瑰·飞鱼)回复于 2003-12-02 10:48:03 得分 0
上边的sql语句是不是还有点问题
if(shuming.compareTo("")==0&& chubanshe.compareTo("")==0)呢?~~~Top




