按照计划本篇将为大家总结搜索功能的两种实现:确定搜索与模糊搜索。所谓精确搜索便是指,根据用户的输入的搜索内容,在数据库中寻找具有一一对应的关系的数据,一般都是用户在数据库中的主键值。而模糊搜索,是一种根据用户输入的信息,进行匹配,将具有相似信息的数据对象返回给用户。这两者在代码上的区别仅仅在于sql语句不同。下面就具体为大家介绍一下。

  搜索输入框的设计,在上一篇中已经为大家介绍过,这里就不再赘述。下面直接开始我们本篇的内容。

 1、精确搜索: 

  用于搜索的java方法:

public Student getName(String name) {
Student student = new Student();
Connection conn = null;
Statement st = null;
ResultSet rs = null;
conn = DBO.getConnection();
String sql = "select * from students where username='"+name+"'";
try {
st = conn.createStatement();
rs = st.executeQuery(sql);
while(rs.next()){
student.setId(rs.getInt("id"));
student.setName(name);
student.setSex(rs.getInt("sex"));
student.setYear(rs.getInt("age"));
student.setFrom(rs.getString("form"));
student.setSchool(rs.getString("school"));
}
} catch (SQLException e) {
e.printStackTrace();
}
return student;
}

 2、模糊搜索:

  用于进行模糊搜索的java方法:

public List<Student> getByName(String name) {
List<Student> list = new ArrayList<Student>();
Connection conn = null;
PreparedStatement pst = null;
ResultSet rs = null;
conn = DBO.getConnection();
String sql = "select * from students where username like ?"; try {
pst = conn.prepareStatement(sql);
pst.setString(1, "%"+name+"%");
rs = pst.executeQuery();
while(rs.next()){
Student student = new Student();
student.setId(rs.getInt("id"));
student.setName(rs.getString("username"));
student.setSex(rs.getInt("sex"));
student.setYear(rs.getInt("age"));
student.setFrom(rs.getString("form"));
student.setSchool(rs.getString("school"));
list.add(student);
}
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}

 3、select代码:

  这里的我将精确搜索和模糊搜索的select放在了一起。

public class get extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
StudentMaImp smi = new StudentMaImp();
Student student = new Student();
List<Student> list = new ArrayList<Student>();
if(request.getParameter("queding")!= null&&request.getParameter("queding").length()!=0){
String queding = request.getParameter("queding");
student = smi.getName(queding);
if(student.getName()!=null&&student.getName().length()!=0){
request.setAttribute("student", student);
request.getRequestDispatcher("Get.jsp").forward(request, response);
}else{
list = smi.getAll();
request.setAttribute("list", list);
request.setAttribute("new1", queding+"同学不存在");
request.getRequestDispatcher("All.jsp").forward(request, response);
}
}else{
String mohu = request.getParameter("mohu");
list = smi.getByName(mohu);
if(list.size()!=0){
request.setAttribute("list", list);
request.getRequestDispatcher("GetAll.jsp").forward(request, response);
}else{
list = smi.getAll();
request.setAttribute("list", list);
request.setAttribute("new2", "关键字:"+mohu+"不存在");
request.getRequestDispatcher("All.jsp").forward(request, response);
}
}
} }

 4、记住用户名和密码:

  我们在很多需要进行登录的网站经常可以看到,当我们第一次登录成功后,以后我们再次打开这个页面时,我们的用户名和密码已经填写好了,这个就是一个记住密码功能,下面我就开始为大家介绍一下它的使用。这里需要使用一个关键字Cookie,通过这个关键字我们可以通过select后台将我们的账户信息保存的本地,当我们需要使用时通过调用Cookie的一个方法便可以了。

  保存数据到本地方法:

       Cookie cookie_name = new Cookie("name",name);//设置保存数据的名字
cookie_name.setMaxAge(60*60*24*7);//保存数据的期限这里设置的为一周
response.addCookie(cookie_name); Cookie cookie_pwd = new Cookie("pwd",password);
cookie_pwd.setMaxAge(60*60*24*7);
response.addCookie(cookie_pwd);

  获取Cookie中的值:

         <tr>
<td>姓名:</td><td><input type="text" name="name" value="${cookie.name.value }" /></td>
</tr>
<tr>
<td>密码:</td><td><input type="password" name="pwd" value="${cookie.pwd.value }" /></td>
</tr>

  到这里本篇的总结就写完了,内容不多,大家有什么疑问可以留言讨论。下一篇:类似百度分页的效果实现

