Servlet_2th_Servlet返回html文档

一、Servlet用途

servlet的目的是根据用户的请求信息为用户生成html文档。


客户端通过HTTP协议向服务器提交请求信息,服务器用HttpServletRequest类对这些信息进行封装,然后把这个类的对象传递给servlet。
也就是说service(HttpServletRequest request, HttpServletResponse response)的形参request是服务器传递给servlet的,而响应信息也进行了封装,响应信息会先存放在HttpServletResponse对象中,服务器再将该对象的信息发送给客户端。

总结:
①HttpServletRequest类封装了客户端到服务器端一系列的请求(如客户端传来的参数、客户端的IP地址是多少)
②HttpServletResponse类封装了服务器端到客户端的答复信息。

举例:
在上一篇博文的基础上新建SecondServlet.java:

package com.hpe.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class SecondServlet extends HttpServlet {

	@Override
	protected void service(HttpServletRequest request, HttpServletResponse response) 
			throws ServletException, IOException {
		System.out.println("我的第二个servlet!");
		System.out.println("客户端浏览器的类型:" + request.getHeader("User-Agent"));
		
		response.getWriter().println("<h1>Hello Servlet!</h1>");
		response.getWriter().println("<h2>Hello Servlet!</h2>");
		response.getWriter().println("<hr color='red' />");
	}	
}


需要对SecondServlet.java进行配置,将以下内容添加到web.xml文件的<web-app></web-app>标签中:
  <servlet>
  	<servlet-name>two</servlet-name>
  	<servlet-class>com.hpe.servlet.SecondServlet</servlet-class>
  </servlet>
  
  <servlet-mapping>
  	<servlet-name>two</servlet-name>
  	<url-pattern>/ttt</url-pattern>
  </servlet-mapping>

启动Tomcat服务器,手动运行SecondServlet.java,显示效果如下:



从浏览器直接访问:


总结:

输出流对象的打印方法可以把html标签字符串传递给客户端,浏览器可以将这些字符串解析为html页面,那么我们也可以写一个完整的html文档传过去。

将SecondServlet.java修改如下:

package com.hpe.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class SecondServlet extends HttpServlet {

	@Override
	protected void service(HttpServletRequest request, HttpServletResponse response) 
			throws ServletException, IOException {
		System.out.println("我的第二个servlet!");
		
		response.getWriter().println("<html>");
		response.getWriter().println("<head>");
		response.getWriter().println("<style>.red{ color:red;}</style>");
		response.getWriter().println("<script>function test(){ alert('haha')}</script>");
		response.getWriter().println("</head>");
		response.getWriter().println("<body>");
		response.getWriter().println("<input class='red' type='button' value='test' οnclick='test();'>");
		response.getWriter().println("</body>");
		response.getWriter().println("</html>");
		
		
//		System.out.println("客户端浏览器的类型:" + request.getHeader("User-Agent"));
//		
//		response.getWriter().println("<h1>Hello Servlet!</h1>");
//		response.getWriter().println("<h2>Hello Servlet!</h2>");
//		response.getWriter().println("<hr color='red' />");
	}
	
}

等待服务器重写加载完成,手动运行SecondServlet.java,点击test按钮后,显示效果如下:



在浏览器直接访问服务器:








版权声明:本文为weqpo原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。