PrintWriter writer = null;
时间: 2024-02-26 10:52:12 浏览: 16
这段代码用于声明一个PrintWriter类型的变量writer,并初始化为null。PrintWriter是Java中用于将文本输出到字符流的类,通常用于输出HTTP响应的内容。
在后续的代码中,如果需要向客户端输出HTTP响应的内容,就可以使用writer对象。如果writer对象为null,则说明无法输出HTTP响应的内容,通常会抛出异常或返回错误信息。
相关问题
PrintWriter writer = null; response.setCharacterEncoding("UTF-8"); response.setContentType("application/json; charset=utf-8"); try { writer = response.getWriter(); writer.print(JSONObject.toJSONString(R.error(401, "请先登录"))); } finally { if(writer != null){ writer.close(); } } return false; } }
这段代码是一个 Java Servlet 中的代码,主要作用是在用户未登录时返回一个错误消息。具体来说,代码首先设置响应的编码和内容类型为 JSON,然后尝试获取响应的输出流并使用 JSON 序列化框架将一个错误的 JSON 对象写入到输出流中,最后关闭输出流并返回 false。
需要注意的是,代码中使用了 try-finally 语句块来确保无论发生什么情况,输出流都能够被正确地关闭,避免资源泄漏。
//从header中获取token String token = request.getHeader(LOGIN_TOKEN_KEY); /** * 不需要验证权限的方法直接放过 */ if(annotation!=null) { return true; } TokenEntity tokenEntity = null; if(StringUtils.isNotBlank(token)) { tokenEntity = tokenService.getTokenEntity(token); } if(tokenEntity != null) { request.getSession().setAttribute("userId", tokenEntity.getUserid()); request.getSession().setAttribute("role", tokenEntity.getRole()); request.getSession().setAttribute("tableName", tokenEntity.getTablename()); request.getSession().setAttribute("username", tokenEntity.getUsername()); return true; } PrintWriter writer = null; response.setCharacterEncoding("UTF-8"); response.setContentType("application/json; charset=utf-8"); try { writer = response.getWriter(); writer.print(JSONObject.toJSONString(R.error(401, "请先登录"))); } finally { if(writer != null){ writer.close(); } } // throw new EIException("请先登录", 401); return false; } }代码解析
这段代码是一个拦截器,用于验证用户是否已经登录。首先从请求的header中获取token,如果该请求的方法被标记为不需要验证权限,则直接放过。如果获取到了token,则通过tokenService来获取对应的TokenEntity,并将用户的信息存入session中,然后返回true表示已验证通过。如果没有获取到token,则返回一个401错误,提示用户需要先登录。
其中,response.getWriter()用于获取输出流,然后将返回结果以JSON格式输出给客户端。如果在获取输出流的过程中抛出异常,会在finally中关闭输出流。