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>