Servlet

Servlet

概念:
*定义了一个类被浏览器访问的规则。是一个接口。
*功能:
*接受请求
*处理请求
*作出响应

创建一个Servlet的三种基本方式

第一种:实现一个Servlet接口,并重写其中的所有抽象方法

步骤:
1.创建web项目
2.定义一个Java类,实现Servlet接口
3.重写所有未实现方法 service()方法里面写句话
4.配置Servlet,web/WEB-INF/web.xml 配置Servlet
			  <!-- 配置Servlet,为了配置Servlet的访问路径 -->
			  <servlet>
				<servlet-name>demo1</servlet-name>
				<servlet-class>cn.itcast.servlet.ServletDemo1</servlet-class>
			  </servlet>
  
			  <servlet-mapping>
				<servlet-name>demo1</servlet-name>
				<!-- 设置访问路径,以/开头  -->
				<url-pattern>/demo</url-pattern>
			  </servlet-mapping>
5.发布项目
6.访问/demo路径访问该Servlet
浏览器中:http://127.0.0.1:8080/项目名/web.xml中配置的虚拟路径名

服务器通过反射的方式 创建Servlet对象,调用其方法.

重写的五个抽象方法如下:
 @Override
    public void init(ServletConfig servletConfig) throws ServletException {
   
        System.out.println("init方法调用了");

    }

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

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
   
        System.out.println("请求来了");
    }

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

    @Override
    public void destroy() {
   

    }
这里,就不得不提出Servlet的生命周期了,Servlet的生命周期主要分为三个阶段
第一阶段:被创建:默认情况下,Servlet第一次被访问时,被创建,调用init()方法。且只执行一次,它是单例的
       当多个客户端并发访问时,就会用到多线程,此时就会存在线程安全问题了,故尽量不要定义成员变量。
public void init(ServletConfig servletConfig) throws ServletException {
   
        System.out.println("init方法调用了");

    }
    当然,也可以配置Servlet的创建时机。
    在web.xml的<servlet>标签中配置<load-on-startup>
						<!-- 修改servlet的创建时机:
							* 负整数:默认值 -1,在第一次被访问时创建
							* 非负整数:在服务器启动时创建
								* 数字越小,优先级越高
						-->
						<load-on-startup>0</load-on-startup>
第二阶段: 提供服务:每一次被访问时,会调用service()方法提供服务
 @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
   
        System.out.println("请求来了");
    }
第三阶段: 被销毁:服务器关闭时,servlet被销毁。
		服务器正常关闭,在销毁Servlet之前,会调用destory()方法
另外可以看到,在init()方法中,有一个形参 ServletConfig servletConfig,这是一个配置对象
ServletConfig对象:配置对象   ServletConfig是一个接口 在Servlet初始化的时候 有服务器创建其子类对象传递给 init()方法
 @Override
    public void init(ServletConfig servletConfig) throws ServletException {
   
        System.out.println("init方法调用了");

    }
 它的功能如下:
 1.获取servlet初始化参数
				*  String getInitParameter(String name)  
				*  Enumeration getInitParameterNames()  
例子:
		System.out.println(config.getInitParameter("src"));
		System
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值