为什么用 Serlvet 向浏览器输出 <br/> 标签的时候没有换行?


1. 问题

  • 为什么用 Serlvet 向浏览器输出 <br/> 标签的时候没有换行?

2. 解答

  • 使用 Reponse 的输出流的时候,默认情况浏览器会认为所有的内容都是普通文本而已,所以已经对这些标签进行转义了。
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet("/printServlet")
public class PrintServlet extends HttpServlet {

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        PrintWriter out = response.getWriter();
        out.write("AAA<br/>");
        out.write("BBB");
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}
  • 访问 http://localhost:8080/webappPractice2/printServlet,网页显示:
    在这里插入图片描述
  • 要想解决这个问题,需要通知浏览器:处理内容要以文本形式存在的 HTML 代码。
  • response.setContentType("text/html;charset=utf-8"); 告诉浏览器是 HTML 内容后,浏览器便不会当成普通的文本处理了,此时就可以使用 getWriter().write(); 输出 HTML 文本。
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet("/printServlet")
public class PrintServlet extends HttpServlet {

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html;charset=utf-8"); //服务器输出的内容是文本形式存在的HTML代码,并且使用UTF-8解码
        PrintWriter out = response.getWriter();
        out.write("AAA<br/>");
        out.write("BBB");
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}    

原文链接:https://qwert.blog.csdn.net/article/details/105608123

发布了401 篇原创文章 · 获赞 416 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/Regino/article/details/105608123