Java servlet模糊查询,过滤器

本文介绍了Java Servlet中的模糊查询,详细讲解了LIKE关键字和通配符的使用,并展示了如何实现模糊查询功能。此外,还探讨了过滤器的概念、作用、Filter接口及其方法,以及过滤器链的工作原理和配置顺序。最后,提供了一个过滤UTF-8编码的代码实例,强调了过滤器在提高代码可维护性和通用性方面的重要性。
摘要由CSDN通过智能技术生成

一.什么是模糊查询

介绍

(1)当想查询学生姓名中包含字符a,就需要使用到模糊查询,模糊查询的话使用关键字是like(像)

(2)通配符

:任意一个字符

张_:张三,张三丰

张__:张三,张三丰

%:表示0或者多个字符

张%

通配符:_

查询名字由五个字母构成的 学生记录

Select *from stu where sname like ‘_____’;

查询名字由五个字母构成的,并且第五个字符是i 学生记录

Select *from stu where sname like ‘____i’;

通配符: %

查询名字以‘z’开头的学生记录

Select *from stu where sname like ‘z%’;

查询名字中第二个字符是i的学生记录

Select *from stu where sname like ‘_i’;

查询名字中包含a的学生记录

select *from stu where sname like ‘%a%’;

1.1模糊查询是目前计算机查找信息用得最多的一种搜索工具,它主要用于与“数据”相关的栏目,通过它可快速查找到想要的信息,通常是用关键字进行模糊查找,所谓关键字就是登记信息中所包含的字符,如:到百度中要搜某方面的知识 当摸索目标不是很明确的时候,比如你想要搜索某个名人,可能一下子突然忘了他叫什么名字,只记得他的姓氏,.就可进行模糊搜索,这时候只是对姓氏进行匹配,而不查找全称,当然结果是你可能获得一大批你不想要的信息,不过可以多加些搜索条件也可以达到搜索目的.这就是根据sql语句想到的,还有就是到淘宝中想买一件心仪的衣服,然后你只要把你想要的衣服类型通过在淘宝中输入关键字就会筛选出一大批类似的衣服供你挑选,你就可以在这些衣服中慢慢找出自己喜欢的衣服了。这也就是模糊查询的好处了。

接下来就来做一下模糊查询的功能:

先到要查询的具体位置给它设置一个id。

<input type="button" id="Aa">
<input type="button" id="Aa">

然后到jsp中获取到这个按钮,给它一个点击事件,然后申明几个变量名,使它的名字等于要进行筛选位置的id名,注:这里的“brave”,”text”是两个input标签中的id名,然后把它拼接起来接收要赋的值。再去查询这些传输进来的值。

  $("#Aa").click(function () {
            var bra = $("#brave").val();
            var texs = $("#text").val();
            var str = "bra=" + bra + "&texs=" + texs;
tbinspiration.search(str);
        })

然后到控制器中写查询的方法,再把这两个变量名传参到这个方法中,然后再进行判断,先判断传入进来的数据是否为空,再进行如果左边input标签中的值等于某种值的话,右边input标签就转化成某种类型的字符串。这样就利于查找出要查找的数据。至于查询的方法我这里就不写了,下面是一些判断的代码。

if (!String.IsNullOrEmpty(bra))
            {
                if (!String.IsNullOrEmpty(texs))
                {
if (bra == "CommodityStyleNumber")
                    {
                        list = list.Where(m => (m.CommodityStyleNumber).ToUpper().Contains(texs.ToUpper())).ToList();
                        bsgrid.success = true;
                    }
                    if (bra == "CommodityName")
                    {
                        list = list.Where(m => (m.CommodityName).ToLower().Contains(texs.ToLower())).ToList();
                        bsgrid.success = true;
                    }
  if (bra == "Amount")
                    {
                        list = list.Where(m => m.Amount >= Convert.ToInt16(texs)).ToList();
                        bsgrid.success = true;
                    }
   if (bra == "TagPrice")
                    {
                        list = list.Where(m => m.TagPrice >= Convert.ToInt16(texs)).ToList();
                        bsgrid.success = true;
                    }

具体代码实现

前端

<div style="float: right"><h3 align="center" class="form-inline">当前用户:${user}欢迎你!</h3></div>
<div align="center" style="float: left">
    <form class="form-inline" action="bookListByType" method="post">
        <div class="form-group">
            <label>图书分类</label>
            <select name="book_type" class="form-control">
                <option selected>请选择</option>
                <option>小说</option>
                <option>文学</option>
                <option>传记</option>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值