java web中jsp的DAO VO使用方法
jsp用户的实例化
<jsp:useBean id="stu" class="beans.User" scope="session"></jsp:useBean>
其中id名称是你为这个用户起的名字,假如说,你是图书馆的系统同,你先设定一个类,名字叫User,然后根据你所需要的信息在User类里面设置好,比如uname,upass,邮箱,电话等等,这句代码的作用相当于
User stu=new User()
class就是表示类,是在beans下建的类
scope就是作用范围
(1)page表示将JavaBean实例对象存储在PageContext对象中,作用范围是当前JSP页面有效.
(2)request表示将JavaBean实例对象存储在ServletRequest对象中,存储在request对象中的JavaBean对象可以被属于同一个请求的所有Servlet和JSP页面访问。
(3)session表示将JavaBean实例对象存储在HttpSession对象中,存储在HttpSession对象中的JavaBean对象可以被属于同一个会话的所有Servlet和JSP页面访问,此设置要求当前JSP页面支持Session,即没有将page指令的session属性设置为false。也就是对一个特定用户有效,一个http会话。
(4)application表示将JavaBean实例对象存储在ServletContext对象中,存储在ServletContext对象中的JavaBean对象可以被同一个Web应用程序中的所有Servlet和JSP页面访问。也就是所有用户都可以使用。
还需要导入包
<%@ page import="dao.DAO"%>
<%@ page import="beans.User"%>
用java bean赋值
- 赋常量值 ,
<jsp:setProperty property="属性" name="定义的类的名字" value="rose"/>
- 从表单元素中获取来的值
<jsp:setProperty property="属性名称" name="bean对象名" param="参数名"/>
- 将所有和属性名相同的参数的值放入bean对应的属性中
<jsp:setProperty property="*" name="student"/>
用javabean 获取值
<jsp:getProperty property="name" name="student"/>
User类中的checkUser方法
public String checkUser(){
String loginUser =this.getAcc();
String loginPass = this.getPwd();
if(loginUser==null || loginPass == null){
}
String sql ="select uname from ceshi.dbo.number where uname='"+loginUser+"' and upass='"+loginPass+"'";
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException el){
el.printStackTrace();
}
Connection conn=null;
Statement stat=null;
ResultSet rs =null;
try{
conn = DriverManager.getConnection("jdbc:odbc:text");
stat=conn.createStatement();
rs=stat.executeQuery(sql);
if(rs.next()){
acc=rs.getString("uname");
}
if (stat!=null){
stat.close();
}
if(conn!=null){
stat.close();
}
}catch(SQLException el){
el.printStackTrace();}
return acc;
}
DAO中获取数据库中所有人的信息
public ArrayList getAllusers() throws Exception {
Connection conn=null;
java.sql.Statement stat=null;
ResultSet rs =null;
ArrayList students= new ArrayList();
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn = DriverManager.getConnection("jdbc:odbc:text");
String sql="select * from ceshi.dbo.number";
stat=conn.createStatement();
rs=stat.executeQuery(sql);
while(rs.next()){
User user=new User();
user.setAcc(rs.getString("uname"));
user.setPwd(rs.getString("upass"));
students.add(user);
}
}catch(SQLException e){
e.printStackTrace();
}finally{
try{
if(conn !=null){
conn.close();
conn=null;
}
}catch(Exception ex){
}
}
return students;
}
DAO中的添加注册功能
public int addUser(User user) throws ClassNotFoundException{
int i=0;
String uname=user.getAcc();
String upass=user.getPwd();
Connection conn=null;
java.sql.Statement stat=null;
ResultSet rs =null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn = DriverManager.getConnection("jdbc:odbc:text");
String sql="insert into ceshi.dbo.number(uname,upass) values('"+uname+"','"+upass+"')";
stat=conn.createStatement();
rs=stat.executeQuery(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return i;
}
相应页面
(1)添加用户
<jsp:useBean id="stu" class="beans.User" scope="session"></jsp:useBean>
<jsp:setProperty property="*" name="stu"/>
<%
DAO dao=new DAO();
int i=dao.addUser(stu);
%>
<% if(i>0){%>
成功插入一行
<%} %>
(2)输出所有用户
<%
DAO dao=new DAO();
User user=new User();
ArrayList students=dao.getAllusers();
%>
<table border=2>
<tr>
<td>姓名</td>
<td>密码</td>
</tr>
<% for(int i=0;i<students.size();i++) {
user=(User)students.get(i);%>
<tr>
<td><%=user.getAcc() %></td>
<td><%=user.getPwd() %></td>
<% }%>
</tr>
</table>