调试Business项目心得
2010-07-09 10:16
197 查看
一、SQLServer2000出现了问题:在数据库-附加数据库时候出现了“未能找到存储过程master.dbo.xp_dirtree”的错误。
解决方法如下:
分析原因:通过安全工具,为了数据库安全,把一些不常用的存储过程给删除了。
通过搜索查询到下面的解决方法
解决方法:
把恢复数据库需要用到的存储过程个恢复,打开MSSQL查询分析器,分别运行下面的两条数据库语句即可.
EXEC sp_addextendedproc xp_dirtree ,@dllname ='xpstar.dll'
EXEC sp_addextendedproc xp_fileexist ,@dllname ='xpstar.dll'
二、Web项目调试
1、修改连接数据库的语句:包括驱动的修改,连接语句的修改等。分别在com.bwm.db中,针对两个类进行了修改。
2、我用一个账号,登陆了进去,进行购买商品,却提示商品不存在。
这时发现了问题的症结就是:出现了冗余的中文乱码处理的代码:
//String temp=chr.toChinese(request.getParameter("buy1"));
//System.out.println("buy1=:"+request.getParameter("buy1"));
//System.out.println("temp=:"+temp);
String temp =request.getParameter("buy1");
经过测试发现,问题得到了解决。
3、但是控制台仍然弹出报错信息:“java.sql.SQLException: Io 异常: Socket closed”,这时我还是耐心去检查连接数据库的那个类,也就是 Condb.java
public void close(){
try{
if(rs!=null)
rs.close();
}catch(Exception e){
System.out.println(e);
}
System.out.println("调整了关闭顺序!。。。。");
try{
if(con!=null)
con.close();
}catch(Exception e){
System.out.print(e);
}
}
原文中,先是关闭了con,后来关闭的rs,因此不断地出现 socket closed的错误。
调整了关闭顺序之后问题得到了解决。
4、问题又发现了一个就是 在购物车的处理存在“商品名称”、“商品价格”显示为空的问题:这个需要再进一步测试,发现其中的问题所在。
问题原因仍然是,对中文乱码进行了冗余处理。
(usr/add.jsp)
//String pn=chr.toChinese(request.getParameter("pname"));
String pn= request.getParameter("pname");
//System.out.println("pname=:"+request.getParameter("pname"));
修改后问题得到了解决。
5、程序重新发布出现了这样的报错信息。
警告: Cannot serialize session attribute shop for session 5AF10B93507AFA5ADA66A543AE8D9C05
java.io.NotSerializableException: com.bwm.cart.buyList
public class buyList implements Serializable ,做了一个实现Serializable接口,问题得到了解决。
6、严重的问题如下:使用管理员账号admin/1登陆后台进行管理发现:
在处理订单的处理的时候出现了如下问题
第一行的商品点击了对勾以后,所有的此订单下面的商品与这个订单,在订单信息管理下就不能够看到了。这显然是不符合逻辑的。订购的商品肯定要一条条来处理。
(1.)、修改保存订购商品信息得表:tb_Shop表的结构,增加一个int型的字段flag。0表示没有被处理,1表示已经被处理了。
(2)在所有涉及到tb_Shop表的所有jsp页面中,注意进行修改,特别是sub/manage.jsp修改增加单据的代码信息”
String str="insert into tb_Shop(Subid,Warename,Price,Wsum,Wcount)values('"+subid+"','"+warename+"','"+price+"','"+number+"','"+number*price+"',0,)";
(3)admin/shop.jsp中增加代码如下:
<title>订单显示页<%request.setCharacterEncoding("GB2312");%></title>
用于处理中文乱码
另外增加传递的参数:
<%String warename=rs.getString(2);
System.out.println("warename:="+warename);
// request.setAttribute("warename",warename);
%>
<input type="hidden" name="warename" value="<%=warename%>"> 在admin/execu.jsp可以接受到此参数。
(4)admin/execu.jsp增加相应的处理逻辑,在一个订单里面的所有商品都处理完成后,增加对此订单标记的修改为1,这样此订单,在订单信息管理页面也就是(admin/spif.jsp)中就可以没有此信息。:
if(execu==null){
sql="update tb_Sub set Spif='"+0+"' where Subid='"+number+"'";
}else if(execu.equals("on")){
sql="update tb_Shop set flag="+1+" where Subid='"+number+"' and Warename='"+warename+"'";
//sql1="select * from tb_Sub where "
System.out.println("sql=:"+sql);
}
int temp=con.executeUpdate(sql);
if(temp>0){
sql1="select * from tb_Shop where Subid='"+number+"' and flag=0";
ResultSet rs=con.executeQuery(sql1);
if(!rs.next())
{sql="update tb_Sub set Spif='"+1+"' where Sub='"+number+"'";
con.executeUpdate(sql);
}
仍然存在着问题,下面的不起作用,需要关于checkbox的代码进行研究。
在ShoppingBook项目里面正好有个类似的功能的实现,参照实现代码:如下:
在 shop.jsp中修改:
function check(){
var sends = document.getElementsByName("execu");
var warename;
//alert(sends.length);
for(var i = 0;i<sends.length;i++) {
if(sends[i].checked) {
warename= sends[i].value;
break;
}
}
//var oform = document.getElementsByTagName("form")[0];
//document.write(oform.name);
//oform.aciton="execu.jsp?warename="+warename;
//oform.submit();
document.form1.action="execu.jsp?warename="+warename;
document.form1.submit();
}
实现了此功能,并且还配合做了其他修改。
解决方法如下:
分析原因:通过安全工具,为了数据库安全,把一些不常用的存储过程给删除了。
通过搜索查询到下面的解决方法
解决方法:
把恢复数据库需要用到的存储过程个恢复,打开MSSQL查询分析器,分别运行下面的两条数据库语句即可.
EXEC sp_addextendedproc xp_dirtree ,@dllname ='xpstar.dll'
EXEC sp_addextendedproc xp_fileexist ,@dllname ='xpstar.dll'
二、Web项目调试
1、修改连接数据库的语句:包括驱动的修改,连接语句的修改等。分别在com.bwm.db中,针对两个类进行了修改。
2、我用一个账号,登陆了进去,进行购买商品,却提示商品不存在。
这时发现了问题的症结就是:出现了冗余的中文乱码处理的代码:
//String temp=chr.toChinese(request.getParameter("buy1"));
//System.out.println("buy1=:"+request.getParameter("buy1"));
//System.out.println("temp=:"+temp);
String temp =request.getParameter("buy1");
经过测试发现,问题得到了解决。
3、但是控制台仍然弹出报错信息:“java.sql.SQLException: Io 异常: Socket closed”,这时我还是耐心去检查连接数据库的那个类,也就是 Condb.java
public void close(){
try{
if(rs!=null)
rs.close();
}catch(Exception e){
System.out.println(e);
}
System.out.println("调整了关闭顺序!。。。。");
try{
if(con!=null)
con.close();
}catch(Exception e){
System.out.print(e);
}
}
原文中,先是关闭了con,后来关闭的rs,因此不断地出现 socket closed的错误。
调整了关闭顺序之后问题得到了解决。
4、问题又发现了一个就是 在购物车的处理存在“商品名称”、“商品价格”显示为空的问题:这个需要再进一步测试,发现其中的问题所在。
问题原因仍然是,对中文乱码进行了冗余处理。
(usr/add.jsp)
//String pn=chr.toChinese(request.getParameter("pname"));
String pn= request.getParameter("pname");
//System.out.println("pname=:"+request.getParameter("pname"));
修改后问题得到了解决。
5、程序重新发布出现了这样的报错信息。
警告: Cannot serialize session attribute shop for session 5AF10B93507AFA5ADA66A543AE8D9C05
java.io.NotSerializableException: com.bwm.cart.buyList
public class buyList implements Serializable ,做了一个实现Serializable接口,问题得到了解决。
6、严重的问题如下:使用管理员账号admin/1登陆后台进行管理发现:
在处理订单的处理的时候出现了如下问题
第一行的商品点击了对勾以后,所有的此订单下面的商品与这个订单,在订单信息管理下就不能够看到了。这显然是不符合逻辑的。订购的商品肯定要一条条来处理。
(1.)、修改保存订购商品信息得表:tb_Shop表的结构,增加一个int型的字段flag。0表示没有被处理,1表示已经被处理了。
(2)在所有涉及到tb_Shop表的所有jsp页面中,注意进行修改,特别是sub/manage.jsp修改增加单据的代码信息”
String str="insert into tb_Shop(Subid,Warename,Price,Wsum,Wcount)values('"+subid+"','"+warename+"','"+price+"','"+number+"','"+number*price+"',0,)";
(3)admin/shop.jsp中增加代码如下:
<title>订单显示页<%request.setCharacterEncoding("GB2312");%></title>
用于处理中文乱码
另外增加传递的参数:
<%String warename=rs.getString(2);
System.out.println("warename:="+warename);
// request.setAttribute("warename",warename);
%>
<input type="hidden" name="warename" value="<%=warename%>"> 在admin/execu.jsp可以接受到此参数。
(4)admin/execu.jsp增加相应的处理逻辑,在一个订单里面的所有商品都处理完成后,增加对此订单标记的修改为1,这样此订单,在订单信息管理页面也就是(admin/spif.jsp)中就可以没有此信息。:
if(execu==null){
sql="update tb_Sub set Spif='"+0+"' where Subid='"+number+"'";
}else if(execu.equals("on")){
sql="update tb_Shop set flag="+1+" where Subid='"+number+"' and Warename='"+warename+"'";
//sql1="select * from tb_Sub where "
System.out.println("sql=:"+sql);
}
int temp=con.executeUpdate(sql);
if(temp>0){
sql1="select * from tb_Shop where Subid='"+number+"' and flag=0";
ResultSet rs=con.executeQuery(sql1);
if(!rs.next())
{sql="update tb_Sub set Spif='"+1+"' where Sub='"+number+"'";
con.executeUpdate(sql);
}
仍然存在着问题,下面的不起作用,需要关于checkbox的代码进行研究。
在ShoppingBook项目里面正好有个类似的功能的实现,参照实现代码:如下:
在 shop.jsp中修改:
function check(){
var sends = document.getElementsByName("execu");
var warename;
//alert(sends.length);
for(var i = 0;i<sends.length;i++) {
if(sends[i].checked) {
warename= sends[i].value;
break;
}
}
//var oform = document.getElementsByTagName("form")[0];
//document.write(oform.name);
//oform.aciton="execu.jsp?warename="+warename;
//oform.submit();
document.form1.action="execu.jsp?warename="+warename;
document.form1.submit();
}
实现了此功能,并且还配合做了其他修改。
相关文章推荐
- 关于项目感叹号及报错调试的一点心得
- 关于项目感叹号及报错调试的一点心得
- 项目第一次用AngularJS的ajax与beego调试心得(续)
- Django项目调试心得
- JavaWeb 项目调试心得
- 调试Shoppingbook项目心得
- 项目第一次用AngularJS的ajax与beego调试心得
- VS中调试项目遇到错误提示
- 项目调试之供求网站信息开发----实现网页中搜索匹配查询功能
- 移动项目开发笔记(管理不同解决方案下的DLL文件相互引用之心得体会)
- window反调试跟踪的一点心得
- 利用数据库模版创建方便部署的.Net项目调试环境
- 【Unity3d】【项目学习心得】从资源服务器下载资源(二)
- eclipse远程调试tomcat中的项目
- tomcat调试maven2项目
- 关于软件项目管理的心得体会之二
- 项目调试时候,出现其中用到的一个组件“访问被拒绝”的解决方法。
- 嵌入式成长轨迹66 【智能家居项目】【ARM 飞凌ok6410】【移植智能家居代码时环境调试问题集锦 】
- 如何调试一个DLL项目
- Vss2008 项目调试编译并继续功能(Debug 同时修改代码功能)(已解决)