Servlet基础_0100_HelloWorld
一.servlet简介
servlet 是服务器端的小程序,但不一定是web服务器的小程序,他也可以是smtp端的小程序,也可以邮件服务器的小程序,它只是sun为javaee定的一个标 准,sun为javaSE提供了强大的类库,但sun没有为javaEE提供类库,这也不可能提供的,他只是提供了这样的一套标准。三流公司卖产品,二流 公司卖服务,一流公司卖标准,sun可能是一流的公司,只是现在被oracle收购了……
javax.servlet.Servlet是一个接口,它定义了这类程序的标准,所有实现使用Servlet程序的服务器必须去实现这一套标准体系, 而我们经常用的tomcat服务器就实现了这样一套标准的体系。
GenericServlet
实现了Servlet接口,而他是一个抽象类,而我们编写http协议的程序,一般使用HttpServlet类,它继承了
GenericServlet, 而且HttpServlet类重载了GenericServlet中的
service(ServletRequest,ServletResponse)方法, 将其变成了
service(HttpServletRequest,HttpServletResponse),这样就更符合了web协议的标准, 而它的实现方式
就是简单将ServletRequest和ServletResponse类强制转成了
HttpServletRequest,HttpServletResponse。
于 是我们写Servlet程序只需直接继承HttpServlet类即可,并且重写里面的某一个方法就行,一般都是doGet,doPost,不建议重写 service方法,因为service会去判断浏览器到底请求的是哪个方法,然后调用doGet或者doPost,或者其他方法。
由于tomcat实现了servlet这一套标准体系,则在tomcat的lib目录下就一定存在servlet-api.jar文件,这就是tomcat服务器具体实现的servlet这一套体系。
二.web服务器程序的结构
1.web程序主目录,记为HelloWorld
2.主目录下必须要有WEB-INF目录,WEB-INF目录下一定有一个符合j2ee标准的web.xml文件,最简单的格式如下:
- <?xml version="1.0" encoding="ISO-8859-1"?>
- <web-app xmlns="http://java.sun.com/xml/ns/javaee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
- version="2.5">
- </web-app>
这是最简单的web程序,当然静态的网页暂不讨论
3.一般的web程序的WEB-INF目录下还会有classes目录,专门存放编译好的class文件;还会有lib文件夹,存放运行web程序所必需的jar包
三.第一个Servlet程序
1.HelloWorldServlet类:
- package com.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 HelloWorldServlet extends HttpServlet {
- @Override
- protected void doGet(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- System.out.println("Hello World!!!");
- }
- }
2. 将编译好的这个Servlet类的.class文件放入到tomcat的webapps/HelloWorld/WEB-INF/classes目录下, 当然详细目应该是这样的:\webapps\HelloWorld\WEB-INF\classes\com\servlet \HelloWorldServlet.class,应该懂什么意思的
3.有Servlet的class文件还不够,还必须在web.xml文件中配置:
- <?xml version="1.0" encoding="ISO-8859-1"?>
- <web-app xmlns="http://java.sun.com/xml/ns/javaee"

浙公网安备 33010602011771号