servlet声明定义message信息传给前天界面判断输出message;
if(booknamelist.size()==0) {
message="根据书名查询没有结果!";
}
<%
String message = (String)request.getAttribute("message");
if(message!=null){
%>
<script type="text/javascript">
alert(" <%=request.getAttribute("message")%> ");
</script>
<%} %>
查询方法可以这么写:
前台:
1 <td colspan="4" align="center">
2 <form action="Select" method="post">
3 <table>
4 <tr>
5 <td><input type="text" class="form-control" name="content"></td>
6 <td><select name="way" class="form-control">
7 <option value="">--请选择查询方式--</option>
8 <option value="1">学号</option>
9 <option value="2">姓名</option>
10 <option value="3">性别</option>
11 <option value="4">住址</option>
12 </select></td>
13 <td >
14 <button type="submit" class="btn btn-info">查询</button>
15 </td>
16 </tr>
17 </table>
18 </form>
19 </td>
不同的查询方式对应着不同option的不同value值,这样可以在servlet里面更加清晰地定义不同SQL语句进行一次模糊查询,只需要写一个查询函数就可以了!
servlet:
1 public ArrayList<User> select(String content,String way){
2 ArrayList<User> list=new ArrayList<>();
3 Connection con=null;
4 Statement state=null;
5 ResultSet rs=null;
6 String sql="select * from student";
7 if(content!=""&&"1".equals(way)){
8 sql +=" where sno='"+content+"'";
9 }else if(content!=""&&"2".equals(way)){
10 sql += " where sname like'%" + content + "%'";
11 }else if(content!=""&&"3".equals(way)){
12 sql += " where ssex='"+content+"'";
13 }else if(content!=""&&"4".equals(way)){
14 sql += " where saddress='"+content+"'";
15 }else{
16 sql ="select * from student";
17 }
18 try {
19 con=DBUtil.getConn();
20 state=con.createStatement();
21 rs=state.executeQuery(sql);
22 while(rs.next())
23 {
24 User bean=new User();
25 bean.setSno(rs.getString("sno"));
26 bean.setSname(rs.getString("sname"));
27 bean.setSsex(rs.getString("ssex"));;
28 bean.setSbirthday(rs.getString("sbirthday"));
29 bean.setSaddress(rs.getString("saddress"));
30 list.add(bean);
31 }
32
33 } catch (SQLException e) {
34 // TODO Auto-generated catch block
35 e.printStackTrace();
36 }
37 DBUtil.close(rs, state, con);
38 return list;
39