java - 为什么我会出现空指针异常?

标签 java mysql jsp

我已经在下面发布了我的编码,我想输入日期并通过 j s p 将其存储到数据库中。当我执行时,我得到空指针异常。必须做什么改变?有人可以帮忙吗?

我的堆栈跟踪是

堆栈跟踪:

org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)

根本原因

java.lang.NullPointerException
java.text.SimpleDateFormat.parse(SimpleDateFormat.java:1235)
java.text.DateFormat.parse(DateFormat.java:335)
org.apache.jsp.sample_005fvalidate_jsp._jspService(sample_005fvalidate_jsp.java:101)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)

代码:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page import="javax.servlet.*" %>
<%@ page import="javax.servlet.http.*" %>
<%@ page import="java.sql.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.text.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"      "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>ALLOCATION</title>
</head>

<body bgcolor="#FFFFFF" text="#000000">


<%
    Connection con = null;

    String StaffName = request.getParameter("StaffName");
    String hourId = request.getParameter("hourId");
    if(hourId==null)
    hourId="";
    String day = request.getParameter("day");
   if (day==null)
    day="";
    String date = request.getParameter("date");
  SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");here
  java.util.Date dateStr = formatter.parse(date); // (this is the line that cannot be proccessed)
   java.sql.Date dateDB = new java.sql.Date(dateStr.getTime());
   if (date==null)
      date="";

    try {
          Class.forName("com.mysql.jdbc.Driver");
          con =  DriverManager.getConnection("jdbc:mysql://localhost:3306/StaffAllocation","root","success") ;

       // PreparedStatement stat = con.PrepareStatement();
        String updateString ="INSERT INTO tblstaffallocation     (StaffName,hourId,daysId,date) VALUES (?,?,?,?)";   
       //'"+StaffName+"','"+hour+"','"+day+"','"+date+"')
        PreparedStatement preparedStatement = con.prepareStatement(updateString);


        preparedStatement.setString(1, StaffName);
       preparedStatement.setInt(2, 0);
       preparedStatement.setInt(3, 0);
       preparedStatement.setDate(4,dateDB);
        preparedStatement.executeUpdate();

最佳答案

String date = request.getParameter("date");

上面的行有空值。您的请求中没有“日期”参数。请查看。检查请求中参数“date”的大小写

关于java - 为什么我会出现空指针异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20090734/

相关文章:

java - 如何把 webp 转换成 gif?

java - 如何自动每隔 2 小时运行一个 Common Apache Daemon Windows 服务

java - Android 线程同步

MySQL:求和子查询列

java - Struts2 操作不适用于 json 和调度程序的结果类型

java - 运行docker-compose命令时出现意外的文件结束错误

mysql - 是否有理由指定与真实姓名相同的别名?

php - 为什么这不会向数据库提交值?

html - Css 资源在 jsp 中不可用

java - JSP 打印主机名