前一个FirstServletWebApp只是将在webapp中加入了servlet代码,并将结果输出到控制台,这次在PrintToBroswer使用servlet代码实现简单的输出到浏览器的操作。
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <servlet> <servlet-name>helloServlet</servlet-name> <servlet-class>WelcomeServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>helloServlet</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> </web-app>
WelcomeServlet.java
import javax.servlet.Servlet; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import java.io.IOException; import java.io.PrintWriter;//标准输出流,不需要关闭 public class WelcomeServlet implements Servlet { public void init(ServletConfig config)throws ServletException{} public void service(ServletRequest request,ServletResponse response) throws ServletException,IOException{ //解决响应的时候中文乱码问题 //设置响应的内容类型以及字符编码方式 response.setContentType("text/html;charset=UTF-8"); //将信息输出到浏览器上 //将HTML字符输出到浏览器上,浏览器解释执行 PrintWriter out = response.getWriter(); out.print("<html>"); out.print("<head>"); out.print("<title>welcome servlet</title>"); out.print("</head>"); out.print("<body>"); out.print("<h1 align='center'>welcom study servlet</h1>"); out.print("<br>"); out.print("<font>我喜欢你!</font>"); out.print("</body>"); out.print("</html>"); //ln表示将HTML源代码换行,这个没有必要,换行后反而体积增大了,影响效率。 /* out.println("<html>"); out.println("<head>"); out.println("<title>welcome servlet</title>"); out.println("</head>"); out.println("<body>"); out.println("<h1 align='center'>welcom study servlet<h1>"); out.println("</body>"); out.println("</html>"); */ } public void destroy(){} public String getServletInfo(){return null;} public ServletConfig getServletConfig(){return null;} }
HttpServletResponse对象
javax.servlet.ServletResponse是接口,是SUN制定的响应对象,专门完成向浏览器的响应动作。
javax.servlet.http.HttpServletResponse父接口是ServletResponse
获取响应流:PrintWriter out = response.getWriter();
解决响应中的中文乱码问题(在获取响应流之前设置,设置响应的内容类型以及字符编码方式):response.setContentType(“text/html;charset=UTF-8”);内容类型编写错误会导致文件下载。
关于PrintWriter中的方法:
- println方法:输出到浏览器的HTML源码换行
- print方法:输出到浏览器的HTML源码不换行
如果想在网页中做到换行效果,需要使用HTML识别的 <br>标签。
向特定的浏览器客户端发送Cookie:response.addCookie(cookie);