哪们好心人能帮我调试一个JSP网站源程序代码呀,能运行出来看到界面就行,急急急!本人接触JSP没多久,目前遇到一个访问数据库的问题,提示什么“空指针”,查了很多资料都没搞定,由于这两天就行做出来,所以时间很紧...哪位好心人如有时间就帮个忙吧...先谢了!!!! 平台与环境:xp+tomcat6+struts+jsp源代码在以下网址:http://access911.net/csdn/FileDescription.asp?mdb=2009-4-30&id=57请调试好后压缩发到我邮箱:[email protected] 万分感谢!!! 如果今天晚上12点前做好的,另加分奖励了!
解决方案 »
- 怎么解决图片在myeclipse自带的浏览器可以显示,而外面的浏览器不能显示
- struts1.2 从jsp页面传递数据到action的问题!!求解~~
- jsp写的登录注册 ,老提示数据库连接失败,没用serverlet啊
- 关于tomcat日志文件报的错~?
- 急!! 谁用过JasperReport? 现在需要输出报表导html, 但字段需要动态定义,请问怎么实现啊?
- servlet中request.getRequestDispatcher("index.jsp")跳转到jsp页面没有任何反应
- 大家都来侃(雅俗共赏不给分)
- 大神们看过来!WEB项目如何阻止直接输入网址跳过登陆进入后台啊
- 用BEAN操作文件时的数据一致性问题!
- 和数据库连接的问题
- 请教一个简单的struts2 if 标签的简单应用。
- 关于jsp参数传递、动态增加数据及页面处理问题
少了一个jar包,commons-dbcp-1.2.1.jar,加上这个jar包之后还是有错误,
我正在帮你调试
咱们共同努力吧,你自己也再调试一下看看,比比谁先调试成功
我用的是tomcat6.18,tomcat提示如下:org.apache.struts.action.RequestProcessor processException
警告:Unhandled Exception thrown:class java.lang.NullPointerException
(本人觉得警告信息应该没问题!)
浏览器错误代码如下:
javax.servlet.ServletException: java.lang.NullPointerException
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:535)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:433)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
root cause java.lang.NullPointerException
BookStore.DB.<init>(DB.java:16)
BookStore.BookSearchAction.execute(BookSearchAction.java:40)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.18 logs.
出问题了。如下红色标示因为这是oracle的游标控制方式,sql Server2000 不清楚怎么改正。毕竟两家公司有兼容问题。public ResultSet OpenSql(String sql) {
try {
Statement stmt = connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs = stmt.executeQuery(sql);
System.out.println("sql: "+sql);
}
catch(SQLException ex) {
System.out.println("sql: "+sql);
ex.printStackTrace();
}
return rs;
}
是你的数据库里面的表是costomer,而程序里面不一致,表是storeuser,你把程序里面的storeuser全部换成costomer就对了,就不出现空指针异常了,
这个问题刚刚解决:
解决法:捕获异常,以下面这个类为例,其他的类也都要加上同样的捕获异常的代码:
package BookStore;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionErrors; import javax.servlet.ServletContext;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.SQLException;import java.util.*;
import javax.servlet.http.*;
import org.apache.struts.action.DynaActionForm;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;public final class BookBuyAction extends Action{
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception {
DynaActionForm bookIdForm = (DynaActionForm) form;
Integer bookId = (Integer)bookIdForm.get("bookId");
HttpSession session = request.getSession();
ServletContext context = servlet.getServletContext();
DataSource dataSource =
(DataSource)context.getAttribute(Constants.DATASOURCE_KEY);
DB db = new DB(dataSource);
String PageForward;
ShopCart compareShopCart = new ShopCart();
Vector shopCartList=(Vector)session.getAttribute(Constants.BOOK_SHOPCART_KEY);
if (shopCartList==null) {
shopCartList = new Vector();
}
ActionMessages errors = new ActionMessages();
boolean bBought=false;
if(shopCartList != null ){
for(int i = 0;i < shopCartList.size();i++){
compareShopCart = (ShopCart)shopCartList.get(i);
if (compareShopCart.getId()==bookId.intValue()){
bBought=true;
}
}
}
try{
if (!bBought){
Book book = new Book();
book = Book.GetDetail(db,bookId.intValue());
ShopCart shopCart = new ShopCart();
shopCart.setId(bookId.intValue());
shopCart.setName(book.getName());
shopCart.setSalePrice(book.getSalePrice());
shopCart.setCount(1);
shopCartList.addElement(shopCart);
session.setAttribute(Constants.BOOK_SHOPCART_KEY,shopCartList);
PageForward="toBookShopCart";
}
else{
errors.add(ActionMessages.GLOBAL_MESSAGE,
new ActionMessage("errors.alreadyBought"));
if (!errors.isEmpty()) {
saveErrors(request, (ActionErrors) errors);
}
PageForward="toWrong";
}
}catch (ClassCastException e) { return null; }
db.close();
return (mapping.findForward(PageForward));
}
}
多谢了!我正在更正当中...不该犯“表换了没把程序中表名更新的低级错误”呀...至于big5数据类型的问题,真的要好好查下资料理解下...顺便问句:tyuiouio,你能够运行出来没有?我正在改!回复哦!
多谢!记得把程序里面的storeuser全部换成costomer就是了。tyuiouio,搞定了记得传一份给我,万分感谢!
bookShow.jsp里面取得的值是null<%
Book book = (Book)session.getAttribute(Constants.BOOK_DETAIL_KEY);
%>
上面这句需要处理,取出的都是null
你的order.java也有问题,你的sql语句错了,用了Oracle里面的东西,
sysdate是Oracle里面的,而Microsoft sql server里面是getdate();取当前日期在MSSQL中是“SELECT GETDATE()”,在MYSQL中是“SELECT NOW()”,在Oracle中是“SELECT SYSDATE FROM DUAL
因为数据库里与Ms sql有关键字有冲突,所以改成counts了。