【NEW03】Servlet基础

三、Servlet、ServletConfig、ServletContext


1.Servlet技术

1.1 Servlet概述:
	   什么是servlet:它是运行在web服务器端的一个java小程序,简单来说,它就是一个java类
			 在使用servlet时,需要导入javax.servlet下的jar包。比如:tomcat服务器提供了
			 servlet的servlet-api.jar包,所以在开发时用tomcat服务器就不需要再导入servlet的jar包。
	   Servlet它是一个资源,是用来被用户访问的资源,同时是一个动态资源,它是由sun指定的servlet规范。
	   Servlet的作用:它是基于Http协议的,主要是用来接收客户端发送的请求,处理请求,把数据响应给客户端。
	   
 1.2 Servlet的入门
    1.Servlet的接口和实现类:
		>>>Servlet它是一个接口,在javax.servlet 包下面。
		    五个方法:
		* destroy():执行这个方法,销毁了servlet对象
		* init(ServletConfig config):在web服务器创建servlet对象以后,执行这个初始化方法。
		* service(ServletRequest req, ServletResponse res) :服务方法,用来接收客户端发送的请求,并且响应数据到客户端
		* getServletConfig():现在不讲
		* getServletInfo():servlet 的信息,比如作者、版本和版权,这个方法在开发中不用。
	       >>>GenericServlet,它是一个类,实现了Servlet接口
	       >>>HttpServlet,它是一个类,实现了Servlet接口,同时继承了GenerciServlet
	     创建servlet三种方式
		      >>>直接实现Servlet接口。
		      >>>继承GenericServlet类
		      >>>继承HttpServlet类。
		      一般在开发中,创建servlet,通常去继承这个HttpServlet.
		      比如:class MyServlet extends HttpServlet{ 重写咱们所需要的方法}

1.3.实现第一个Servlet程序
>>> 1.自己手动创建Servlet,通过Dos命令窗口编译Servlet,把编译好的class文件部署到tomcat服务器运行。
>>> 2.通过Eclipse创建Servlet,部署到tomcat服务器,然后就可以访问咱们所需要的Servlet。
步骤:
1.创建HelloWordServlet,继承GenericServlet
2.重写父类GenerciServlet的service方法。
3.在服务方法里面,处理客户端的请求后,把数据响应给客户端。
比如:

			public class HelloWordServlet extends GenericServlet{

				@Override
				public void service(ServletRequest arg0, ServletResponse response)
						throws ServletException, IOException {
					// 处理客户端发送的请求,并且把数据响应给客户端
					 System.out.println("接收了客户端的请求-------------------");
					 //把数据响应给客户端,与浏览器绑定的输出流,作用向浏览器输出数据
					  PrintWriter pw = response.getWriter();
					  pw.print("Hello World");
				}
			}
	     访问Servlet,提供servlet的访问路径:
	     比如:<!-- 配置访问/hello路径,对应的servlet -->
		  <servlet>
			<servlet-name> helloWorld</servlet-name>
			<servlet-class>cn.itcast.firstmyapp.servlet.HelloWordServlet</servlet-class>
		  </servlet>
		    <!-- 配置浏览器访问servlet的路径 -->
		  <servlet-mapping>
				<servlet-name> helloWorld</servlet-name>
				<url-pattern>/hello</url-pattern>
		  </servlet-mapping>
	    通过浏览器访问:http://localhost:8080/webFirst/hello
			    就找到对应的HelloWorldServlet,把数据响应给浏览器。
	
	 导入jar包:先拷贝对应的jar包,放到WebContent下面的WEB-INF下面的lib文件夹下面。
		            jar的图标就变成小奶瓶。
1.3.Servlet的生命周期:
	   生命周期:自然界人从出生到最终走向西方极乐世界,这个周期过程就是人的生命周期,
		     其实servlet的生命周期和人的一样,从servlet对象被创建,经过使用servlet对象,
		     到最终servlet对象被销毁,整个过程就是servlet的生命周期。
	  与生命周期相关的三个方法:
	  >>> 初始化阶段:
		init(ServletConfig config) 初始化方法:首次访问这个Servlet,servlet对象会被创建,执行初始化方法,执行一次。
	  >>> 运行阶段:
		service(ServletRequest req, ServletResponse res) 服务方法:每次访问servlet时,服务方法都会被执行,执行多次。。
	  >>> 销毁阶段:
		destroy()销毁方法:在服务器正常关闭时。会执行销毁方法,执行一次。
	  比如:
		 public class LifeServlet extends GenericServlet {
			/**
			 * 初始化方法
			 */
			@Override
			public void init(ServletConfig config) throws ServletException {
				System.out.println("首次访问LifeServlet时,会执行这个初始化方法-------------");
			}
			/**
			 * servlet的服务方法
			 */

			@Override
			public void service(ServletRequest arg0, ServletResponse arg1)
					throws ServletException, IOException {
				System.out.println("每次访问lifeservlet,都会执行这个服务方法--------");
				
			}
			/**
			 * 销毁方法
			 */
			@Override
			public void destroy() {
				System.out.println("在服务器关闭时,会执行销毁方法----------");
			}
		}
		在web.xml文件上面配置访问路径:
			  <servlet>
				    <servlet-name>lifeServlet</servlet-name>
				    <servlet-class>cn.itcast.firstmyapp.servlet.LifeServlet</servlet-class>
			  </servlet>
			  <servlet-mapping>
				    <servlet-name>lifeServlet</servlet-name>
				    <url-pattern>/life</url-pattern>
			  </servlet-mapping>

课堂练习:


| 在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

package cn.itcast.firstmyapp.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.security.Principal;

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

public class HelloWordServlet extends GenericServlet{
	
	//按alt+/

	

	@Override
	public void service(ServletRequest req, ServletResponse response) throws ServletException, IOException {
		//处理客户端发送请求,并且把数据响应给客户端
		System.out.println("接收了客户端的请求.......大数据2005");
		//把数据响应给客户端,与浏览器绑定的输出流。作用向浏览器输出数据
		PrintWriter pw = response.getWriter();
		pw.print("Hello world  dashuju2005  大数据2005");
	}
}

package cn.itcast.firstmyapp.servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class servlet2
 */
@WebServlet("/servlet2")
public class servlet2 extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)
	 */
	
		
		
		public void service(ServletRequest req, ServletResponse response) throws ServletException, IOException {
			//处理客户端发送请求,并且把数据响应给客户端
			System.out.println("接收了客户端的请求.......第二个servlet");
			//把数据响应给客户端,与浏览器绑定的输出流。作用向浏览器输出数据
			PrintWriter pw = response.getWriter();
			pw.print("dashuju2005 second servlet");
		
		
		}
		@Override
		public void init() throws SecurityException{
			System.out.println("init 函数被调用");
		}
		@Override
		public void destroy() {
			System.out.println("destroy 函数被调用");
		}
	}

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>FiratServlet</display-name>
<servlet>

         <servlet-name>helloWorld</servlet-name>
         <servlet-class>cn.itcast.firstmyapp.servlet.HelloWordServlet</servlet-class>
         
        </servlet>
        <!-- 配置浏览器访问servlet的路径 -->
        <servlet-mapping>
        <servlet-name>helloWorld</servlet-name>
        <url-pattern>/dashuju2005</url-pattern>
        </servlet-mapping>
</web-app>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

大数据2005班 真牛!!!


</body>
</html>

操作提示:


在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

第二钟方式创建servlet

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

详细操作步骤:(嘿嘿,从下往上看)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值