1. 程式人生 > 其它 >JSP中四大作用域及操作資料庫

JSP中四大作用域及操作資料庫

技術標籤:Javawebjsp

JSP中四大作用域及操作資料庫

四大作用域
物件描述
pageContext只在當前頁生效
request在一次請求中生效
session在一次會話中生效
application在整個專案中生效
<%
		//驗證方式:分別給不同的物件設定不同的引數,在另一個頁面中驗證是否能夠獲取對應的引數
		pageContext.setAttribute("pageContext", "pageContext");
		request.setAttribute("request", "request");
		session.setAttribute("session", "session");
		application.setAttribute("application","application");
		
		request.getRequestDispatcher("next.jsp").forward(request, response);
	%>
	<h3>當前頁</h3>
	<a href="./next.jsp">go next page</a>
	<hr>
	pageContext:<%=pageContext.getAttribute("pageContext") %><br>
	request:<%=request.getAttribute("request") %><br>
	session:<%=session.getAttribute("session") %><br>
	application:<%=application.getAttribute("application") %>
JSP中操作資料庫
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.util.*,beans.Emp,java.sql.*" %>
<%
	//思路:連線資料庫,將獲取到的資料儲存起來,然後在資料列表頁中進行獲取渲染
	request.setCharacterEncoding("utf-8");
	

	//定義集合用於接收資料
	List<Emp> list = new ArrayList<Emp>();
	//1、註冊驅動
	Class.forName("com.mysql.jdbc.Driver");
	//2、獲取連線物件
	Connection conn = DriverManager.getConnection("jdbc:mysql:///hongzehu","root","root");
	//3、定義SQL,預編譯
	String sql = "select * from emp";
	PreparedStatement ps = conn.prepareStatement(sql);
	//4、執行SQL拿到結果集
	ResultSet rs = ps.executeQuery();
	//5、遍歷結果集,將結果集儲存到集合中
	while(rs.next()){
		int eno = rs.getInt(1);
		String ename = rs.getString(2);
		String sex = rs.getString(3);
		String phone = rs.getString(4);
		String address = rs.getString(5);
		Emp emp = new Emp(eno,ename,sex,phone,address);
		//將物件新增到集合中
		list.add(emp);
	}
	//將資料儲存到域中
	session.setAttribute("list", list);
	//6、關閉資料庫連線物件
	rs.close();
	ps.close();
	conn.close();
	
	//回跳到list頁面
	response.sendRedirect("list.jsp");
%>

//列表展示
<%
		//獲取儲存的集合資料
		Object obj = session.getAttribute("list");
		if(obj == null){
			response.sendRedirect("control.jsp");
			return;
		}
		List<Emp> list = (List<Emp>)obj;
	%>
	<table border="1" cellpadding="0" cellspacing="0" width="50%" align="center">
		<tr>
			<th>員工編號</th>
			<th>員工姓名</th>
			<th>員工性別</th>
			<th>聯絡方式</th>
			<th>家庭住址</th>
		</tr>
	
	<%
		for(Emp emp : list){
	%>
	
		<tr>
			<td><%=emp.getEno() %></td>
			<td><%=emp.getEname() %></td>
			<td><%=emp.getSex() %></td>
			<td><%=emp.getPhone() %></td>
			<td><%=emp.getAddress() %></td>
		</tr>
	<%
		}
	%>
	</table>