java--servlet简介

Servlet是JavaWeb应用中最核心的组件,是运行在服务中的程序。
Servlet可以完成以下任务:
动态生成HTML文档。
将请求转发给Servlet组件。
读取客户端的Cookie,以及向客户端写入Cookie。
访问服务器的资源,如数据库、 XML、文件对像等。
Servlet的特点如下:
Servlet对像,由Servlet容器(Tomcat)创建。
Servlet是一个接口:位于javax.servlet包中。
Servlet的生命周期:
init方法
只会被初始化一次。由容器初始化。初始化成功后将缓存与容器中。
它的初始时间分为两种:
用户第一次访问时。
服务器启动时。-需要配置。
service方法:
每次请求都会访问此方法。
每次请求都会创建新的Request和Response对像。
destory方法
当服务器关闭时由容器调用并销毁。

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<html>
  <head>

    <title>servlet演示</title>
  </head>

  <body>
     <h2>servlet开发</h2>
     <!-- index.jsp在WEB-INF目录下,所以用相对路径可以的,
        但是如果把index.jsp的位置改了就不好了 -->
     <a href="one">第一个servlet</a><br/>
     <!-- 用不同的映射路径导向同一个类-可以控制单例/多例 -->
     <a href="/servletDemo_1/one">第二个servlet_1</a>&nbsp;&nbsp;&nbsp;&nbsp;
     <!-- .class文件不能随便更改,而web.xml可以,所以把编码值设置在web.xml中 -->
     <a href="/servletDemo_1/two">第二个servlet_1</a>
     <br>
       </body>
</html>
package cn.hncu.servlet_1;

import java.io.IOException;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;


public class FirstServlet implements Servlet{



    public FirstServlet() {
        System.out.println("构造方法...");
    }

    @Override
    public void destroy() {
        System.out.println("销毁,destroy...");

    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void init(ServletConfig config) throws ServletException {
        System.out.println("初始化,init...");
        String charset=config.getInitParameter("char");
        System.out.println(charset);
    }

     //service方法用于接收用户的请求并返回响应
     //用户访问时多次被执行
     //通过outputStream输出信息给用户
    @Override
    public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
        System.out.println("服务,service...");

    }

}
package cn.hncu.servlet_1;

import java.io.IOException;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class SecondServlet implements Servlet{


    public SecondServlet() {
        System.out.println("构造方法_SecondServlet...");
    }

    @Override
    public void destroy() {
        System.out.println("销毁_SecondServlet,destroy...");

    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void init(ServletConfig arg0) throws ServletException {
        System.out.println("初始化_SecondServlet,init...");

    }

    @Override
    public void service(ServletRequest arg0, ServletResponse arg1)
            throws ServletException, IOException {
        System.out.println("服务_SecondServlet,service...");

    }

}
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 
    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_3_0.xsd">
  <display-name></display-name> 


  <servlet><!-- 用来new对象-hashMap(one,cn.hncu.servlet_1.FirstServlet)存储 -->

    <servlet-name>one</servlet-name>
    <servlet-class>cn.hncu.servlet_1.FirstServlet</servlet-class>
    <init-param>
        <param-name>char</param-name>
        <param-value>utf-8</param-value>
    </init-param>
  </servlet>


  <servlet>
    <servlet-name>two</servlet-name>
    <servlet-class>cn.hncu.servlet_1.SecondServlet</servlet-class>
    <load-on-startup>5</load-on-startup>
    <!-- 在服务器启动时就会new并初始化.当有多个时,数值(可以随便取)代表new的先后顺序(从小到大),值一样按位置的前后new。
        一般不会使用这种功能,因为只有请求的时候再初始化,效率高。
     -->
  </servlet>

  <!-- 配置你的Servlet的影射目录 -->
  <servlet-mapping><!-- 前端访问的映射路径:"/one" -->
    <servlet-name>one</servlet-name>
    <url-pattern>/one</url-pattern>  
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>two</servlet-name>
    <url-pattern>/two</url-pattern>  
  </servlet-mapping>






  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值