servlet获取session中的值,为啥获取用户id时每次得到的都是id=0(数据库中为1),其他的字段没问题!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了servlet获取session中的值,为啥获取用户id时每次得到的都是id=0(数据库中为1),其他的字段没问题!相关的知识,希望对你有一定的参考价值。

使用jsp+servlet+dao 设计模式

接口:UserDao.java

public interface UserDao
public boolean getUser(User user);
public void changePassword(User user,int id);


接口的实现:UserDaoJdbcImpl.java

public class UserDaoJdbcImpl implements UserDao

@Override
public boolean getUser(User user)
boolean flag = false;
List list=null;
String sql="select id,username,password from users where username=? and password=?";
String params[] = user.getUsername(),user.getPassword();

try
QueryRunner qr = Dbc.getQueryRunner();
list = (List) qr.query(sql, new BeanListHandler(User.class),params);
if(list.size()>0)
flag=true;
user = (User) list.get(0);


catch (SQLException e)
throw new DaoException(e.getMessage(), e);

return flag;


@Override
public void changePassword(User u,int id)
String sql="update users set password=? where id="+id;
try
System.out.println("id是"+id);
System.out.println(u.getPassword());
QueryRunner qr = Dbc.getQueryRunner();
qr.update(sql, u.getPassword());
System.out.println("555555");
catch (SQLException e)
throw new DaoException(e.getMessage(), e);



参考技术A 问题严重的我都不想讲了。你getUser这个方法设计的简直不是失败能形容的了。你是不是在想,我传进去一个user,在这个方法里面,如果找到了,就把这个传过来的user指向找到的user。如果是的话,大哥,那原来的那个user,还是你新建出来的。跟你这个到数据库中找出来的没关系。唉。。。
你可以这样改啊。
public User getUser(String username,String password)
User user = null;
List list=null;
String sql="select id,username,password from users where username=? and password=?";
String params[] = username,password;

try
QueryRunner qr = Dbc.getQueryRunner();
list = (List) qr.query(sql, new BeanListHandler(User.class),params);
if(list.size()>0)
user = (User) list.get(0);


catch (SQLException e)
throw new DaoException(e.getMessage(), e);

return user;


然后在该用这个方法的地方,你完全可以判断返回回来的user是不是null,来判断你传过去的username和password是不是能找到user.明白了不?本回答被提问者采纳
参考技术B 大兄弟你好了吗。我也是这问题

如何让php获取session的值

首先如果是文本存储session请注意浏览器的cookie是否关闭,如果关闭了正常情况下是无法使用session的,只能通过url路由去传递session的id值实现调用session,如果是数据库中的session请设置session的存储方式 参考技术A 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

<?php
session_start();
// store session data
$_SESSION['views']=1;
?>

<html>
<body>

<?php
//retrieve session data
echo "Pageviews=". $_SESSION['views'];
?>

</body>
</html>

存储 Session 变量

存储和取回 session 变量的正确方法是使用 PHP $_SESSION 变量:本回答被提问者采纳
参考技术B session的值都在$_SESSION数组里面,按照存的键取用。可以用print_r打印出全部内容。

以上是关于servlet获取session中的值,为啥获取用户id时每次得到的都是id=0(数据库中为1),其他的字段没问题!的主要内容,如果未能解决你的问题,请参考以下文章

如何在servlet中获得session的值,并且把获得的值赋给网页中的文本域

如何让php获取session的值

dedecms怎么获取session

如何获取handler里的session

jsp用el表达式获取后台传来的值,或者获取session中的值

.NET 一般处理程序中获取到的session值为空