A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Jack.李 中级黑马   /  2017-9-29 16:10  /  1218 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一、Servlet简介
Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。
Servlet的主要作用以及功能:
1.读取客户端(浏览器)发送的显式的数据。这包括网页上的 HTML 表单,或者也可以是来自 applet 或自定义的 HTTP 客户端程序的表单。
2.读取客户端(浏览器)发送的隐式的 HTTP 请求数据。这包括 cookies、媒体类型和浏览器能理解的压缩格式等等。
3.处理数据并生成结果。这个过程可能需要访问数据库,执行 RMI CORBA 调用,调用 Web 服务,或者直接计算得出对应的响应。
4.发送显式的数据(即文档)到客户端(浏览器)。该文档的格式可以是多种多样的,包括文本文件(HTML XML)、二进制文件(GIF 图像)、Excel 等。
5.发送隐式的 HTTP 响应到客户端(浏览器)。这包括告诉浏览器或其他客户端被返回的文档类型(例如 HTML),设置 cookies 和缓存参数,以及其他类似的任务。
二、Servlet开发环境的配置
1.JDK
2.服务器,我使用的是tomcat
3.Servlet编写工具,使用Eclipse
使用创建Servlet开发项目:
1、创建Web Project ==> MyServlet
2、创建包名称 ==>com.itheima.basic
3、创建Java类(初期推荐创建Java类,熟悉项目中的web.xml的配置)
    若想要使用Eclipse来直接解析Servlet项目,则需要在WebRootWEB-INF下的web.xml中对servlet项目进行部署和添加:
file:///C:\Users\MECHREVO\AppData\Local\Temp\ksohtml\wps8284.tmp.png
<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5"
    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
  <servlet>
    <servlet-name>AServlet</servlet-name>
    <servlet-class>com.itheima.basic.AServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>AServlet</servlet-name>
    <url-pattern>/AServlet</url-pattern>
  </servlet-mapping>
</web-app>
file:///C:\Users\MECHREVO\AppData\Local\Temp\ksohtml\wps8294.tmp.png
4、将创建好的项目部署到EclipseTomcat
三、Servlet的生命周期
Servlet的生命周期是从该servlet创建到注销的整个过程,整个过程中servlet会执行以下的过程:
· 调用init () 方法进行初始化。
· 调用service() 方法来处理客户端的请求。
· 调用 destroy() 方法终止(结束)。
· 最后由 JVM 的垃圾回收器进行垃圾回收。
1Init()方法:
该方法只在创建servlet时候调仅调用一次,以后不再调用该方法,当用户调用一个 Servlet 时,就会创建一个 Servlet 实例,每一个用户请求都会产生一个新的线程,适当的时候移交给 doGet doPost 方法。init() 方法简单地创建或加载一些数据,这些数据将被用于 Servlet 的整个生命周期。
2Service()方法:
service() 方法是执行实际任务的主要方法。Servlet 容器(即 Web 服务器)调用 service() 方法来处理来自客户端(浏览器)的请求,并把格式化的响应写回给客户端。
每次服务器接收到一个 Servlet 请求时,服务器会产生一个新的线程并调用服务。service() 方法检查 HTTP 请求类型(GETPOSTPUTDELETE 等),并在适当的时候调用 doGetdoPostdoPutdoDelete 等方法。
3destroy()方法:
该方法只在该servlet注销之前调用一次,且在servlet的生命周期中只会调用一次
实例:
file:///C:\Users\MECHREVO\AppData\Local\Temp\ksohtml\wps8295.tmp.png
package com.itheima.basic;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class AServlet extends HttpServlet{
   
    public void init() throws ServletException {
        System.out.println("init()初始化了呀。。。。。。");
    }
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        System.out.println("Hello Servlet");
        System.out.println("This Is My First Servlet Example!");
        //        将文本在页面上输出//        
         PrintWriter out = response.getWriter();//        
                        out.println("Hello Servlet");//        
                        out.println("This Is My First Servlet Example!");
    }
}
注意:无论该servlet进行多少次请求,该servlet中的init()方法从始至终只运行一次,仅在该servlet对象创建时运行一次。

1 个回复

倒序浏览
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马