首页 技术 正文
技术 2022年11月20日
0 收藏 770 点赞 3,668 浏览 1731 个字

Servlet(Server Applet),全称Java Servlet,是用Java编写的服务器端程序。指任何实现了这个Servlet接口的类或者实现Servlet接口的类,当然或者实现接口继承方法的的类。Servlet是一个特殊的Java类。

其实就是运行在服务器上的java类,但是没有main方法。servlet中的方法由服务器在相应情况下调用执行,比如Tomcat服务器上的servlet,当浏览器发出请求并且请求方式为GET时,被请求的servlet的doGet方法就会被Tomcat或者其他服务器调用执行。

因为这些服务器软件能监听http请求,解析http头信息,头信息里写有用户想看你的哪个页面,然后这些软件再打开你的程序对应的页面跑一下得出结果再返回给用户。
要是你写的web程序把这个监听的东西也写上,可以不用依赖tomcat等软件的,只要符合http协议的过程。tomcat也是完全有java编写而成的,由大量的类构成。

Servlet是JavaWeb三大组件之一(Servlet、Filter、Listener)
Servlet是用来处理客户端请求的动态资源
Servlet的任务有:
获取请求数据
处理请求
完成响应

1.实现一个Servlet有三种方式

实现javax.servlet.Servlet接口;

继承javax.servlet.GenericServlet类;

继承javax.servlet.http.HttpServlet类;继承与javax.servlet.GeneticServlet

2.配置Servlet的主要标签

<servlet>

<servlet-name></servlet-name>

<servlet-class></servlet-class>

</servlet>

<servlet-mapping>

<servlet-name></servlet-name>

<url-pattern></url-pattern>

</servlet-mapping>

3.servlet的生命周期

实例化:服务器进行servlet的实例化(一次)Servlet是在第一次被访问时由服务器创建的。(通过配置文件 找到类,再通过反射机制,单例模式,创建唯一一个servlet对象)。

初始化:服务器调用servlet的init方法进行初始化。(一次)在Servlet被创建后,服务器会马上调用Servlet的void init(ServletConfig)方法。

请求的处理:服务器调用servlet的service方法,然后根据请求方式调用doXXX方法(多次)当服务器每次接收到请求时,都会去调用Servlet的service()方法来处理请求。

服务终止:服务器调用servlet的destroy方法销毁servlet实例。(一次)在服务器被关闭时,服务器会去销毁Servlet。

与servlet生命周期有关的三个方法

void init(ServletConfig);

  void service(ServletRequest,ServletResponse);

   void destroy();

4.servlet初始化参数的配置和使用

<servlet>

<init-param>

<param-name>key</param-name>

<param-value>value</param-value>

</init-param>

</servlet>

初始化参数的使用:

一般在Servlet的init方法中使用config对象的getInitParameter(String key)方法来获取初始化参数。

上下文参数的配置:

<web-app>

<context-param>

<param-name>key</param-name>

<param-value>value</param-value>

</context-param>

</web-app>

上下文参数的使用:

在Servlet中先通过getServletContext()方法获得ServletContext对象,然后调用

该对象的getInitParameter(String key)方法获得上下文参数。

6.高效率,线程不安全

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,947
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,473
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,286
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,102
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,734
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,769