看一段代码:输出这段代码,浏览器会输出<strong>"+utf8Txt1+"</strong>~
String txt1 = req.getParameter("txt1");
resp.getWriter().print("<strong>"+utf8Txt1+"</strong>");
思考:
如何可以让浏览器正确识别这句HTML代码?让它正确输出加粗的utf8Txt1,而不是<strong>"+utf8Txt1+"</strong>这段话?
使用ContentType方法
对象.setContentType("text/html"):告诉浏览器,该对象存放的文本,是HTML文本,要解析标签
对象.setContentType("text/plain"):告诉浏览器,该对象存放的文本是普通文本,随便输出
如何不使用ContentType来让浏览器正确解析HTML:
可以直接使用输出一整段完整的HTML代码,这样浏览器就会识别出HTML代码,而解析里面的标签
resp.getWriter().println("<html><head> </head><body>");
resp.getWriter().print("<strong>"+utf8Txt1+"</strong>");
resp.getWriter().print("</body></html>");
Servlet为什么一定要设置Content-type?
- 服务器通过Content-type告诉客户端响应的数据类型,这样浏览器就根据返回的数据类型进行不同的处理
- 如果是图片类型就显示,如果是文本类型就直接显示内容,如果是HTML类型就用浏览器显示内容
-
常用的 Content-type:
- text/html;
- image/gif;
- image/jpeg;
- text/plain;
- text/javascript;