JavaWeb 后端 <二> 之 Servlet 学习笔记

 一、Servlet概述

1、什么是Servlet

Servlet是一个运行在服务器端的Java小程序,通过HTTP协议用于接收来自客户端请求,并发出响应。

2、Servlet中的方法

public void service(ServletRequest req,ServletResponse res)

throws ServletException,java.io.IOException

 

ServletRequest req:代表着请求对象,该对象中有HTTP协议的请求部分的所有内容。它的实现类由服务器提供的,封装数据也是服务器来做的。

ServletResponse res:代表着响应对象,该对象中由我们写数据(HTTP协议的响应部分)进去。它的实现类也是由服务器提供的。

service:由服务器调用,每次请求都会调用一次。服务器采用的是多线程机制。

二、Servlet的编码步骤

1、编写一个类实现javax.servlet.Servlet接口,或者继承javax.servlet.GenericServlet

2、编译Servlet的源码

 

3、映射Servlet

修改web.xml

4、把应用部署Tomcat中,访问地址:http://localhost:8080/firstServlet/hello

 

明确:规范 服务器 应用间的关系

三、Servlet的执行过程

 

 实例 class代码

package com.it.Serlvet;

import java.io.IOException;

import javax.servlet.GenericServlet;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class SerlvetDemo1 extends GenericServlet {

	@Override
	public void service(ServletRequest req, ServletResponse res)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		res.getWriter().write("this is yif's page ");
	}

}

 web 定义及映射

   <servlet>
        <!--定义Servlet:给Servlet类取一个名字-->
        <servlet-name>SerlvetDemo1</servlet-name>
        <servlet-class>com.it.Serlvet.SerlvetDemo1</servlet-class>
    </servlet>
    <servlet-mapping>
        <!--映射Servlet:给Servlet一个访问地址-->
        <servlet-name>SerlvetDemo1</servlet-name>
        <url-pattern>/SerlvetDemo1</url-pattern>
    </servlet-mapping>

 

四、Servlet的编写方式:

1、javax.servlet.GenericServlet:通用的Servlet实现,抽象类

 

(经常用)2、javax.servlet.http.HttpServlet:与HTTP协议有关的,抽象类

继承HttpServlet,然后覆盖掉doGet或doPost方法即可,不要覆盖掉service方法。

*Servlet规范中的核心接口类图

 

五、Servlet的生命周期

1、生命周期(必须清晰):诞生--活着--死亡。人有这个过程,内存中的对象也有。

2、Servlet对象的生命周期

l  诞生:用户第一次访问时,由容器创建他的实例。

l  活着:一旦创建就驻留内存(单例)。每次用户的访问,容器都会调用sevice方法发出响应(多线程)

l  死亡:应用被卸载或者Tomcat关闭了

实例:

public class ServletDemo3 extends HttpServlet {  
	
		//用户第一次访问时,只执行一次
		public ServletDemo3(){
			System.out.println("调用了Servlet的默认构造方法");
		}
		
		//用户第一次访问时,执行一次。用于对象的初始化
		public void init() throws ServletException {
			System.out.println("调用了Servlet的初始化方法");
		}
		
		//每次用户访问都执行
		public void doGet(HttpServletRequest request, HttpServletResponse response)
				throws ServletException, IOException {
			System.out.println("执行了Service方法");
		}
		public void doPost(HttpServletRequest request, HttpServletResponse response)
				throws ServletException, IOException {
			doGet(request, response);
		}
		
		//调用一次。用于清理工作
		public void destroy() {
			System.out.println("调用了Servlet的销毁方法");
		}

}

 

六、Servlet的线程安全

你可能感兴趣的:(JavaWeb 后端 <二> 之 Servlet 学习笔记)