Javaweb综合案例一(用户信息管理)

本文介绍了使用JavaWeb实现的用户信息管理系统,包括三层架构的使用:界面层、业务逻辑层和数据访问层。详细讲解了登录、index界面、添加用户、删除、删除选中、修改、分页条件查询和条件查询等功能的代码实现与分析。
摘要由CSDN通过智能技术生成

目录

一、软件架构

二、代码实现及分析

1、登录功能

2、index界面 

3、添加用户功能

 4、删除功能

5、删除选中功能

6、修改功能

 7、分页条件查询功能

8、条件查询功能(补充) 


一、软件架构

软件架构(software architecture)是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。软件架构是一个系统的草图。软件体系结构是构建计算机软件实践的基础。

进行项目前,先确定软件架构,可以更清晰明了得进行编写,在此次案例中使用了三层架构。

三层架构

1. 界面层(表示层):用户看的得界面。用户可以通过界面上的组件和服务器进行交互
2. 业务逻辑层:处理业务逻辑的。
3. 数据访问层:操作数据存储文件。

项目体现:

二、代码实现及分析

1、登录功能

登录页面的html代码和验证码的servlet代码就不详细展示了,需要注意的是验证码的获取以及点击刷新的实现。

验证码jsp代码展示:

 
<div class="form-inline">
            <label for="vcode">验证码:</label>
            <input type="text" name="verifycode" class="form-control" id="verifycode" placeholder="请输入验证码"
                   style="width: 120px;"/>
            <a href="javascript:refreshCode()">
                <img src="${pageContext.request.contextPath}/checkCodeServlet" title="看不清点击刷新" id="vcode"/>
            </a>
        </div>
<script type="text/javascript">
        function refreshCode() {
            //获取验证码图片对象
            var vcode = document.getElementById("vcode");
            //设置src属性,加上时间戳
            vcode.src = "${pageContext.request.contextPath}/checkCodeServlet?time=" + new Date().getTime();
        }
    </script>

LoginServlet分析:

1、确保验证码的一次性,登录成功或者登录失败后都需要删除验证码。

         //确保验证码一次性,使用完就删除
        session.removeAttribute("CHECKCODE_SERVER");

2、存储提示信息到request域,转发到登录页面。(存储到request域就使用转发) 

             //提示信息
            request.setAttribute("login_msg", "验证码错误!");
            //转发到登录页面
            request.getRequestDispatcher("/login.jsp").forward(request, response);

3、调用service方法与数据库进行比对,如果成功需要把数据存储到session域并重定向到index界面。(session域存储就使用重定向)

             //登录成功将user存储到session
            session.setAttribute("user", loginUser);
            //重定向到头页面
            response.sendRedirect(request.getContextPath() + "/index.jsp");

LoginServlet代码展示:

  //设置post请求体编码
        request.setCharacterEncoding("utf-8");
        //获取输入的验证码
        String verifycode = request.getParameter("verifycode");
        //获取生成的验证码进行校验
        HttpSession session = request.getSession();
        String checkcode_server = (String) session.getAttribute("CHECKCODE_SERVER");
        //确保验证码一次性,使用完就删除
        session.removeAttribute("CHECKCODE_SERVER");
        if (!checkcode_server.equalsIgnoreCase(verifycode)) {
            //提示信息
            request.setAttribute("login_msg", "验证码错误!");
            //转发到登录页面
            request.getRequestDispatcher("/login.jsp").forward(request, response);
            return;
        }

        //获取user全部数据
        Map<String, String[]> map = request.getParameterMap();
        //封装user对象
        User user = new User();
        try {
            BeanUtils.populate(user, map);
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            e.printStackTrace();
        }

        //调用service方法查询
        UserService service = new UserServiceImpl();
        //如果username和password正确,则返回数据,如果不正确则返回null
        User loginUser = service.login(user);
        //通过返回值是否为null来判断登录是否成功

        if (loginUser != null) {
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值