前一个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);