中易网

来个高人帮我看下这个程序哪有问题

答案:1  悬赏:80  
解决时间 2021-05-24 19:27

package com;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.*;

public class LoginAction extends HttpServlet {

Connection conn = null;

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
String username = req.getParameter("username");
String password = req.getParameter("password");
String role = req.getParameter("role");

boolean isValid = false;
// 比较:校验用户信息的合法性(db)
isValid = checkUserValid(username, password, role);
RequestDispatcher rd = null;
if (isValid) {
rd = req.getRequestDispatcher("successful.html");
} else {
rd = req.getRequestDispatcher("login.html");
}
}

private boolean checkUserValid(String username, String password, String role) {
// TODO Auto-generated method stub
boolean isLogin = false;
String sql = "select * from user where username=? and password=? and role=?";
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, username);
pstmt.setString(2, password);
pstmt.setString(3, role);
pstmt.executeQuery();

if (rs.next()) {
isLogin = true;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (pstmt != null) {
pstmt.close();
}
if (conn != null) {
conn.close();
}
} catch (Exception e1) {
e1.printStackTrace();
}
}
return isLogin;
}

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
super.doPost(req, resp);
}

@Override
public void init() throws ServletException {
// TODO Auto-generated method stub
super.init();
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/tarena";
String username = "root";
String password = "root";
conn = DriverManager.getConnection(url, username, password);
System.out.println(conn);

System.out.println("Connected!");
} catch (Exception e) {
e.printStackTrace();
}
}
}

提示信息:

com.mysql.jdbc.Connection@1368c5d
Connected!
java.lang.NullPointerException
at com.LoginAction.checkUserValid(LoginAction.java:48)
at com.LoginAction.doPost(LoginAction.java:26)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Unknown Source)

不知道是什么问题

最佳答案

java.lang.NullPointerException
at com.LoginAction.checkUserValid(LoginAction.java:48)


某变量初值不能为null,错误发生在第48行,请问你LoginAction.java的第48行是哪一行?

我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
有谁会喜欢我?
广水市新世界水电我想知道这个在什么地方
这是老婆给我写的 我想把这里边的句子 换成另
东莞那边现在哪里有电子厂在招男普工
我的脸有点圆,眼睛也挺小的,我适合什么发型啊
求零之使魔XP主题啊
新华区前太保三姐妹包子铺地址有谁知道?有点
在中国宏观调控的基本策略是什么?
丙烷燃烧发生反应的化学方程式是什么
城市飙车游戏?
江汉区武汉图书馆地址是什么,有没有知道的
摩尔庄园每天赚钱上限是1万、能增加么?
早恋就怎么啦!为什么大人们都反对
免费的永久空间背景音乐怎么弄?
带科博字的网名
推荐资讯
长安区润德木门地址是什么,有没有知道的
为什么我的电脑开机时必须要按下F1才能正常运
四川最辣的一道菜是??
新华区全美便利店地址在什么地方,想今天过去
无聊做什么好?…
殷都区发源地(北苑小区南)地址是什么,有没有
这样把QQ硬盘上把锁?
求一个音乐,里面有风呼啸的声音,这个曲子很
四月初七是什么星座?
为了完成任务,发个问题
《荣誉勋章: 3in1》(Mohaa spearhead)荣誉勋
求图里面这个电影
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?