按照計劃本篇將為大家總結搜索功能的兩種實現:確定搜索與模糊搜索。所謂精確搜索便是指,根據用戶的輸入的搜索內容,在數據庫中尋找具有一一對應的關系的數據,一般都是用戶在數據庫中的主鍵值。而模糊搜索,是一種根據用戶輸入的信息,進行匹配,將具有相似信息的數據對象返回給用戶。這兩者在代碼上的區別僅僅在于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>
到這里本篇的總結就寫完了,內容不多,大家有什么疑問可以留言討論。下一篇:類似百度分頁的效果實現
新聞熱點
疑難解答