servlet java

什么是servlet

一个java程序,运行在我们的web服务器(比如tomcat)上,用于接收和响应 客户端的http请求。
更好的服务动态资源,静态资源也需要使用到servlet。

servlet的简单web

我们建立web工程
测试运行Web工程
1. 新建一个类, 实现Servlet接口(GenericServlet 还有一个HttpServvlet类 我们一般使用后者)(这里我们要导入tomcat的jar包进入eclipse中 servlet-api.jar)
2. 配置Servlet , 用意: 告诉服务器,我们的应用有这么些个servlet。
在webContent/WEB-INF/web.xml里面写上以下内容。

  <!-- 向tomcat报告, 我这个应用里面有这个servlet, 名字叫做HelloServlet , 具体的路径是com.itheima.servlet.HelloServlet -->
		  <servlet>
		  	<servlet-name>HelloServlet</servlet-name>
		  	<servlet-class>com.itheima.servlet.HelloServlet</servlet-class>
		  </servlet>		  
		  <!-- 注册servlet的映射。  servletName : 找到上面注册的具体servlet,  url-pattern: 在地址栏上的path 一定要以/打头 -->
		  <servlet-mapping>
		  	<servlet-name>HelloServlet</servlet-name>
		  	<url-pattern>/a</url-pattern>
		  </servlet-mapping>
	3. 在地址栏上输入 http://localhost:8080/项目名称/a 

这里我们可以看到的是我们再helloServlet类运行的结果(作用是什么我们可以使用java 程序来规划 页面)

访问过程

浏览器放入 http://localhost:8080/项目名称/a
1.新找到tomcat的应用
2.找到项目
3.找到项目下的web.xml 然后再在里面找到url-pattern ,中又没有一个为/a
4.找到后,再在找对饮的servlet-mapping 中的哪个servlet-name
5.找到servlet-name 后 ,可找到对应servlet中的servlet-name (注意 这里的servlet-mapping 和 servlet 中的servlet-name是同名的)
6.由我们找到的servlet 中找到的servlet-name 对应的servlet-class 我们可以找到类的地址(相对路径)
7.创建这个类的实例化 继而执行servlet中的service方法。

servlet 周期

  • init方法

      在创建该servlet的实例时,就执行该方法。
      一个servlet只会初始化一次, init方法只会执行一次
      默认情况下是 : 初次访问该servlet,才会创建实例。 
    
  • service方法

      只要客户端来了一个请求,那么就执行这个方法了。
       该方法可以被执行很多次。 一次请求,对应一次service方法的调用
    
  • destroy方法
    servlet销毁的时候,就会执行该方法

        	1. 该项目从tomcat的里面移除。
        	2. 正常关闭tomcat就会执行 shutdown.bat
    

doGet 和 doPost 不算生命周期的方法,从对象的创建到销毁一定会执行的方法,才是生命周期方法 但 这两个方法不一定执行

让Servlet创建的实例化时机 (提前)

1.默认情况下 ,只要是在初次访问的servlet的时候才会使用init方法,有的时候,我们可能需要在这个方法里面执行一些初始化工作,做一些耗时的工作
2.那么这个时候,初次访问,可能会在init方法逗留太长的时间,那么有没有方法可以让这个初始化时机提前一点,(解决方法)
3.这方法如何实现 “ 在我们的web.xml 中 我们刚刚写的配置中的改类实现配置下写2 其中 2 是优先级越小 越优先 (一般写的正数 ,负数是随机的) 所以我们一般从2 开始写 这样的话 这个类会被提前加载

猜你喜欢

转载自blog.csdn.net/qq_40435621/article/details/85098754