JSP网站开发基础总结《七》的更多相关文章

  1. JSP网站开发基础总结《二》

    有了上一篇的学习,我相信大家对于JSP一定有了一定的认识,从今天开始我们真正开启JSP模式,如果你有HTML的基础,那学起JSP来也就方便了很多了,首先JSP做为网站开发语言,它与HTML有很多相似的 ...

  2. JSP网站开发基础总结《一》

    经过JAVASE的学习相信大家对JAVA已经不再陌生,那么JAVA都可以干什么呢?做算法.应用程序.网站开发都可以,从今天开始为大家奉上JAVAEE之JSP动态网站开发基础总结. 既然是动态网站开发, ...

  3. JSP网站开发基础总结《八》

    JSP的学习总结到本篇已经八篇了,内容比较多,但都是实战,本篇最后为大家介绍一个小效果:百度分页.就是当我们遍历的数据对象较多时,这时我们就会看到了这个效果了,那他是如何实现的呢?下面我们就一起学习一 ...

  4. JSP网站开发基础总结《十二》

    前两篇已经简单为大家介绍了一下,有关Filter接口的知识,本篇就让我们以一个登录小功能,来具体实现一下过滤器的作用,便于大家掌握.具体为大家介绍一下如何使用Filter对访问进行过滤,及如何防止中文 ...

  5. JSP网站开发基础总结《四》

    经过前几篇的摸爬滚打,下面我们就开始我们真正的数据库操作了,本篇重点在于如何在网站端编写数据库操作语句,内容不多,就是我们常见的增删改查. 0.数据库对象创建: 在JAVASE基础知识总结时,就为大家 ...

  6. JSP网站开发基础总结《十三》

    继上一篇为大家补充过滤器类后,本篇为大家简单介绍一下如何实现验证码效果.验证码的作用是什么呢?1.防止恶意注册2.防止恶意提交3.防止盗取账户等等,总的来说验证码的存在就是为了,防止非人为的操作,不过 ...

  7. JSP网站开发基础总结《九》

    本篇属于附加篇,在之前的总结中给大家提到过一个关于登录状态验证的效果,当时是通过Session对象完成的,今天我查了一下,JSP为我们封装了一个用于过滤用的过滤器类Filter,通过它我们就可以非常轻 ...

  8. JSP网站开发基础总结《六》

    对于本篇需要总结的内容,量估计有点大,大家好好看哈,绝对全是干货,代码的已经运行测试,不存在问题,大家可以参考学习,下面开始本篇的内容. 1.添加数据到数据库: 如何用户在JSP页面的填写的信息输入到 ...

  9. JSP网站开发基础总结《九》(转)

    本篇属于附加篇,在之前的总结中给大家提到过一个关于登录状态验证的效果,当时是通过Session对象完成的,今天我查了一下,JSP为我们封装了一个用于过滤用的过滤器类Filter,通过它我们就可以非常轻 ...

随机推荐

  1. JBoss CLI

    转自http://www.cnblogs.com/inteliot/archive/2012/08/05/2623719.html   为 了便于维护和管理, JBoss AS 7 提供了命令行接口( ...

  2. WPF控件经验小结:(1) ToolBar去掉右边箭头(扩展图标)

    今天开发时,同事问我一个问题.怎么去除ToolBar右边扩展图标.我想了一下,说改Style.同事说太麻烦了.可不可以快速修正.我说应该动态去读取Template模板中的Style,然后隐藏.怎么实现 ...

  3. JMeter HTTP Cookie管理器的跨域使用

    Jmeter的一个测试计划只能有一个cookie管理器,当多个manager同时存在时,无法指定是用的哪一个manager.如果想让cookie manager跨域使用,修改JMeter.proper ...

  4. HTTP方法:GET对比POST

    http://blog.csdn.net/zhenyu5211314/article/details/17067817

  5. CCNA第二章TCP/IP简介考试要点学习笔记

    1.描述网络是如何工作的     DoD过程/应用层 -- OSI应用.表示和会话层(定义了结点到结点的应用通信协议以及对用户界面规范的控制): DoD主机到主机层 -- OSI传输层(保证了数据包的 ...

  6. SQL Server 2008 R2 下移动数据库的存储位置

    使用场景:1. 该数据库增长的较大,存储磁盘空间不足:   2. 在特定情况下该数据库需要移动到另外一块磁盘上(呵呵...我的情况就是之前的磁盘要还给别人) 步骤: 1. 新建查询 SELECT na ...

  7. Android JIT实时编译器的设置

    在Android  JIT实时编译是在Android 2.2之后才引入的,JIT编译器可以显著的提高机器的性能,经过测试,android 2.2的性能较android 2.1提高了 2-5倍.JIT提 ...

  8. 练习1-13:编写一个程序,打印输入中单词长度的直方图(水平)(C程序设计语言 第2版)

    简单未考虑标点符号 #include <stdio.h> #define MAX_WORD_LEN 10 #define BLANK 0 #define IN_WORD 1 #define ...

  9. iBatis简单介绍

    1.       Ibatis是开源软件组织Apache推出的一种轻量级的对象关系映射(ORM)框架,和Hibernate.Toplink等在java编程的对象持久化方面深受开发人员欢迎. 对象关系映 ...

  10. 关于通过jq /js 实现验证单选框 复选框是否都有被选中

    今天项目中遇到一个问题 就是要实现,单选框,复选框 同时都被选中才能进行下一步的问题,开始用js原生来写 怎么写都觉得不合适,通过for循环得出 复选框被选中的,在通过for循环得出单选框被选中的,问 ...