我正在尝试使用提交按钮更新数据库中的数据,女巫位于jsp页面上,该页面显示基于您在login.jsp中输入的姓名和数据的数据。
validationForDatabase.jsp显示来自表pacijent的数据,基于名称和姓氏在另一个jsp页面中输入。字段名称和姓氏是只读的,因此您可以查找除了那些文件之外的所有内容,当您创建字符并按下按钮更新时,它应该将您重定向到update.jsp。如果更新成功,您可以将sholud重定向回validationForDatabase.jsp,但不是这样做,而是显示我从else部分输入的数据不正确。 你能否指导我如何解决这个问题,或者采取另一种方式来解决这个问题。
提前致谢
validationForDatabase.jsp
`
<%
try{
String name= request.getParameter("name");
String surname= request.getParameter("surname");
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection ("jdbc:mysql://localhost:3306/sth","root","");
PreparedStatement pst = conn.prepareStatement("Select name,surname from pacijent where name=? and surname=?");
pst.setString(1, name);
pst.setString(2, surname);
ResultSet rs = pst.executeQuery();
if(rs.next())
{
out.println("Name of the patient : "+name);
out.println("<br/>Surname of the patient : "+surname);
HttpSession sesija = request.getSession();
sesija.setAttribute("name", name);
sesija.setAttribute("surname", surname);
%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.Connection"%>
<%
String connectionUrl = "jdbc:mysql://localhost:3306/sth";
try {Class.forName("com.mysql.jdbc.Driver");}
catch (ClassNotFoundException e) {e.printStackTrace();}
Connection connection = null;
Statement statement = null;
ResultSet resultSet = null;
%>
<form action="Update.jsp" method="get">
<%
try{
connection = DriverManager.getConnection ("jdbc:mysql://localhost:3306/sth","root","");
statement=connection.createStatement();
String sql ="SELECT name,father,surname,birth,adress,phone,email,notes "+ "FROM pacijent where name='"+sesija.getAttribute("name")+"'and surname='"+surname+"';";
resultSet = statement.executeQuery(sql);
while(resultSet.next()){
%>
<p align="center"><%= sesija.getAttribute("name")%><%= sesija.getAttribute("surname")%></p>
<p><label class="uname">name</label><input name="name" readonly value="<%=sesija.getAttribute("name") %>"/></p>
<p><label class="uname">father</label><input name="father" value="<%=resultSet.getString("father") %>"/></p>
<p><label class="uname">surname</label><input name="surname" readonly value="<%=sesija.getAttribute("surname") %>"/></p>
<p><label class="uname">birth</label><input name="birth" value="<%=resultSet.getString("birth") %>"/></p>
<p><label class="uname">Adress</label><input name="adress" value="<%=resultSet.getString("adress ") %>"/></p>
<p><label class="uname">phone</label><input name="phone" value="<%=resultSet.getString("phone") %>"/></p>
<p><label class="uname" > E-mail</label><input name="email" value="<%=resultSet.getString("email") %>"/></p>
<p><label for="usernamesignup" class="uname">info</label>
<textarea name="notes" id="a" class="a" rows="4" cols="60"
textareaObject.value="text" ><%= resultSet.getString("notes") %></textarea></p>
<input type="submit" name="Submit" value="Update" />
</form>
<%
}
connection.close();
} catch (Exception e) {
e.printStackTrace();
}
sesija.invalidate();
%>
<%
}
else{
%>
<br/><br/><br/><br/><br/><h1 align="center">Badly entered data</h1>
<%}
}
catch(Exception e){
out.println("Error "+e);
}
%>`
Update.jsp可以重定向,但不会更新数据。
Update.jsp ` &LT;%
String name=request.getParameter("name");
String father=request.getParameter("father");
String surname=request.getParameter("surname");
String birth=request.getParameter("birth");
String adress =request.getParameter("adress ");
String phone=request.getParameter("phone");
String email=request.getParameter("email");
String notes=request.getParameter("notes");
try {
Connection conn = null;
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/sth", "root", "");
Statement st1 = null;
st1 = conn.createStatement();
HttpSession sesija = request.getSession();
sesija.setAttribute("name", name);
System.out.println(sesija.getAttribute(name));
st1.executeUpdate("UPDATE pacijent SET name= '"+name+"',father= '"+father+"',"
+ "surname= '"+surname+"',birth= '"+birth+"',adress = '"+adress +"',"
+ "phone= '"+phone+"',email = '"+email+"',notes = '"+notes+"'"
+ "WHERE name="+sesija.getAttribute(name));
response.sendRedirect("validationForDatabase.jsp");
} catch (Exception e) {
out.println("Error : " + e);
}
%>`
非常感谢。