java中Cookie的增删改查操作。

/**

         * 读取所有cookie

         * 注意二、从客户端读取Cookie时,包括maxAge在内的其他属性都是不可读的,也不会被提交。浏览器提交Cookie时只会提交name与value属性。maxAge属性只被浏览器用来判断Cookie是否过期

         * @param request

         * @param response

         */

       @RequestMapping("/showCookies")

        public voidshowCookies(HttpServletRequest request,HttpServletResponse response ){

            

            Cookie[] cookies =request.getCookies();//这样便可以获取一个cookie数组

            if (null==cookies) {

                System.out.println("没有cookie=========");

            } else {

                for(Cookie cookie : cookies){

                   System.out.println("name:"+cookie.getName()+",value:"+cookie.getValue());

                }

            }

            

        }

        /**

         * 添加cookie

         * @param response

         * @param name

         * @param value

         */

        @RequestMapping("/addCookie")

        public voidaddCookie(HttpServletResponse response,String name,String value){

            Cookie cookie = newCookie(name.trim(), value.trim());

            cookie.setMaxAge(30 * 60);// 设置为30min

            cookie.setPath("/");

            System.out.println("已添加===============");

            response.addCookie(cookie);

        }

        /**

         * 修改cookie

         * @param request

         * @param response

         * @param name

         * @param value

         * 注意一、修改、删除Cookie时,新建的Cookie除value、maxAge之外的所有属性,例如name、path、domain等,都要与原Cookie完全一样。否则,浏览器将视为两个不同的Cookie不予覆盖,导致修改、删除失败。

         */

       @RequestMapping("/editCookie")

        public voideditCookie(HttpServletRequest request,HttpServletResponse response,Stringname,String value){

            Cookie[] cookies =request.getCookies();

            if (null==cookies) {

                System.out.println("没有cookie==============");

            } else {

                for(Cookie cookie : cookies){

                   if(cookie.getName().equals(name)){

                       System.out.println("原值为:"+cookie.getValue());

                        cookie.setValue(value);

                       cookie.setPath("/");

                        cookie.setMaxAge(30 *60);// 设置为30min

                       System.out.println("被修改的cookie名字为:"+cookie.getName()+",新值为:"+cookie.getValue());

                       response.addCookie(cookie);

                        break;

                    }

                }

            }

            

        }

        /**

         * 删除cookie

         * @param request

         * @param response

         * @param name

         */

        @RequestMapping("/delCookie")

        public voiddelCookie(HttpServletRequest request,HttpServletResponse response,String name){

            Cookie[] cookies =request.getCookies();

            if (null==cookies) {

                System.out.println("没有cookie==============");

            } else {

                for(Cookie cookie : cookies){

                   if(cookie.getName().equals(name)){

                        cookie.setValue(null);

                        cookie.setMaxAge(0);// 立即销毁cookie

                       cookie.setPath("/");

                       System.out.println("被删除的cookie名字为:"+cookie.getName());

                       response.addCookie(cookie);

                        break;

                    }

                }

            }

        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这是一个比较全面的要求,需要设计到多个模块的功能实现。我可以给你一些思路和建议,但是具体实现还需要你自己去完成。 1. 登录模块:可以使用JavaWeb的Session或者Cookie保存用户登录状态,以及进行身份验证。可以参考以下代码实现: ```java // 登录 String username = request.getParameter("username"); String password = request.getParameter("password"); User user = userService.login(username, password); if (user != null) { // 登录成功,将用户信息存入Session request.getSession().setAttribute("user", user); response.sendRedirect("index.jsp"); } else { // 登录失败,返回错误信息 request.setAttribute("error", "用户名或密码错误"); request.getRequestDispatcher("login.jsp").forward(request, response); } ``` 2. 部门管理模块:可以使用JDBC或者ORM框架来实现对部门的增删改查操作。可以参考以下代码实现: ```java // 查询所有部门 List<Department> departments = departmentService.findAll(); // 添加部门 Department department = new Department(); department.setName("技术部"); department.setDescription("负责公司的技术研发"); departmentService.add(department); // 修改部门 department.setName("研发部"); department.setDescription("负责公司的产品研发"); departmentService.update(department); // 删除部门 departmentService.delete(department.getId()); ``` 3. 员工管理模块:同样可以使用JDBC或者ORM框架来实现,需要注意员工需要归属到具体的部门。可以考虑使用外键来实现关联。可以参考以下代码实现: ```java // 查询所有员工 List<Employee> employees = employeeService.findAll(); // 添加员工 Employee employee = new Employee(); employee.setName("张三"); employee.setAge(25); employee.setGender("男"); employee.setDepartment(department); employeeService.add(employee); // 修改员工 employee.setName("李四"); employee.setAge(30); employeeService.update(employee); // 删除员工 employeeService.delete(employee.getId()); ``` 4. 任务派发模块:需要考虑如何进行任务的分配和管理,可以使用数据库表或者文件来记录任务信息。可以参考以下代码实现: ```java // 查询所有任务 List<Task> tasks = taskService.findAll(); // 添加任务 Task task = new Task(); task.setTitle("开发新功能"); task.setDescription("负责开发公司新的功能模块"); task.setEmployee(employee); taskService.add(task); // 修改任务 task.setTitle("优化系统性能"); task.setDescription("负责优化公司的系统性能"); taskService.update(task); // 删除任务 taskService.delete(task.getId()); ``` 5. 任务完成模块:员工完成任务后需要上传任务完成情况附件,可以考虑使用文件上传组件来实现。可以参考以下代码实现: ```java // 上传文件 Part filePart = request.getPart("file"); String fileName = filePart.getSubmittedFileName(); InputStream fileContent = filePart.getInputStream(); File file = new File("/path/to/upload/" + fileName); Files.copy(fileContent, file.toPath()); // 下载文件 File file = new File("/path/to/upload/" + fileName); response.setContentType("application/octet-stream"); response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\""); Files.copy(file.toPath(), response.getOutputStream()); ``` 6. 任务审核模块:经理需要审核任务结果,可以使用审核流程或者审批模块来实现。可以参考以下代码实现: ```java // 查询所有待审核任务 List<Task> tasks = taskService.findPendingTasks(); // 审核任务 Task task = taskService.get(taskId); task.setStatus(Task.Status.APPROVED); taskService.update(task); ``` 7. 绩效管理模块:可以在任务完成后自动计算员工绩效,并将绩效信息存入数据库,经理可以通过导出功能来查看员工的绩效情况。可以参考以下代码实现: ```java // 计算绩效 Employee employee = employeeService.get(employeeId); List<Task> tasks = taskService.findByEmployee(employee); int completedCount = 0; int totalCount = tasks.size(); for (Task task : tasks) { if (task.getStatus() == Task.Status.COMPLETED) { completedCount++; } } double performance = (double) completedCount / totalCount; // 存储绩效 Performance performance = new Performance(); performance.setEmployee(employee); performance.setPerformance(performance); performanceService.add(performance); // 导出绩效 List<Performance> performances = performanceService.findByDepartment(department); response.setContentType("application/octet-stream"); response.setHeader("Content-Disposition", "attachment; filename=\"performance.xls\""); ExcelUtils.export(performances, response.getOutputStream()); ``` 以上是一个简单的思路,你可以根据自己的实际情况来进行具体实现。在实现的过程,需要注意代码的可读性、可维护性和安全性等方面。同时,也需要注意数据表的设计和关联。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值