JavaWeb-Servlet编程 Part1

来源:互联网 发布:战地1狙击枪数据 编辑:程序博客网 时间:2024/05/22 18:21

Servlet编程 Part1


一、Servlet简介

1. Servlet:基于Java技术的,运行在服务器端的Web组件。它是由服务器中的Servlet容器所管理。

2. Servlet容器:也被称作Servlet引擎,是Java Web服务器的一部分,用于在发送的请求和响应之上提供网络服务。

3. Servlet生命周期:Servlet的生命周期是有Servlet容器负责的,Servlet的生命周期定义了一个Servlet如何被加载、初始化,以及它怎样接收请求、响应请求、提供服务的整个过程。从Servlet实例化之后,它的生命周期分为三个阶段:初始化阶段、响应客户请求阶段和终止阶段。这三个阶段正好分别对应于java.servlet.Servlet接口中定义的三个方法init()、service()和destroy()。

Servlet生命周期执行过程大概分为以下几步

(1) Servlet容器创建Servlet的一个实例
(2) 容器调用该实例的init()方法
(3) 容器向Servlet传递客户端的请求,并且调用此实例的Service方法
(4) 容器销毁本实例前调用此实例的Service方法

二、init()方法

1.创建动态Web项目(勾选生产web.xml项),添加Servlet类
2.配置web.xml文件参数,完整web.xml代码如下

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">  <display-name>InitParamDemo</display-name>  <welcome-file-list>    <welcome-file>index.jsp</welcome-file>  </welcome-file-list>  <servlet>    <description>        This is the description of my J2EE component    </description>    <display-name>        This is the description of my J2EE component    </display-name>    <!-- 设置Servlet的名称 -->    <servlet-name>ReadInitParam</servlet-name>    <!-- 设置Servlet的完整类名 -->    <servlet-class>com.demo.servlet.FirstServlet</servlet-class>    <!-- Servlet中初始化参数 -->    <init-param>        <!-- 初始化参数名 -->        <param-name>init</param-name>        <!-- 初始化参数值 -->        <param-value>10000</param-value>    </init-param>  </servlet>  <!-- 设置Servlet映射信息 -->  <servlet-mapping>  <!-- 设置Servlet的名称 -->    <servlet-name>ReadInitParam</servlet-name>  <!-- 设置Servlet的映射URL路径 -->    <url-pattern>/servlet/ReadInitParam</url-pattern>  </servlet-mapping></web-app>

3.编写Servlet类代码

package com.demo.servlet;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;@WebServlet("/FirstServlet")public class FirstServlet extends HttpServlet {    private static final long serialVersionUID = 1L;    private int initCount;    public FirstServlet() {        super();    }    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        //设置页面返回类型        response.setContentType("text/html");        //创建输出流        PrintWriter out = response.getWriter();        //计数值加1        initCount++;        //输出要显示的页面内容        out.println("<html>");        out.println("<head><title>Basic Servlet</title></head>");        out.println("<body>");        out.println("You are user number " + String.valueOf(initCount) + " visiting our website" + "\n");        out.println("</body></html>");        //输出缓冲流        out.flush();        //关闭输出流        out.close();    }    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        doGet(request, response);    }    public void init(ServletConfig config) throws ServletException    {        super.init(config);        //读取配置文件初始化参数init的值        initCount = Integer.parseInt(config.getInitParameter("init"));    }}

运行结果:

You are user number 10001 visiting our website
原创粉丝点击