什么是servlet:1分钟理解Servlet的概念

Servlet 是 SUN 推出的一套规范,规定了如何用 Java 来开发动态网站。也就是说,Java 可以用来开发网站后台,但是要遵循一定的标准。

Servlet 可以使用所有的 Java API,类库丰富,功能强大。

通过Servlet,你可以:
  • 接收用户通过 <form> 表单提交的信息;
  • 查询数据库,包括用户信息、文章内容、页面点击次数等;
  • 生成验证码,防止机器恶意注册。

例如,要在网页上显示IP地址,它的HTML源码是:

     
     
  1. <html lang="zh">
  2. <head>
  3.     <meta charset="UTF-8">
  4.     <title>演示页面</title>
  5. </head>
  6. <body>
  7.     <p>你的IP地址是:127.0.0.1</p>
  8. </body>
  9. </html>
那么服务器上的Java代码就应该这样写:

     
     
  1. // 导入必需的类
  2. import java.io.*;
  3. import javax.servlet.*;
  4. import javax.servlet.http.*;
  5. // 继承 HttpServlet 类
  6. public class HelloWorld extends HttpServlet {
  7.     public void init() throws ServletException{
  8.         // TODO
  9.     }
  10.     public void doGet(
  11.         HttpServletRequest request,
  12.         HttpServletResponse response
  13.     )throws ServletException, IOException{
  14.         // 设置报头类型
  15.         response.setContentType("text/html");
  16.         // 必须通过println()输出HTML代码
  17.         PrintWriter out = response.getWriter();
  18.         out.println('<!DOCTYPE html>');
  19.         out.println('<html lang="zh">');
  20.         out.println('<head>');
  21.         out.println('<meta charset="UTF-8">');
  22.         out.println('<title>演示页面</title>');
  23.         out.println('</head>');
  24.         out.println('<body>');
  25.         out.println('<p>你的IP地址是:');
  26.         out.println(request.getRemoteAddr());
  27.         out.println('</p>');
  28.         out.println('</body>');
  29.         out.println('</html>');
  30.     }
  31.     public void destroy(){
  32.         // TODO
  33.     }
  34. }
用户接收到的HTML代码,都是通过 println() 语句输出的。

这就是古老的 CGI(Common Gateway Interface,公共网关接口)程序,需要把HTML代码当做字符串,通过输出语句一条一条的输出。互联网初期,CGI 程序大行其道,为互联网的发展做出了不可磨灭的贡献。


图1  http 请求的过程

Servlet 包含了一些列的 Java 类,由支持 Servlet 规范的Web服务器来运行。

可以通过 javax.servlet 和 javax.servlet.http 包来创建 Servlet 程序,这两个包是 J2EE 的一部分,是 Java 核心类库的扩展,他们实现了 Servlet 和 JSP 规范。

你可以像编译普通Java代码一样来编译Servlet程序:当你安装了 Servlet 的包,设置了 classpath 环境变量,就可以使用 JDK 来编译 Servlet 程序了。

总结:Servlet 是一套规范,规定了如何通过Java代码来开发动态网站,并由 javax.servlet 和 javax.servlet.http 两个包中的类来实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值