Java程序片範例

java程序片


<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@page import="java.sql.*"%>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://"
			+ request.getServerName() + ":" + request.getServerPort()
			+ path + "/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<head>
		<base href="<%=basePath%>">

		<title>學生列表</title>
	</head>

	<body>
		<form action="list.jsp" method="post">  <!-- post方式來進行跳轉 避免亂碼-->
			<center>
				姓名的查詢:
				<input type="text" name="searchName" />
				<input type="submit" value="查詢" />
			</center>
			<table align="center" border="1">
				<tr>
					<td>
						id
					</td>
					<td>
						name
					</td>
					<td>
						sex
					</td>
					<td>
						age
					</td>
					<td>
						birthday
					</td>
					<td>
						操作
					</td>

				</tr>

				<%
					//top
					//limit
					//對於分頁:
					//1.基於SQL語句 通過點擊控件完成參數的改變
					//2.通過控件去修改當前頁的編號
					//3.獲得跳轉後修改的頁面編號

					//1.對於搜索 select * from stu where name like '%他他他%'  limit 0,3;  第一條記錄的索引值爲0;
					//2.模糊查詢name,查詢帶分頁
					//用戶第一次進來 依然顯示所有的數據
					//3.保證翻頁後查詢的條件依然存在
					//4.在查詢之後 將值保存在session中
					//查詢後翻頁每次的條件從session中取得
					request.setCharacterEncoding("UTF-8");
					String searchName = request.getParameter("searchName");
					//判斷第一次進入
					System.out.println("searchName:"+searchName);
					
					if (session.getAttribute("searchName") == null&& searchName == null) {
						searchName = "";
					}
					//查詢後找尋的值從session中取得  當點擊下一頁或者上一頁的時候,查詢的語句不能改變的
					if (session.getAttribute("searchName") != null
							&& searchName == null) {
						searchName = session.getAttribute("searchName").toString();
					}
					int pageNo = 1; //當前頁編號
					int pageSize = 3;//每頁顯示的數據
					int totalPage = 0;//最大頁數

					String str_pageNo = request.getParameter("pageNo");//獲取上一次頁面傳過來的值
					//System.out.println("4444444444");
					if (str_pageNo == null) { //如果是第一次登錄時,pageNo就沒傳過來,就爲null值
						str_pageNo = "1"; //這時顯示就爲第一頁
					}
					//將修改後的值賦給pageNo
					pageNo = Integer.parseInt(str_pageNo);
					//1.加載驅動

					Class.forName("com.mysql.jdbc.Driver");
					Connection conn = DriverManager.getConnection(
							"jdbc:mysql://localhost:3306/wepull", "root", "aaa");
					//獲得預編譯SQL對象  根據當前頁數 和每頁顯示的條數定義分頁起始位置
					String sql = "select * from stu limit " + (pageNo - 1) * pageSize
							+ "," + pageSize + "";
					String countSQL = "select count(*) from stu";
					//當用戶有提交查詢內容時  值存入session 並改變SQL語句
					if (searchName != null) {  //當輸入了查詢的內容時
						session.setAttribute("searchName", searchName);//!將放入內容查詢的session中,當session中沒值的時候,用get取的時候爲null值
						sql = "select * from stu where name like '%" + searchName
								+ "%' limit " + (pageNo - 1) * pageSize + ","
								+ pageSize + "";
						countSQL = "select count(*) from stu where name like '%"
								+ searchName + "%'";//‘’號裏面引用雙引號
					}
					System.out.println(sql);
					System.out.println(countSQL);

					PreparedStatement ps = conn.prepareStatement(sql);
					ResultSet rs = ps.executeQuery();
					while (rs.next()) {
				%>
				<tr>
					<td><%=rs.getInt("id")%></td>
					<td><%=rs.getString("name")%></td>
					<td><%=rs.getString("sex")%></td>
					<td><%=rs.getString("age")%></td>
					<td><%=rs.getString("birthday")%></td>

					<td>
						<a href="toEdit.jsp?id=<%=rs.getInt("id")%>">編輯</a>
						<a href="delete.jsp?id=<%=rs.getInt("id")%>">刪除</a>
					</td>

				</tr>
				<%
					}
					//獲得最大的條數
					ps = conn.prepareStatement(countSQL);
					rs = ps.executeQuery();
					if (rs.next()) {
						int totalCount = rs.getInt(1); //得到總的條數
						//判斷整除和非整除
						if (totalCount % pageSize == 0) {
							totalPage = totalCount / pageSize; //整除的時候
							System.out.println(totalPage);
						} else {
							totalPage = totalCount / pageSize + 1; //當不能整除時,將頁面數+1
						}
					}
					conn.close(); //關閉連接
				%>
				<tr>
					<td colspan="7">
						<input type="button" value="添加"
							οnclick="window.location.href='toAdd.jsp'" />
						<a href="list.jsp">首頁</a>
						<%--當是第一頁時,不能點擊上一頁,默認的爲第1頁 --%>
						<a href="list.jsp?pageNo=<%=pageNo - 1%>" <%if(pageNo<=1){%>
							disabled οnclick="return false;" <%}%>>上一頁</a>

						<a href="list.jsp?pageNo=<%=pageNo + 1%>"
							<%if(pageNo>=totalPage){%> disabled οnclick="return false;"
							<%} %>>下一頁</a>
						<a href="list.jsp?pageNo=<%=totalPage%>">尾頁</a>

						<!-- 
    		 			1.觸發onchange事件
    		 			2.在每次修改時 將option的value值傳到pageNo作爲當前頁的數據
    		 		 -->

						<select
							οnchange="window.location.href='list.jsp?pageNo='+this.value">
							<!-- 
    		 			 	噹噹前頁和 i值相等時 給予selected屬性
    		 			  -->
							<%
								for (int i = 1; i < totalPage + 1; i++) {
							%>
							<option <%if(pageNo==i){ %> selected <% }%> value="<%=i%>"><%=i%></option>

							<%
								}
							%>



						</select>



					</td>
				</tr>
			</table>
		</form>
		<%-- d--%>


	</body>
</html>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章