03006_Servlet简介
1、什么是Servlet
(1)Servlet 运行在服务端的Java小程序,是sun公司提供一套规范(接口),用来处理客户端请求、响应给浏览器的动态资源;
(2)Servlet的实质就是java代码,通过java的API动态的向客户端输出内容;
(3)Servlet规范:包含三个技术点
①Servlet技术;
②filter技术--过滤器;
③listener技术--监听器。
2、Servlet快速入门
(1)实现步骤
①创建类实现Servlet接口;
②覆盖尚未实现的方法---service(专门向客户端提供响应的方法);
package com.gzdlh.servlet;
import java.io.IOException; import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse; public class QuickStartServlet implements Servlet { @Override
public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
System.out.println("QuickStartServlet running...");
} @Override
public void destroy() { } @Override
public ServletConfig getServletConfig() {
return null;
} @Override
public String getServletInfo() {
return null;
} @Override
public void init(ServletConfig arg0) throws ServletException { } }
③在web.xml进行servlet的配置。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>WEB13</display-name>
<servlet>
<servlet-name>abc</servlet-name>
<servlet-class>com.gzdlh.servlet.QuickStartServlet</servlet-class>
</servlet> <servlet-mapping>
<servlet-name>abc</servlet-name>
<url-pattern>/quickStartServlet</url-pattern>
</servlet-mapping> <welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
(2)在实际开发中,我们不会直接去实现Servlet接口,因为那样需要覆盖的方法太多,我们一般创建类继承HttpServlet,实现步骤:
①创建类继承HttpServlet类;
②覆盖doGet和doPost ;
③在web.xml中进行servlet的配置。
3、Servlet的API
(1)init(ServletConfig config)
①何时执行:servlet对象创建的时候执行;
②ServletConfig : 代表的是该servlet对象的配置信息。
(2)service(ServletRequest request,ServletResponse response)
①何时执行:每次请求都会执行;
②ServletRequest :代表请求 认为ServletRequest 内部封装的是http请求的信息;
③ServletResponse :代表响应 认为要封装的是响应的信息。
(3)destroy()
何时执行:servlet销毁的时候执行。
package com.gzdlh.servlet; import java.io.IOException; import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse; public class QuickStartServlet implements Servlet { @Override
public void init(ServletConfig arg0) throws ServletException {
System.out.println("init running...");
} @Override
public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
System.out.println("QuickStartServlet running...");
} @Override
public void destroy() {
System.out.println("destroy running...");
} @Override
public ServletConfig getServletConfig() {
return null;
} @Override
public String getServletInfo() {
return null;
} }
运行结果:

4、Servlet的生命周期
(1)Servlet何时创建
默认第一次访问servlet时创建该对象。
(2)Servlet何时销毁
服务器关闭servlet就销毁了。
(3)每次访问必然执行的方法
service(ServletRequest req, ServletResponse res)方法。
5、servlet的执行过程

