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形式的地图展示,可以自行绘制图形,高亮区 ...
随机推荐
- python开篇随记
脚本环境,解释器处理 #!/usr/bin/env python # -*- coding:utf-8 -*- 变量 ■ 变量名只能由字母.数字和下划线组合 ■ 变量名不能以数字开头 ■ 关键字不能自 ...
- php 分析2
a:link,a:visited,a:hover,a:active 1:解释 link:连接平常的状态 visited:连接被访问过之后 hover:鼠标放到连接上的时候 active:连接被按下 ...
- CSS3基础知识学习
CSS3动画例子展示 http://www.17sucai.com/pins/demoshow/13948 HTML5和CSS3特效展示 http://www.html5tricks.com/30-m ...
- LR中webservice服务测试的脚本
Action(){ /* 测试QQ是否在线的功能接口 输入参数:QQ号码 String,默认QQ号码:8698053. 返回数据:String,Y = 在线:N = 离线:E = QQ号码错误:A = ...
- LR中测试dubbo接口的脚本
import lrapi.lr;import com.alibaba.dubbo.config.ApplicationConfig;import com.alibaba.dubbo.config.Re ...
- springMVC中ajax和后台数据格式错误
前台ajax: $.ajax("${pageContext.request.contextPath}/hello",// 发送请求的URL字符串. { dataType : &qu ...
- codeforces Gym 100338C Important Roads (重建最短路图)
正反两次最短路用于判断边是不是最短路上的边,把最短路径上的边取出来建图.然后求割边.注意重边,和卡spfa. 正权,好好的dijkstra不用,用什么spfa? #include<bits/st ...
- Vue+webpack+echarts+jQuery=demo
需要的插件: "dependencies": { "bootstrap": "^3.3.7", "echarts": & ...
- 利用kubeadm快速部署k8s
内外网络互通 [root@k8s-1 ~]# cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) 配置k8syum仓库,及Dock ...
- JavaScript中对象的属性:如何遍历属性
for/in 语句循环遍历对象的属性. js中获取key得到某对象中相对应的value的方法:obj.key js中根据动态key得到某对象中相对应的value的方法有二: 一.var key = & ...