我的代码片段如下:
购物登记2.jsp:
<%
session = request.getSession();
session.setAttribute("s_id", s_id);
out.println("Your id is : "+s_id);
%>
<br>
Please note it for further use.!<br>
<form name="register" method="post" onsubmit=" return reg_form()" action="ShopRegister3.jsp"><br>
Enter your name : <input type="text" name="s_name" id="s_name"><br>
Enter your Location : <input type="text" name="s_location" id="s_location"><br>
Enter your password : <input type="password" name="s_password" id="s_password"> <br>
Confirm Password : <input type="password" name="c_s_password" id="c_s_password"><br>
<input type="submit" value="Submit"><br>
</form><br>
购物登记3.jsp:
String s_name=null, s_password=null, s_location=null;
int s_id = 0;
session.setAttribute("s_name", s_name);
session.setAttribute("s_password", s_password);
session.setAttribute("s_location", s_location);
String s_id_string=(String)request.getParameter("s_id");
s_id = session.getAttribute("s_id") != null ? (Integer) session.getAttribute("s_id") : 0 ;
s_name=(String)session.getAttribute("s_name");
s_password=(String)session.getAttribute("s_password");
s_location=(String)session.getAttribute("s_location");
//entering values into Shop table
PreparedStatement s_insert = con.prepareStatement("insert into ShopSystem.Shop values(?,?,?,?)");
s_insert.setInt(1, s_id);
s_insert.setString(2, s_password);
s_insert.setString(3, s_location);
s_insert.setString(4, s_name);
int c = s_insert.executeUpdate();
//checking whether the value was inserted successfully
if(c>0)
{ %>
S_ID = <%= s_id %> has been registered successfully.<br>
<% response.sendRedirect("ShopMenu3.jsp");
} %>
在上面的代码中,服务器在运行ShopRegister3.jsp之后定向到ShopMenu3.jsp。然而,在我的数据库中,为属性输入了空值:名称,密码和位置。我已经尝试了很多东西...,到底哪里似乎是错误的?
3条答案
按热度按时间watbbzwu1#
您的会话变量始终设置为null;用途:
在进程中设置值之前获取这些值
kiz8lqtg2#
也许这就是问题所在?
然后将session设置为空值。
o2rvlv0m3#
您必须在setSession语句之前首先请求该参数;因此在
ShopRegister3.jsp
中,s_name
初始化为'null后。请求如下参数:现在你可以对这个变量
setSession
;它现在不会为s_name
变量返回null
。