永发信息网

这段代码哪里错误了?

答案:4  悬赏:70  手机版
解决时间 2021-05-08 00:52

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

String title=request.getParameter("title");
String content=request.getParameter("content");

DataSource ds=null;

try{
Context context=new InitialContext();
ds= (DataSource) context
.lookup("java:/comp/env/jdbc/mysqlds");
}catch (Exception e)
{
System.out.println("数据库连接错误");
}

try {
Connection conn = ds.getConnection();
String sql="insert into users (username,userpwd) values(?,?)";
PreparedStatement pstmt=conn.prepareStatement(sql);
pstmt.setString(1, title);
pstmt.setString(3, content);
int result=pstmt.executeUpdate();
System.out.println(result);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

请问上段代码错在哪里?

最佳答案
这是个很哲学的问题
全部回答

错误提示很明显是空指针异常,发生在Blogserver.java的第46行。

你仔细看下你的程序在那里是不是没有取到值。

可以使用DeBug的方式,也可以在使用那个对象的代码上面加上println();打印出对象的值。

逐步确定出错原因~~~~

因为不知道你的46行到底是什么代码,我猜测一下:

--------------------------------------------------------------

ds= (DataSource) context.lookup("java:/comp/env/jdbc/mysqlds");

在上面这句代码下面加上:

println(ds); 打印ds是否为空,在这可能发生空指针异常。

------------------------------------------------------------------

Connection conn = ds.getConnection(); 在这句代码下面加上:

println(conn); 打印conn是否为空,在这也可能发生空指针异常。 -------------------------------------------------------------------------

因为只能看到这么多代码,也就只能这样判断了。你试下~~~

是第一个catch 报的异常 还是第二个

pstmt.setString(3, content);改成pstmt.setString(2, content);
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
QQ的作用是什么?
上海回南京的G7022次高铁座位号
创业的最佳时期是哪个阶段
NOKIA5200的电池哪可以买到
建军快餐地址在哪,我要去那里办事
一部电信话机可以办两个3G无线网卡吗?
如何、忘了他。彻底忘了他
用积分换DNF周边商城卷后怎么激活领取?
为什么牵牛花自动锁定
二张生熟肉店地址在什么地方,想过去办事
祭奠爱情是什么意思?
我在淘宝上看到卖宠物的
安一个宽带怎么能两台电脑一起玩呢
口袋妖怪火红版
宾得km怎么清洗?
推荐资讯
习惯性便秘怎么办?
在QQ农场里除了偷别人的果实,和收获自己的果
100元左右,音质比较好的耳机
黄泥坳在哪里啊,我有事要去这个地方
给工地工人说的话句子,描写工地的句子
我在浙江一家机械厂上班,但是老板不算帐,该咱
在湖北恩施立的网上证卷交易户,能否在其他省
依然一个人的英文
艾薇儿的歌一流?
阿采面馆我想知道这个在什么地方
在选射频导纳料位计时,若法兰选择过大,会有
我是高一新生我舍不得家
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?