6、servlet的配置
(1)基本配置
<!-- servlet类的配置 -->
<servlet>
<servlet-name>abc</servlet-name>
<servlet-class>com.gzdlh.servlet.QuickStartServlet</servlet-class>
<init-param>
<param-name>url</param-name>
<param-value>jdbc:mysql://mydb</param-value>
</init-param>
</servlet> <!-- servlet的虚拟路径的配置 -->
<servlet-mapping>
<servlet-name>abc</servlet-name>
<url-pattern>/quickStartServlet</url-pattern>
</servlet-mapping>
其中url-pattern的配置方式:
①完全匹配:访问的资源与配置的资源完全相同才能访问到;
<url-pattern>/quickStartServlet</url-pattern>
②目录匹配:/虚拟的目录../* *代表任意;
<url-pattern>/aaa/bbb/ccc/*</url-pattern>
③扩展名匹配:*.扩展名,
<url-pattern>*.abcd</url-pattern>
7、服务器启动实例化Servlet配置
(1)Servlet何时创建:默认第一次访问时创建;
(2)为什么是默认?当在servlet的配置时加上一个配置 <load-on-startup>, servlet对象在服务器启动时就创建,数字代表优先级,数字越小,优先级越高。
<load-on-startup>3</load-on-startup>
8、缺省Servlet
(1)可以将url-pattern配置一个/,代表该servlet是缺省的servlet;
(2)什么是缺省的servlet?当你访问资源地址所有的servlet都不匹配时 , 缺省的servlet负责处理;
(3)其实,web应用中所有的资源的响应都是servlet负责,包括静态资源。
9、欢迎页面
在WebContent下配置。
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;}
03006_Servlet简介的更多相关文章
- ASP.NET Core 1.1 简介
ASP.NET Core 1.1 于2016年11月16日发布.这个版本包括许多伟大的新功能以及许多错误修复和一般的增强.这个版本包含了多个新的中间件组件.针对Windows的WebListener服 ...
- MVVM模式和在WPF中的实现(一)MVVM模式简介
MVVM模式解析和在WPF中的实现(一) MVVM模式简介 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在 ...
- Cassandra简介
在前面的一篇文章<图形数据库Neo4J简介>中,我们介绍了一种非常流行的图形数据库Neo4J的使用方法.而在本文中,我们将对另外一种类型的NoSQL数据库——Cassandra进行简单地介 ...
- REST简介
一说到REST,我想大家的第一反应就是“啊,就是那种前后台通信方式.”但是在要求详细讲述它所提出的各个约束,以及如何开始搭建REST服务时,却很少有人能够清晰地说出它到底是什么,需要遵守什么样的准则. ...
- Microservice架构模式简介
在2014年,Sam Newman,Martin Fowler在ThoughtWorks的一位同事,出版了一本新书<Building Microservices>.该书描述了如何按照Mic ...
- const,static,extern 简介
const,static,extern 简介 一.const与宏的区别: const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽成宏,推荐我们使用const常量. 执行时刻:宏是预编 ...
- HTTPS简介
一.简单总结 1.HTTPS概念总结 HTTPS 就是对HTTP进行了TLS或SSL加密. 应用层的HTTP协议通过传输层的TCP协议来传输,HTTPS 在 HTTP和 TCP中间加了一层TLS/SS ...
- 【Machine Learning】机器学习及其基础概念简介
机器学习及其基础概念简介 作者:白宁超 2016年12月23日21:24:51 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...
- Cesium简介以及离线部署运行
Cesium简介 cesium是国外一个基于JavaScript编写的使用WebGL的地图引擎,一款开源3DGIS的js库.cesium支持3D,2D,2.5D形式的地图展示,可以自行绘制图形,高亮区 ...
随机推荐
- ubuntu管理apt包的常用命令
安装 apt-get install nginx #安装 apt-get install nginx --reinstall #重新安装 删除 apt-get remove nginx #卸载 apt ...
- 17999 Light-bot 模拟 + kmp求循环节
http://acm.scau.edu.cn:8000/uoj/mainMenu.html 17999 Light-bot 时间限制:1000MS 内存限制:65535K 提交次数:0 通过次数:0 ...
- H5 之 Page Visibility
这个是今天刚发现的,想起之前那个在页面用video标签视频播放,别人切换页面后仍在继续播放,体验很不好,用这个API就可以很完美的解决. Page Visibility API 可以让你获取到这种状态 ...
- audio、video的控制
W3C上面给的是js控制相关的播放与暂停,不过在实际开发中我们多会选择JQ来操作的,毕竟方便很多,而play()和pause()用于js play并不是jQuery的函数,而是DOM元素的函数,所以我 ...
- Unity Shader入门精要学习笔记 - 第5章 开始 Unity Shader 学习之旅
一个顶点/片元 着色器的结构大概如下: Shader "MyShaderName" { Properties { //属性 } SubShader { //针对显卡A的SubSha ...
- MySQL在远程访问时非常慢的解决skip-name-resolve
服务器放在局域网内进行测试时,数据库的访问速度还是很快.但当服务器放到外网后,数据库的访问速度就变得非常慢. 后来在网上发现解决方法,my.cnf里面添加 [mysqld] skip-name-res ...
- C#入门笔记1
C#是用于创建要运行在.NET CLR上的应用程序的语言之一,从C和C++语言演化而来,是微软专门为使用.NET平台而创建的.优点:就是彻头彻尾为.NET Framework设计语言. C#能编写什么 ...
- 【学习笔记】八:浏览器对象模型BOM
1.window对象 window是BOM的核心,它既是JS访问浏览器的一个接口,又是ES规定的Global对象. 1)全局作用域对象 a.所有在全局作用域中声明的变量.函数都会成为window对象的 ...
- C语言abs函数
C语言编程入门教程 - abs 函数是用来求整数的绝对值的. //函数名:abs //功 能:求整数的绝对值 //用 法:int abs(int i); //程序例: #include<stdi ...
- css布局两边固定中间自适应的四种方法
第一种:左右侧采用浮动 中间采用margin-left 和 margin-right 方法. 代码如下: <div style="width:100%; margin:0 auto;& ...