Java网络学习(三) Servlet沙拉2014-08-28Servlet开胃酒中介绍了Servlet的基本流程和设置方式。这里,我们将看一些Servlet实例。这些实例都是HTTP通信(参考HTTP协议:http://www.cnblogs.com/vamei/archive/2013/05/11/3069788.html)中的常见问题。我们通过操作request和response,来实现HTTP协议的功能。
生成页面
Servlet的目的是动态生成页面。比如下面的例子:
package foo;import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.util.*;public class TestPage extends HttpServlet {public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException { PrintWriter out = response.getWriter(); Date now = new Date(); // Date & Time String page = "<html><body><p>" + now +"</p></body></html>"; out.println(page); }}上面,我们调用response的getWriter()方法,向回复中写入文本,即回复的主体部分。关于Java的读写,可参考Java IO基础。有时我们主体部分不是文本,这时我们需要OutputStream类型的写入器,通过调用response的getOutputStream()方法来获得。我们利用java.util.Date()提供的功能,来动态的生成日期和时间显示。效果如下:

提交表格
HTTP请求有POST方法。Servlet通过doPost()方法来处理POST请求。POST方法的目的是向服务器提交数据,特别是HTML的FORM元素中包含的数据。我们先来编写一个包含有FORM的HTML页面:
<html><body> <form action="MyForm" method="post"> Username: <input type="text" name="user"><br> <input type="submit" value="Submit"> </form> </body></html>