JavaEE平台学习之 01开发第一个Servlet程序

学习目标:

  1.掌握B/S结构与C/S结构的区别

  2.掌握Http中GET和POST的差别

  3.掌握什么是静态网页、动态网页

  4.如何编写Servlet类、掌握部署Servlet、运行Servlet程序

  在开发过程中,我们常遇到的程序分为以下三种:a.单机程序(如:记事本)b.基于客户端Client和服务器端Server结构的程序(C/S结构:QQ聊天软件等) c.基于浏览器Browser和服务器Server结构的程序(B/S结构:淘宝网站等);

  B/S结构 pk C/S结构

  C/S结构的程序是客户端与服务器模型,一般用在局域网中实现局域网内资源共享;它的特点:使用时需要安装客户端软件,访问资源时速度比较快,但更新软件困难,更新时必须重新安装客户端,这种结构的程序使用起来比较安全(相对B/S结构程序)。

  B/S结构的程序是浏览器与服务器模型,一般用在Internat中实现Internat中资源共享;它的特点:使用时不需要安装客户端软件(浏览器,系统自带),访问资源时速度比较慢,但更新比较容易,更新时只需更新服务器端内容即可,这种结构的程序使用起来不太安全(相对C/S结构程序)。

  B/S结构的程序的执行过程:

    1.使用浏览器(IE、FireFox、Chrome等)在地址栏中输入URL(Uniform Resource Locator)即网址;

    2.通过HTTP(HyperText Transfer Protocol)协议向Web服务器发送GET请求,请求需要的资源文件;

    3.如果请求的资源文件存在则返回浏览器能够识别的HTML(HyperText Markup Language)内容。

  URL统一资源定位符(http://192.168.1.168:8080/learnit/index.html)组成:

    1.Http:// 超文本传输协议 或其它协议(FTP、SMTP等)

    2.主机地址和端口号 192.168.1.168:8080 我们常看到的域名如www.cnblogs.com会通过DNS转换成对应的主机地址和端口号

    3.资源文件learnit/index.html 即:主机上的文件

  HTTP协议是一个基于请求(Request)和响应(Response)的协议,同时它是无状态(Stateless)的协议。

  搭建编写Servlet程序环境:

    1.下载JDK7.0并安装 

    2.下载Tomcat7.0并安装(这里我们使用Tomcat做为Web服务器),安装之前必须有JRE(Java Runtime Environment)Java运行环境

  Servlet简介

    Servlet就是一个Java类,它是通过Web容器(Container)载入、初始化,受到容器的管理才得以成为一个Servlet;容器就是用Java编写的一个应用程   序,负责与服务器沟通管理Servlet所需要的各种对象与资源、Servlet生命周期,如果没有了容器,Servlet就只是一个Java程序语言所编写的类。

  Servlet生命周期:

    a.实例化 (它是由Servlet容器创建的,而不是直接通过new关键字创建)

    b.初始化 调用init()方法 (此方法只被执行一次)

    c.服务 调用service()方法 (每次请求、响应都会执行service方法)

    d.销毁 调用destroy()方法 (由Servlet容器销毁)

  编写第一个Servlet程序:    

 package org.learningit.servlet;
 import java.io.IOException;
 import java.io.PrintWriter;
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 public class HelloServlet extends HttpServlet{
        public void doGet(HttpServletRequest request,
                 HttpServletResponse response) 
      throws ServletException,IOException{
             //设置内容类型
             response.setContentType("text/html;charset=UTF-8");
             PrintWriter out = response.getWriter();
             out.println("<html>");
             out.println("<head><title>First Servlet</title></head>");
             out.println("<body>");
             out.println("<h3>First Servlet  ... doGet()</h3>");
             out.println("</body>");
             out.close();          
        }
       public void doPost(HttpServletRequest request,
                  HttpServletResponse response) 
      throws ServletException,IOException{
                  doGet(request,response);
      }
 }

  注:编写Servlet类时,必须指定包。 

  编译HelloServlet.java文件:    

javac -classpath Servlet-api.jar -d . HelloServlet.java

  注:编译此文件时,将Tomcat/lib目录下的Servlet-api.jar和HelloServlet.java文件放在同一个目录下。

  编译此文件之后,将在该目录下生成:org/learningit/servlet/HelloServlet.class文件。

  部署Servlet程序步骤:

    1.在Tomcat服务器webapps目录中创建一个hello目录。

    2.在hello目录中创建WEB-INF目录

    3.在WEB-INF目录中创建classes目录、web.xml文件

       目录结构如下:

      webapps

        |-hello

          |-WEB-INF

            |-classes

            |-web.xml       

          将生成的文件:org/learningit/servlet/HelloServlet.class文件放入到webapps/hello/WEB-INF/classes目录中

        4.将web.xml文件中的内容设置为: 

 1 <web-app xmlns="http://java.sun.com/xml/ns/javaee"
2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
4 http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
5 version="3.0">
6 <servlet>
7 <servlet-name>HelloServlet</servlet-name>
8 <servlet-class>org.learningit.servlet.HelloServlet</servlet-class>
9 </servlet>
10 <servlet-mapping>
11 <servlet-name>HelloServlet</servlet-name>
12 <url-pattern>/servlet/hello</url-pattern>
13 </servlet-mapping>
14 </web-app>

      5.启动Tomcat服务器

    6.打开浏览器,在地址栏中输入:http://localhost:8080/hello/servlet/hello

    经过以上步骤第一个Servlet程序执行成功。

 

posted @ 2011-09-23 13:34  ぷ黑旋风ぷ  阅读(347)  评论(0编辑  收藏  举报