JS传递模糊查询的sql语句到后台报空指针异常

$("#tj").click(function(){varcondition="selectb.*,rownumrfrombuildingbwhere1=1";varbn... $("#tj").click(function(){
var condition="select b.*,rownum r from building b where 1=1";
var bname=$("#find_bName").val();
var city=$("#find_city").val();
var district=$("#find_district").val();
var street=$("#find_street").val();
if(""!=bname)
condition+=" and bname like '%"+bname+"%'";
if(city!="")
condition+=" and city='"+city+"'";
if(district!="")
condition+=" and district='"+district+"'";
if(street!="")
condition+=" and street='"+street+"'";
alert(condition);
location.href="./BuildingServlet?oprate=multiSearch&condition="+condition;
});
当bname有值时,servlet里就会报空指针。而我把两个%去掉它就能传到后台不会报错。难道js不能传递%或传递%到后台不能识别还是怎么的。有人帮忙解决这个问题吗
展开
 我来答
yw9002
2014-09-21 · 超过25用户采纳过TA的回答
知道答主
回答量:76
采纳率:0%
帮助的人:45.9万
展开全部
你这个是作业还是商业项目,如果你这是商业项目的话,那你的这种实现方式是不可取的,完全可以被SQL注入的,如是你还是坚持用这咱实现方式,你可以把控制台的错误信息贴上来一下,可以更精准的定位错误发生的地方。
追问
学校作业用,这安全问题我也想知道,页面是不是最好不要写sql语句,只传参数才好,如只把那4个参数传过去就好了。没什么经验,求科普。
再来我问的那个问题后台只报了个nullpointerexception,request.getP..("condition")这报的错误。我的做法是把%换成$等别的符号,再通过后台字符串替换操作这样解决了。我是不明白难道js传百分号%到servlet会有哪里存在错误。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式