【发布时间】:2014-03-09 15:46:27
【问题描述】:
这是我的用户验证页面。 检查用户密码和 ID 后,我想在 ArrayList 中传递用户名。 之后,我想在主页中显示名称,但是, 我在我的主页中得到空值。 如何在ArrayList中添加用户名?
// DwB: I love sql injection attacks - this is bad.
rs=st.executeQuery("select * from registration where U_ID='"+
U_ID+"' and Pass='"+Pass+"' ");
while(rs.next()){
na1=rs.getString("U_ID");
pw=rs.getString("Pass");
Name=rs.getString("U_N");}
if((U_ID.equals(na1))&&(Pass.equals(pw))){
HttpSession session=request.getSession();
//List<String> user= new ArrayList<>();
//String id=(String)session.getAttribute("ID");
//session.setAttribute("loggedIn",Name);
String username = request.getParameter("Name");
List<String> users = (List<String>)session.getAttribute("users");
if(null == users) {
users = new ArrayList<String>();
}
users.add(username);
session.setAttribute("users", users);
//response.sendRedirect("Welcome.jsp");
request.setAttribute("U_ID",na1);
request.getRequestDispatcher("/Welcome.jsp").forward(request, response);
【问题讨论】:
-
你也可以粘贴你的jsp代码吗?
-
还有你的堆栈跟踪
-
1) 请坚持Java naming conventions,他们在那里是有原因的。此代码难以辨认。 2) 请阅读SQL Injection; 始终使用
PreparedStatement。在 SQL 查询中看到String连接让我(和许多其他人)很痛苦。