Servlet 4—— 将响应结果输出到浏览器中

前一个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>标签。

向特定的浏览器客户端发送Cookieresponse.addCookie(cookie);

转载请注明出处:https://www.cnblogs.com/stu-jyj3621
原文地址:https://www.cnblogs.com/stu-jyj3621/p/14351817.html