Javaweb臺介面程式碼複用總結
阿新 • • 發佈:2020-12-19
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 }