什么是servlet:1分钟理解Servlet的概念
Servlet 是 SUN 推出的一套规范,规定了如何用 Java 来开发动态网站。也就是说,Java 可以用来开发网站后台,但是要遵循一定的标准。
Servlet 可以使用所有的 Java API,类库丰富,功能强大。
通过Servlet,你可以:
例如,要在网页上显示IP地址,它的HTML源码是:
这就是古老的 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 两个包中的类来实现。
Servlet 可以使用所有的 Java API,类库丰富,功能强大。
通过Servlet,你可以:
- 接收用户通过 <form> 表单提交的信息;
- 查询数据库,包括用户信息、文章内容、页面点击次数等;
- 生成验证码,防止机器恶意注册。
例如,要在网页上显示IP地址,它的HTML源码是:
<html lang="zh"> <head> <meta charset="UTF-8"> <title>演示页面</title> </head> <body> <p>你的IP地址是:127.0.0.1</p> </body> </html>那么服务器上的Java代码就应该这样写:
// 导入必需的类 import java.io.*; import javax.servlet.*; import javax.servlet.http.*; // 继承 HttpServlet 类 public class HelloWorld extends HttpServlet { public void init() throws ServletException{ // TODO } public void doGet( HttpServletRequest request, HttpServletResponse response )throws ServletException, IOException{ // 设置报头类型 response.setContentType("text/html"); // 必须通过println()输出HTML代码 PrintWriter out = response.getWriter(); out.println('<!DOCTYPE html>'); out.println('<html lang="zh">'); out.println('<head>'); out.println('<meta charset="UTF-8">'); out.println('<title>演示页面</title>'); out.println('</head>'); out.println('<body>'); out.println('<p>你的IP地址是:'); out.println(request.getRemoteAddr()); out.println('</p>'); out.println('</body>'); out.println('</html>'); } public void destroy(){ // TODO } }用户接收到的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 两个包中的类来实现。