private void doAdd(HttpServletRequest request, HttpServletResponse response) throws IOException { // response.setContentType("text/html;charset=utf-8"); // PrintWriter out = response.getWriter(); // String monitorTimeStr = request.getParameter("monitorTime"); // SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // Date date = new Date(); // try { // date = sdf.parse(monitorTimeStr); // } catch (ParseException e) { // e.printStackTrace(); // } request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); String loginName = request.getParameter("loginname"); String loginTime = request.getParameter("logintime"); String exitTime = request.getParameter("exittime"); LoginLog loginLog = new LoginLog(); loginLog.setLoginName(loginName); loginLog.setLoginTime(loginTime); loginLog.setExitTime(exitTime); ResponseResult result = loginLogService.saveLoginLog(loginLog); if (result.getCode() == 200) { out.print("<script>alert('添加成功');location.href='" + request.getContextPath() + "/loginLogSave.do'</script>"); } else { out.print("<script>alert('" + result.getMessage() + "');location.href='" + request.getContextPath() + "/loginLogSave.do'</script>"); } try { request.getRequestDispatcher("jsp/loginLog/list.jsp").forward(request, response); } catch (ServletException e) { e.printStackTrace(); } }
时间: 2024-04-19 22:24:19 浏览: 17
这段代码是一个Java Servlet中的一个方法,用于处理添加登录日志的请求。在该方法中,首先设置请求和响应的字符编码为UTF-8,并获取请求中的登录名、登录时间和退出时间参数。
接下来,创建一个LoginLog对象,并将获取到的登录名、登录时间和退出时间设置到该对象中。
然后调用loginLogService的saveLoginLog方法保存登录日志,并获取保存结果。
根据保存结果的code属性判断是否保存成功,如果成功,则通过JavaScript弹窗提示添加成功,并跳转到登录日志保存页面;如果失败,则通过JavaScript弹窗提示保存失败的消息,并跳转到登录日志保存页面。
最后,通过请求转发将请求转发到"jsp/loginLog/list.jsp"页面进行处理。
请注意,此段代码中有一段注释掉的代码,是关于解析日期的部分。在注释掉的代码中,使用SimpleDateFormat对monitorTimeStr进行日期解析,然后将解析结果设置到date对象中。由于未使用date对象,因此可以将该部分代码删除或注释掉。
相关问题
exports.doAdd = function (req, res) { var form = new formidable.IncomingForm() form.uploadDir = config.uploadPath form.keepExtensions = true form.parse(req, function (err, fields, files) { if (err) { return res.end(err.message) } var title = fields.titlevar var singer = fields.singer var music = path.basename(files.music.path) var poster = path.basename(files.poster.path) var id = 0 storage.forEach(function (item) { if (item.id > id) { id = item.id } }) storage.push({ id: id + 1, title: title, singer: singer, music: music, poster: poster }) res.writeHead(302, { 'Location': 'http://127.0.0.1:3123' }) res.end() }) }
这段代码定义了一个`doAdd`函数,并将其导出。该函数是一个请求处理器,用于处理POST方式提交的表单数据。
函数中首先创建了一个`formidable.IncomingForm`实例,并设置了上传文件的保存路径和保留文件扩展名的选项。
然后通过`form.parse()`方法对请求体进行解析,获取表单字段和上传的文件信息。如果解析过程中发生错误,则返回错误信息给客户端。
接下来从表单字段中获取`title`和`singer`,从上传的文件信息中获取`music`和`poster`,并将其组成一个音乐对象。同时,通过`storage`数组中已有的对象的`id`来确定新对象的`id`,并将其添加到`storage`数组中。
最后通过`res.writeHead()`方法设置响应状态码和重定向地址,向客户端发送响应,并结束响应。
if (method === 'GET' && pathname === '/') { //首页 musicController.showIndex(req, res) } else if (method === 'GET' && pathname.startsWith('/node_modules/')) { var staticPath = path.join(__dirname, pathname) fs.readFile(staticPath, 'utf8', function (err, data) { if (err) { return res.end(err.message) } res.end(data) }) } else if (method === 'GET' && pathname === '/add') { musicController.showAdd(req, res) } else if (method === 'GET' && pathname === '/edit') { musicController.showEdit(req, res) } else if (method === 'POST' && pathname === '/add') { musicController.doAdd(req, res) } else if (method === 'GET' && pathname === '/remove') { musicController.doRemove(req, res) } else if (method === 'POST' && pathname === '/edit') { musicController.doEdit(req, res) } }解析一下代码
这段代码是一个基于 Node.js 的 Web 服务器路由器,它可以处理 GET 和 POST 请求,根据请求的 URL 调用相应的控制器方法,完成对应的功能,例如展示首页、添加、编辑和删除音乐等。其中,对于 GET 请求,如果请求的是根路径 '/',则调用 showIndex 方法展示首页;如果请求的是以 '/node_modules/' 开头的静态文件,那么直接读取该静态文件并返回;如果请求的是 '/add',则调用 showAdd 方法展示添加音乐的页面;如果请求的是 '/edit',则调用 showEdit 方法展示编辑音乐的页面;如果请求的是 '/remove',则调用 doRemove 方法删除音乐;对于 POST 请求,如果请求的是 '/add',则调用 doAdd 方法添加音乐;如果请求的是 '/edit',则调用 doEdit 方法编辑音乐。