秦明(๑>؂<๑) 2023-02-26 11:56 采纳率: 0%
浏览 27

java servlet printWriter.close();没有影响

import jakarta.servlet.ServletException;
import jakarta.servlet.ServletInputStream;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
@Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        try (
                ServletInputStream inputStream = req.getInputStream();
                InputStreamReader reader = new InputStreamReader(inputStream, "utf-8");
                BufferedReader bufferedReader = new BufferedReader(reader);
                PrintWriter printWriter = resp.getWriter()
        ) {
            String line;
            StringBuilder builder = new StringBuilder();
            while ((line = bufferedReader.readLine()) != null) {
                builder.append(line);
            }
            String json = builder.toString();
            GoodsInfo goodsInfo = JSONObject.parseObject(json, GoodsInfo.class);
            if (goodsInfo != null) {
                Result result;
                if (goodsInfo.getGoodsId() == null) {
                    result = service.insertSelective(goodsInfo);
                } else {
                    result = service.updateByPrimaryKeySelective(goodsInfo);
                }
                String toJSONString = JSONObject.toJSONString(result);
                printWriter.write(toJSONString);
                printWriter.close();
            }

        }

    }

在servlet中最后一段代码

printWriter.close();

为什么是虚的

img

  • 写回答

3条回答 默认 最新

  • pzzhao 2023-02-26 12:10
    关注

    一般 idea 中代码灰色显示,说明你这个代码是无用的。你可以将鼠标移到灰色显示的代码上,一般会有提示的。

    你这里用了try with resource 的这种写法,是会自动关闭流的,不用手动去执行close方法。

    关于try with resource 可以看下这个博客 https://blog.csdn.net/tianzhonghaoqing/article/details/118720380

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 2月26日