zoukankan      html  css  js  c++  java
  • 新闻发布系统之登录和注销

    登录:

    DAO层数据访问层UserInfoDAOImpl类:

     1 //进行单测
     2     @Test
     3     public void test() throws Exception{
     4         UserInfo info=new UserInfo();
     5         info.setUsercode(1);
     6         info.setUserpwd("1");
     7         boolean flag=isLogin(info);
     8         System.out.println(flag);
     9     }
    10     //登录
    11     public boolean isLogin(UserInfo info) throws Exception {
    12         boolean flag=false;
    13         String sql="select count(1) as count from news where usercode=? and userpwd=?";
    14         Object[] obj={info.getUsercode(),info.getUserpwd()};
    15         ResultSet rs=executeQuery(sql,obj);
    16         if(rs.next()){
    17             int count=rs.getInt("count");
    18             if(count>0){
    19                 flag=true;
    20             }
    21         }
    22         return flag;
    23     }

    Servlet控制层UserInfoServlet类:

    如果登陆成功就跳转到编辑新闻页面,如果登录失败就跳转到主页面:

    首先:1.解决乱码

          2.创建service层的对象

          3.调度service方法

    4根据方法的返回值,判断转发或者重定向的页面:

    String action = request.getParameter("action");
            System.out.println(action);
    if (action.equals("login")) {
                // 1.解决乱码
                request.setCharacterEncoding("utf-8");
                // 2.创建service层的对象
                IUserInfoService service = new UserInfoServiceImpl();
                // 3.调度service方法
                String temp = request.getParameter("uname");
                if (temp != null && temp != "") {
                    int uname = Integer.parseInt(temp);
                    String upwd = request.getParameter("upwd");
                    UserInfo info = new UserInfo();
                    info.setUsercode(uname);
                    info.setUserpwd(upwd);
                    try {
                        boolean flag = service.isLogin(info);
                        if (flag) {
                            // 登录成功
                            request.getSession().setAttribute("uname", temp);
                            request.getRequestDispatcher(
                                    "/servlet/NewsServlet?action=back").forward(
                                    request, response);
                        } else {
                            request.getRequestDispatcher("/index.jsp").forward(
                                    request, response);
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }

    注销:

    Servlet控制层UserInfoServlet类:在servlet中获取session对象,清除session

    1 if (action.equals("logout")) {
    2             // 1.清楚session
    3             // 在servlet中获取session对象
    4             request.getSession().removeAttribute("uname");
    5             // 2.跳转到index
    6             request.getRequestDispatcher("/servlet/NewsServlet?action=null")
    7                     .forward(request, response);
  • 相关阅读:
    队列的链式存储结构实现
    堆栈的链式存储实现
    使用C#改变windows系统本地时间
    oracle 多数值录入校验(分隔符“/”)
    oracle中in和exists的区别
    redis安装 windows版(图形化安装)
    Oracle 返回结果集
    饿了么4年 + 阿里2年:研发路上的一些总结与思考
    Oracle 获取各类时间
    Oracle表中已有数据,修改字段长度
  • 原文地址:https://www.cnblogs.com/liutao1122/p/7325893.html
Copyright © 2011-2022 走看看