Servlet_2th_Servlet返回html文档

本文介绍了Servlet的主要用途,即根据用户请求生成HTML文档。通过Servlet,开发者可以利用输出流对象的打印方法将HTML字符串发送到客户端,从而在浏览器中呈现完整的HTML页面。文章通过实例展示了如何修改Servlet来实现这一功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、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' onclick='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按钮后,显示效果如下:



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







评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值