Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 605|回复: 0

菜鸟问题:关于session的存取值问题

  [复制链接]

该用户从未签到

发表于 2016-2-7 13:48:54 | 显示全部楼层 |阅读模式
3Java金币



这是我的 数据表,我想取出grade列里的值放在session中,以供我做用户分级
但是我取出的都是username中的值
我该怎么做才能取到grade中的值?


还有如果我在session中放入多个值(如同时放入id,username,grade),该如何分别取出?


代码如下:

userService
  1. import java.sql.ResultSet;
  2. import java.util.ArrayList;

  3. import com.qym.Utils.SqlHelper;
  4. import com.qym.DAO.userDAO;

  5. public class userService {

  6.     public boolean checkUser(userDAO user){
  7.          
  8.          
  9.         String sql="select * from user where username=? and passwd=?";
  10.         String paras[]={user.getName()+"",user.getPassword()};
  11.         ArrayList al=new SqlHelper().executeQuery(sql, paras);
  12.          
  13.         if(al.size()==0){
  14.             return false;
  15.         }else {
  16.             
  17. //            for(int i=0;i<al.size();i++){
  18. //               
  19. //            }
  20.             
  21.             
  22.             Object []objects=(Object[]) al.get(0);
  23.             
  24.             //user.setName((String)objects[1]);
  25.             user.setGrade(Integer.parseInt(objects[4].toString()));
  26.             
  27.             return true;
  28.         }
  29.          
  30.     }
  31.      
  32.      
  33.      
  34.      
  35.     public boolean checkAddUser(userDAO user){
  36.          
  37.          

  38.          
  39.         String sql="insert into user(username,passwd) values(?,?)";
  40.         String a=user.getName();
  41.         String b=user.getPassword();
  42.         String[] parameters={a,b};
  43.         SqlHelper.executeUpdate(sql, parameters);
  44.          
  45.          
  46.          
  47.          
  48.         return true;
  49.          
  50.          
  51.     }
  52. }
复制代码





GoMyJspUI
  1. import java.io.IOException;
  2. import java.io.PrintWriter;

  3. import javax.servlet.ServletException;
  4. import javax.servlet.http.HttpServlet;
  5. import javax.servlet.http.HttpServletRequest;
  6. import javax.servlet.http.HttpServletResponse;

  7. import com.qym.DAO.userDAO;
  8. import com.qym.Service.userService;

  9. public class GoMyJspUI extends HttpServlet {

  10.      
  11.     public void doGet(HttpServletRequest request, HttpServletResponse response)
  12.             throws ServletException, IOException {

  13.         request.setCharacterEncoding("utf-8");
  14.         response.setContentType("text/html;charset=utf-8");
  15.         PrintWriter out = response.getWriter();
  16.          
  17.          
  18.         String name=request.getParameter("name");
  19.         String p=request.getParameter("password");
  20.          
  21.          
  22.         userDAO loginuser=new userDAO(name,p);
  23.         userService userService=new userService();
  24.          
  25.          
  26.          
  27.          
  28.         if(userService.checkUser(loginuser)){
  29.             
  30.             
  31.             String s="mySession";
  32.             request.getSession().setAttribute("MS", s);
  33.             System.out.print(request.getSession().getAttribute("MS"));
  34.             
  35.             
  36.             
  37.             request.getSession().setAttribute("loginuser", loginuser);
  38.             System.out.println("属性值已经保存在session");
  39.             
  40.             Integer a =Integer.parseInt( request.getSession().getAttribute("loginuser").toString());
  41.             //String a =( request.getSession().getAttribute("loginuser").toString());
  42.             System.out.println(a);
  43.             
  44.             
  45.             request.getRequestDispatcher("/WEB-INF/MyJsp.jsp").forward(request, response);
  46.         }
  47.         else {
  48.             request.getRequestDispatcher("/WEB-INF/ShiBai.jsp").forward(request, response);
  49.         }
  50.     }

  51.      
  52.     public void doPost(HttpServletRequest request, HttpServletResponse response)
  53.             throws ServletException, IOException {

  54.         this.doGet(request, response);
  55.          
  56.     }

  57.      

  58. }
复制代码





userDAO
  1. public class userDAO {

  2.     private int id;
  3.     private String name;
  4.     private String password;
  5.     private int grade;
  6.      
  7.     public userDAO(String name, String password){
  8.         super();
  9.         this.name=name;
  10.         this.password=password;
  11.     }
  12.      
  13.     public int getGrade() {
  14.         return grade;
  15.     }

  16.     public void setGrade(int grade) {
  17.         this.grade = grade;
  18.     }

  19.     public int getId() {
  20.         return id;
  21.     }
  22.     public void setId(int id) {
  23.         this.id = id;
  24.     }
  25.     public String getName() {
  26.         return name;
  27.     }
  28.     public void setName(String name) {
  29.         this.name = name;
  30.     }
  31.     public String getPassword() {
  32.         return password;
  33.     }
  34.     public void setPassword(String password) {
  35.         this.password = password;
  36.     }

  37.     public String toString(){
  38.         return name;      
  39.     }
  40.      
  41.      
  42. }
复制代码



附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册
回复

使用道具 举报

该用户从未签到

发表于 2016-2-22 14:01:35 | 显示全部楼层
感觉好乱。。。你的Dao层是一个实体类 bean 你是想用userDao来做数据载体   
你的查询语句select * from user where username=? and passwd=? 根据当前登录的 用户名和密码来进行查询
那返回值 应该是一个userDao对象 因为在现实生活中不可能有两个相同的用户名和密码 如果userDao为空 则数据不存在 登录失败 否则登录成功   查询出userdao后 用get方法即可取出 grade字段

在session作用域中是以键值对的形式 存放的  根据不同的key 来取值即可  例如:
request.getSession().setAttribute("id", id);
request.getSession().setAttribute("name", name);
request.getSession().getAttribute("id");//获取 session中已 id 为key的值
request.getSession().getAttribute("name");//获取session中 已name 为key的值


回复

使用道具 举报

该用户从未签到

发表于 2016-2-22 14:02:43 | 显示全部楼层
感觉好乱。。。你的Dao层是一个实体类 bean 你是想用userDao来做数据载体   
你的查询语句select * from user where username=? and passwd=? 根据当前登录的 用户名和密码来进行查询
那返回值 应该是一个userDao对象 因为在现实生活中不可能有两个相同的用户名和密码 如果userDao为空 则数据不存在 登录失败 否则登录成功   查询出userdao后 用get方法即可取出 grade字段

在session作用域中是以键值对的形式 存放的  根据不同的key 来取值即可  例如:
request.getSession().setAttribute("id", id);
request.getSession().setAttribute("name", name);
request.getSession().getAttribute("id");//获取 session中已 id 为key的值
request.getSession().getAttribute("name");//获取session中 已name 为key的值
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2024-4-19 23:17 , Processed in 0.383952 second(s), 34 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表