读书人

问一个dao工厂外加jsp转发的有关问题

发布时间: 2012-09-06 10:37:01 作者: rapoo

问一个dao工厂外加jsp转发的问题,耐心的好心人帮我看一下吧
第一个文件package util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class DBUtil {
public static Connection getConnection() throws Exception {
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager
.getConnection("jdbc:mysql://localhost:3306/jsd1206",
"root", "1031512niu");
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}

public static void close(Connection conn) {
if(conn!=null){
try{
conn.close();
}catch(Exception e1){
e1.printStackTrace();
}
}
}
}
第二个文件
package util;

import java.io.InputStream;
import java.util.Properties;

public class ConfigUtil {
private static Properties pros=new Properties();
static{
ClassLoader loader=ConfigUtil.class.getClassLoader();
InputStream ips=loader.getResourceAsStream("util/daoconfig.properties");
try {
pros.load(ips);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
public static String getValue(String key){
return pros.getProperty(key);
}
}
第三个文件
package util;

import javax.servlet.jsp.jstl.core.Config;

import dao.impl.EmployeeDAOJdbcImpl;

public class DAOFactory {
public static Object getInstance(String type){
Object obj=null;
//根据接口名找到对应的类名
String className=ConfigUtil.getValue(type);
//使用反射创建实例
try {
obj=Class.forName(className).newInstance();
} catch (Exception e) {
// TODO: handle exception
}
return obj;
}
}
该第四个了,剩下的这两个是关于转发的,和前面的有联系
package web;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import util.DAOFactory;
import dao.EmployeeDao;
import entity.Employee;

public class ListEmpServlet extends HttpServlet {
public void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");


try {
EmployeeDao dao=(EmployeeDao)DAOFactory.getInstance("EmployeeDao");
//EmployeeDAOJdbcImpl dao=new EmployeeDAOJdbcImpl();
List<Employee> employees=dao.findAll();
//调用jsp!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//绑定
request.setAttribute("employees",employees);
//获得转发器
RequestDispatcher rd=request.getRequestDispatcher("employee_list.jsp");
//转发
rd.forward(request, response);

}

catch (Exception e) {
// TODO: handle exception
e.printStackTrace();

}

}
}
第五个
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@page import="entity.Employee"%><%@page import="java.util.List"%>


<html>
<head>
<title>emplist</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="css/style.css" />
</head>
<body>
<div id="wrap">
<div id="top_content">
<div id="header">


<div id="rightheader">
<p>
2009/11/20
<br />
</p>
</div>
<div id="topheader">
<h1 id="title">
<a href="#">main</a>
</h1>
</div>
<div id="navigation">
</div>
</div>
<div id="content">
<p id="whereami">
</p>
<h1>
Welcome!
</h1>
<table class="table">
<tr class="table_header">
<td>
ID
</td>
<td>
姓名
</td>
<td>
工资
</td>
<td>
年龄
</td>
<td>
操作
</td>
</tr>
<%
List<Employee> employees=(List<Employee>)request.getAttribute("employees");
for(int i=0;i<employees.size();i++){
Employee e=employees.get(i);
%>
<tr class="row<%=(i%2+1) %>">
<td>
<%=e.getId() %>
</td>
<td>
<%=e.getName() %>
</td>
<td>
<%=e.getSalary() %>
</td>
<td>
<%=e.getAge() %>
</td>
</tr>
<%} %>
</table>
<p>
<input type="button" class="button" value="Add Employee" onclick="location='addEmp.html'"/>
</p>
</div>
</div>
<div id="footer">
<div id="footer_bg">
ABC@126.com
</div>
</div>
</div>
</body>
</html>
最后说一下,我运行的时候他总提示我什么空指针Class.forName("com.mysql.jdbc.Driver") 我jdbc包肯定导入了,这个是确定的而且路径也对,导入到lib文件夹下了

[解决办法]
你导入进去了系统不一定就能识别啊,把包删了,重新下载,或者从别处拷贝一份重新导入 ,我也遇到过同样的问题,删除重新导入,试几次就可以了,
[解决办法]
还有不知道楼主想问什么问题呢,关于dao的什么问题,关于转发你想知道些什么呢?这样的项目我做过一个非常完整的

读书人网 >Java Web开发

热点推荐