jsp+DAO的例子,用java程序可以成功操作数据库,用jsp无效。

zealane 2012-03-30 03:04:03
一个jsp+dao的例子。编好后,用java程序测试过数据库接口,能够进行insert和查询等。

但是用jsp进行insert时,出现了异常。
进行操作的页面为
<%@ page contentType="text/html" pageEncoding="GBK"%>
<html>
<head><title>www.mldnjava.cn,MLDN高端Java培训</title></head>
<body>
<form action="emp_insert_do.jsp" method="post">
雇员编号:<input type="text" name="empno"><br>
雇员姓名:<input type="text" name="ename"><br>
雇员职位:<input type="text" name="job"><br>
雇佣日期:<input type="text" name="hiredate"><br>
基本工资:<input type="text" name="sal"><br>
<input type="submit" value="注册">
<input type="reset" value="重置">
</form>
</body>
</html>

与数据库接口的页面为

<%@ page contentType="text/html" pageEncoding="GBK"%>
<%@ page import="cn.mldn.lxh.factory.*,cn.mldn.lxh.vo.*"%>
<%@ page import="java.text.*"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<html>
<head><title>www.mldnjava.cn,MLDN高端Java培训</title></head>
<% request.setCharacterEncoding("GBK"); %>
<body>
<%
Emp emp = new Emp() ;
emp.setEmpno(Integer.parseInt(request.getParameter("empno"))) ;
emp.setEname(request.getParameter("ename")) ;
emp.setJob(request.getParameter("job")) ;
emp.setHiredate(new SimpleDateFormat("yyyy-MM-dd").parse(request.getParameter("hiredate"))) ;
emp.setSal(Float.parseFloat(request.getParameter("sal"))) ;
try{
if(DAOFactory.getIEmpDAOInstance().doCreate(emp)){
%>
<h3>雇员信息添加成功!</h3>
<%
} else {
%>
<h3>雇员信息添加失败!</h3>
<%
}
%>
<%
}catch(Exception e){
e.printStackTrace() ;
}
%>
</body>
</html>

很奇怪,添加了信息后,跳转到Emp_insert_do.jsp,但是页面上无任何信息。
...全文
131 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
zealane 2012-03-31
  • 打赏
  • 举报
回复
是数据库的包没有放在lib下。
zjj911 2012-03-30
  • 打赏
  • 举报
回复
这种情况下 你就多设置几个断点,就在多个位置输出1 2 3 4.... 等 ; 看看程序运行到什么地方了! 还有看数据插进去没有..
missfu1 2012-03-30
  • 打赏
  • 举报
回复
emp.setHiredate(new SimpleDateFormat("yyyy-MM-dd").parse(request.getParameter("hiredate"))) ;

有导入包吗?
chenhong90 2012-03-30
  • 打赏
  • 举报
回复
你的表单提交的action="emp_insert_do.jsp"怎么能直接走.jsp ,当然错了,
你的业务逻辑的java代码呢,你写了没啊。
然后你还要在web.xml中配置
javamyself 2012-03-30
  • 打赏
  • 举报
回复
实例化问题。new 一个看
X497347200 2012-03-30
  • 打赏
  • 举报
回复
看7楼 System.out.println("emp sucess---------");
这个能输出不
我怀疑上这个语句之前出了异常,但是你没有捕捉,所以看不见
X497347200 2012-03-30
  • 打赏
  • 举报
回复
你看7楼 我在一些地方加了输出语句,System.out.println(request.getParameter("ename"));

你可以再多加点System.out.println(“------------1”);,看看程序走到哪一步了
zealane 2012-03-30
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]

你到数据库看一下 你当前这条数据插进去了没有
[/Quote]

没插。


怎么看调试语句啊。呵呵。
X497347200 2012-03-30
  • 打赏
  • 举报
回复
你到数据库看一下 你当前这条数据插进去了没有
  • 打赏
  • 举报
回复
debug跟jsp一点一点走
X497347200 2012-03-30
  • 打赏
  • 举报
回复

<%@ page contentType="text/html" pageEncoding="GBK"%>
<%@ page import="cn.mldn.lxh.factory.*,cn.mldn.lxh.vo.*"%>
<%@ page import="java.text.*"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<html>
<head><title>www.mldnjava.cn,MLDN高端Java培训</title></head>
<% request.setCharacterEncoding("GBK"); %>
<body>
<%
Emp emp = new Emp() ;
emp.setEmpno(Integer.parseInt(request.getParameter("empno"))) ;
System.out.println(request.getParameter("ename"));
emp.setEname(request.getParameter("ename")) ;
emp.setJob(request.getParameter("job")) ;
emp.setHiredate(new SimpleDateFormat("yyyy-MM-dd").parse(request.getParameter("hiredate"))) ;
emp.setSal(Float.parseFloat(request.getParameter("sal"))) ;
System.out.println("emp sucess---------");
try{
if(DAOFactory.getIEmpDAOInstance().doCreate(emp)){
System.out.println(DAOFactory.getIEmpDAOInstance().doCreate(emp)==true);
%>
<h3>雇员信息添加成功!</h3>
<%
} else {
%>
<h3>雇员信息添加失败!</h3>
<%
}
%>
<%
}catch(Exception e){
e.printStackTrace() ;
}
%>
</body>
</html>


楼主,看下调试语句的输出
zealane 2012-03-30
  • 打赏
  • 举报
回复
空白页面,白的晃眼那。

没有报异常。

(DAOFactory.getIEmpDAOInstance().doCreate(emp))
是insert语句。
这句话测试过,可以的。
但不知道jsp页面中为啥不行?


测试程序为:
package cn.mldn.lxh.dao.test;
import cn.mldn.lxh.factory.DAOFactory;
import cn.mldn.lxh.vo.*;

public class TestDAOInsert {
public static void main(String args[]) throws Exception {
Emp emp = null;
for (int x=0;x<5;x++){
emp = new Emp();
emp.setEmpno(1000 + x);
emp.setEname("zzl -" + x);
emp.setJob("cxy - " + x);
emp.setHiredate(new java.util.Date());
emp.setSal(500 * x);
DAOFactory.getIEmpDAOInstance().doCreate(emp);

}
}
}
X497347200 2012-03-30
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
insert语句呢
[/Quote]
doCreate(emp)里面
dp753951520 2012-03-30
  • 打赏
  • 举报
回复
insert语句呢
X497347200 2012-03-30
  • 打赏
  • 举报
回复
有异常没有?
  • 打赏
  • 举报
回复
参数类型转换也需要try进去
  • 打赏
  • 举报
回复
有意思,居然不报错。。。。。空白页面?

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