Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 这段代码昨天运行得很好-现在它不';T_Java_String_Http Post - Fatal编程技术网

Java 这段代码昨天运行得很好-现在它不';T

Java 这段代码昨天运行得很好-现在它不';T,java,string,http-post,Java,String,Http Post,这个代码对我来说非常有效。我创建了一个html表单,用户输入的所有内容都会变成java中的字符串。我将使用这些字符串和一个准备好的语句将信息输入SQLite 我让它工作,测试了几次,它是完美的。然后我将代码最小化了几个小时。我再次打开它,它就停止工作了。现在所有的字符串都是“null”。不知道为什么 这里是雇主DAO准备的声明: static boolean insertEmployeeAtId(String name, String gender, String dob, String ad

这个代码对我来说非常有效。我创建了一个html表单,用户输入的所有内容都会变成java中的字符串。我将使用这些字符串和一个准备好的语句将信息输入SQLite

我让它工作,测试了几次,它是完美的。然后我将代码最小化了几个小时。我再次打开它,它就停止工作了。现在所有的字符串都是“null”。不知道为什么

这里是雇主DAO准备的声明:

 static boolean insertEmployeeAtId(String name, String gender, String dob, String address, String postcode, String natins, String title, String startdate, String salary, String email) throws SQLException {
    Employees e = new Employees();
    PreparedStatement s;

    s = connect.prepareStatement(
            "INSERT INTO Emp_db (Name, Gender, DOB, Address, Postcode, NIN, JobTitle, StartDate, Salary, Email) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");


    s.setString(1, name);
    s.setString(2, String.valueOf(gender));
    s.setString(3, dob);
    s.setString(4, address);
    s.setString(5, postcode);
    s.setString(6, natins);
    s.setString(7, title);
    s.setString(8, startdate);
    s.setString(9, salary);
    s.setString(10, email);
    return s.execute();
    }
}
html表单的一个片段:

 <form id="empForm" method="POST" action="/processEmp">
<h1 class="card-title">Add Employees</h1>
<div class="form-group">
    <label for="name">Name:</label>
    <input id="name" class="form-control" type="text" name=\"name\" pattern="[a-zA-Z-'\s]+" required/>
</div>

添加员工
姓名:
以下是涉及信息处理的控制器:

 server.createContext("/processEmp", new HttpHandler() {
        @Override
        public void handle(HttpExchange t) throws IOException {
            boolean insertEmployee;
            try {
                HashMap<String, String> post = new HashMap<String, String>();

                BufferedReader in = new BufferedReader(new InputStreamReader(t.getRequestBody()));
                String line = "";
                String request = "";
                while ((line = in.readLine()) != null) {
                    request = request + line;
                }
                String[] pairs = request.split(
                        "&"
                );
                for
                        (
                        int
                        i = 0; i < pairs.
                        length
                        ; i++) {
                    String pair = pairs[i];
                    post.put(URLDecoder.decode(pair.split("=")[0], "UTF-8")
                            , URLDecoder.decode(pair.split("=")[1], "UTF-8"));
                }

                String EmpName = post.get("name");
                String EmpGender = post.get("gender");
                String EmpDob = post.get("dob");
                String EmpAddress = post.get("address");
                String EmpPostcode = post.get("postcode");
                String EmpNatins = post.get("natInscNo");
                String EmpTitle = post.get("title");
                String EmpStartDate = post.get("startDate");
                String EmpSalary = post.get("salary");
                String EmpEmail = post.get("email");

                String allEmp = "Name: " + EmpName + " Gender: " + EmpGender + " Dob: " + EmpDob + " Address: " + EmpAddress + " Postcode: " + EmpPostcode + " NatInscNo: " + EmpNatins + " Title: " + EmpTitle + " StartDate: " + EmpStartDate + " Salary: " + EmpSalary + " Email: " + EmpEmail;
                dao.insertEmployeeAtId(EmpName, EmpGender, EmpDob, EmpAddress, EmpPostcode, EmpNatins, EmpTitle, EmpStartDate, EmpSalary, EmpEmail);
                BufferedWriter out = new BufferedWriter(new
                        OutputStreamWriter(t.getResponseBody()));
                out.write("Result = ");
                out.write(String.valueOf(allEmp));
                t.sendResponseHeaders(200, 0);
                out.close();
            }catch(SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    });

    server.setExecutor(null); // default implementation of threading
    server.start();
    System.out.println("The server is up and running on port 8005");
}
server.createContext(“/processEmp”,新的HttpHandler(){
@凌驾
公共无效句柄(HttpExchange t)引发IOException{
布尔插入雇员;
试一试{
HashMap post=新的HashMap();
BufferedReader in=新的BufferedReader(新的InputStreamReader(t.getRequestBody());
字符串行=”;
字符串请求=”;
而((line=in.readLine())!=null){
请求=请求+行;
}
String[]pairs=request.split(
"&"
);
对于
(
int
i=0;i<0对。
长度
;i++){
字符串对=对[i];
post.put(URLDecover.decode(pair.split(“=”[0],“UTF-8”)
,URLDecoder.decode(pair.split(“=”[1],“UTF-8”);
}
字符串EmpName=post.get(“name”);
字符串EmpGender=post.get(“性别”);
字符串EmpDob=post.get(“dob”);
字符串EmpAddress=post.get(“地址”);
字符串EmpPostcode=post.get(“postcode”);
字符串EmpNatins=post.get(“natInscNo”);
字符串EmpTitle=post.get(“title”);
字符串EmpStartDate=post.get(“startDate”);
字符串empalary=post.get(“salary”);
字符串EmpEmail=post.get(“电子邮件”);
字符串allEmp=“Name:”+EmpName+“Gender:”+EmpName+“Dob:”+EmpDob+“Address:”+empnaddress+“Postcode:”+EmpNatins+“natinsno:”+EmpNatins+“Title:”+empnatite:“+EmpStartDate+”Salary:“+empnsalary+”电子邮件:“+EmpEmail;
插入员工ID(EmpName、EmpGender、EmpDob、EmpAddress、EmpPostcode、EmpNatins、EmpTitle、EmpStartDate、EmpSalary、EmpEmail);
BufferedWriter out=新的BufferedWriter(新的
OutputStreamWriter(t.getResponseBody());
out.write(“Result=”);
out.write(String.valueOf(allEmp));
t、 发送响应负责人(200,0);
out.close();
}捕获(SQLE异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
}
});
server.setExecutor(空);//线程的默认实现
server.start();
System.out.println(“服务器已启动并在端口8005上运行”);
}

我更想知道它为什么不能工作,以及如何修复它,然后使用另一种方法将html中的输入值转换成java中的字符串。任何形式的帮助都将不胜感激。

好吧,我要检查的第一件事是,这些值仍然在
post
中。对不起,你是什么意思?我很清楚,如果问题很傻,我很抱歉。我指的是
handle
方法中的
post
变量。它包含正确的信息吗?你很想回溯这一点,看看失败在哪里。如果此变量包含正确的值,则知道问题出在该点之后的某个位置。如果没有,你就知道问题出在那一点之前。它必须是正确的,因为这段代码昨天晚上正在工作。我不知道如何使它再次工作。有可能您的HTML更改了吗?我是说,很明显有些事情改变了。也许您前一段时间更改了HTML,然后忘记刷新,所以问题直到现在才出现。