本地运行没有什么问题,但是上传服务器之后出现了异常,求指点
错误日志:
05-Nov-2021 10:13:52.243 SEVERE [http-nio-8083-exec-10] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [LoginServlet] in context with path [/StudentManagerWeb4] threw exception
java.lang.NullPointerException
at com.ischoolbar.programmer.dao.BaseDao.query(BaseDao.java:32)
at com.ischoolbar.programmer.dao.AdminDao.login(AdminDao.java:18)
at com.ischoolbar.programmer.servlet.LoginServlet.doPost(LoginServlet.java:57)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
相关代码:
(前端部分代码)
<input id="" name="password" type="password" placeholder="密码" class="input-text size-L">
<input id="" name="password" type="password" placeholder="密码" class="input-text size-L">
<input class="input-text size-L" name="vcode" type="text" placeholder="请输入验证码" style="width: 200px;">
<img title="点击图片切换验证码" id="vcodeImg" src="CpachaServlet?method=loginCapcha">
//js
$(function(){
//点击图片切换验证码
$("#vcodeImg").click(function(){
this.src="CpachaServlet?method=loginCapcha&t="+new Date().getTime();
});
//登录
$("#submitBtn").click(function(){
var data = $("#form").serialize();
$.ajax({
type: "post",
url: "LoginServlet?method=Login",
data: data,
dataType: "text", //返回数据类型
success: function(msg){
if("vcodeError" == msg){
$.messager.alert("消息提醒", "验证码错误!", "warning");
$("#vcodeImg").click();//切换验证码
$("input[name='vcode']").val("");//清空验证码输入框
} else if("loginError" == msg){
$.messager.alert("消息提醒", "用户名或密码错误!", "warning");
$("#vcodeImg").click();//切换验证码
$("input[name='vcode']").val("");//清空验证码输入框
} else if("loginSuccess" == msg){
window.location.href = "SystemServlet?method=toAdminView";
} else{
alert(msg);
}
}
});
});
//设置复选框
$(".skin-minimal input").iCheck({
radioClass: 'iradio-blue',
increaseArea: '25%'
});
})
(LoginServlet.java部分代码) 57行:Admin admin = adminDao.login(name, password);
public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException{
String method = request.getParameter("method");
if("logout".equals(method)){
logout(request, response);
return;
}
String vcode = request.getParameter("vcode");
String name = request.getParameter("account");
String password = request.getParameter("password");
int type = Integer.parseInt(request.getParameter("type"));
String loginCpacha = request.getSession().getAttribute("loginCapcha").toString();
if(StringUtil.isEmpty(vcode)){
response.getWriter().write("vcodeError");
return;
}
if(!vcode.toUpperCase().equals(loginCpacha.toUpperCase())){
response.getWriter().write("vcodeError");
return;
}
//验证码验证通过,对比用户名密码是否正确
String loginStatus = "loginFaild";
switch (type) {
case 1:{
AdminDao adminDao = new AdminDao();
//57行
Admin admin = adminDao.login(name, password);
adminDao.closeCon();
if(admin == null){
response.getWriter().write("loginError");
return;
}
HttpSession session = request.getSession();
session.setAttribute("user", admin);
session.setAttribute("userType", type);
loginStatus = "loginSuccess";
break;
}
case 2:{
StudentDao studentDao = new StudentDao();
Student student = studentDao.login(name, password);
studentDao.closeCon();
if(student == null){
response.getWriter().write("loginError");
return;
}
HttpSession session = request.getSession();
session.setAttribute("user", student);
session.setAttribute("userType", type);
loginStatus = "loginSuccess";
break;
}
case 3:{
TeacherDao teahcerDao = new TeacherDao();
Teacher teacher = teahcerDao.login(name, password);
teahcerDao.closeCon();
if(teacher == null){
response.getWriter().write("loginError");
return;
}
HttpSession session = request.getSession();
session.setAttribute("user", teacher);
session.setAttribute("userType", type);
loginStatus = "loginSuccess";
break;
}
default:
break;
}
response.getWriter().write(loginStatus);
}
(AdminDao.java部分代码) 18行:ResultSet resultSet = query(sql);
public Admin login(String name ,String password){
String sql = "select * from s_admin where name = '" + name + "' and password = '" + password + "'";
ResultSet resultSet = query(sql);
try {
if(resultSet.next()){
Admin admin = new Admin();
admin.setId(resultSet.getInt("id"));
admin.setName(resultSet.getString("name"));
admin.setPassword(resultSet.getString("password"));
admin.setStatus(resultSet.getInt("status"));
return admin;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
(BaseDao.java) 32行:PreparedStatement prepareStatement = dbUtil.getConnection().prepareStatement(sql);
public ResultSet query(String sql){
try {
PreparedStatement prepareStatement = dbUtil.getConnection().prepareStatement(sql);
return prepareStatement.executeQuery();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}