文档章节

javaWeb之Servlet详解

architect刘源源
 architect刘源源
发布于 2018/01/31 23:53
字数 736
阅读 22
收藏 0

Servlet详解

1.servlet简单介绍

  servlet是javaweb三大组件之一,他与filter  ,listener  共同组成了javaweb的三大组件,Servlet(Server Applet)是Java Servlet的简称,解释为运行在服务器端的java小程序,

  作用:用来接收客户端的请求,处理业务逻辑,响应动态内容

2.使用

  创建一个java类,实现Servlet接口,重写抽象方法

复制代码

1 public class MyServlet implements Servlet {
 2     /**
 3      * Servlet初始化的时候执行
 4      */
 5     @Override
 6     public void init(ServletConfig config) throws ServletException {
 7         // TODO Auto-generated method stub
 8         
 9     }
10     /**
11      *请求来的时候执行
12      */
13     @Override
14     public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
15         // TODO Auto-generated method stub
16         
17     }
18     /**
19      * Servlet销毁的时候执行
20      */
21     @Override
22     public void destroy() {
23         // TODO Auto-generated method stub
24         
25     }
26 
27     @Override
28     public String getServletInfo() {
29         // TODO Auto-generated method stub
30         return null;
31     }
32     @Override
33     public ServletConfig getServletConfig() {
34         // TODO Auto-generated method stub
35         return null;
36     }
37 
38 }

复制代码

3.Servlet的生命周期(Servlet对象是单例的)

  创建:默认情况下,当请求来的时候,服务器会检查该类的对象有没有被创建,如果没有创建,服务器会反射创建该类的对象,并且调用init方法完成初始化的操作,然后调用serivce 方法完成相应的业务逻辑

  服务:请求来一次就服务一次

  销毁:当服务器正常关闭或者项目卸载的时候会销毁该Serlvet对象

复制代码

1 /**
 2      * Servlet初始化的时候执行
 3      * 执行时机:默认情况下,当你去请求服务器的时候,服务器会检查有没有该Servlet对象,
 4      *             如果没有,就会反射创建该类对象,并执行init方法完成初始化操作,紧接着调用
 5      *             service方法完成服务
 6      * 执行次数:1次
 7      */
 8     @Override
 9     public void init(ServletConfig config) throws ServletException {
10         // TODO Auto-generated method stub
11         
12     }
13     /**
14      *服务:
15      *执行时机:请求一次执行一次
16      *执行次数:多次
17      *
18      */
19     @Override
20     public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
21         // TODO Auto-generated method stub
22         
23     }
24     /**
25      *销毁
26      *执行时机:服务器关闭或者是项目卸载的时候,会调用该方法
27      *执行次数:1次
28      */
29     @Override
30     public void destroy() {
31         // TODO Auto-generated method stub
32         
33     }

复制代码

4.Servlet在web.xml中的配置详解

 

图解配置文件执行流程

 

 

url-pattern的写法
  1.精确匹配写法 必须/打头 后面自定义 /aa/bb /aa/ccc/dddd 
  2.目录匹配写法 必须/打头 中间自定义 以/*结尾 /aa/* /aaa/dd/*
  3.后缀名匹配写法 必须*.打头 *.jsp *.action *.do

load-on-startup配置项
  修改servlet的默认初始化时机 servlet将会在服务器启动的完成加载

  <load-on-startup>正整数</load-on-startup>
  正整数:如果值越小优先级越高

defaultservlet:
  路径 /
  匹配上所有的资源 但是优先级最低

  你不管的他管
  你管不了的它管

 

 5.Servlet运行流程

© 著作权归作者所有

architect刘源源

architect刘源源

粉丝 167
博文 555
码字总数 935372
作品 0
浦东
程序员
私信 提问
shtml和jsp是什么 关系呀?

我学习一个java web项目,里面的页面好像都是shtml,为什么要这么写? 这是web.xml里的一段 controller org.springframework.web.servlet.DispatcherServlet 1 controller *.shtml...

Vek_lip
2016/10/26
384
2
javaweb

我真是草他妈的弄了整整2天!就这么一个JSP页面无论如何都是空白页面 没有任何效果,if(request.getAttribute("aa")!=null) if(request.getAttribute("aa")==null)都写过了 要不是我的问题马......

地瓜地瓜我是土豆876
2017/07/06
146
4
客户端通过http协议 post xml型字符串数据到后台工作流程(请指点)

一.客户端流程 两种方法:1.通过httpurlconnection 2.通过apache开源的httpclient 代码示例为 urlconnection方法: StringBuilder responseBuilder = null;BufferedReader reader = null;Bu......

Enjoy前端开发
2013/08/23
674
0
图解 & 深入浅出 JavaWeb:Servlet 再说几句

Writer :BYSocket(泥沙砖瓦浆木匠) 微 博:BYSocket 豆 瓣:BYSocket FaceBook:BYSocket Twitter :BYSocket 上一篇的《 Servlet必会必知 》受到大家一致好评 — (感谢 读者 及 OSC 推荐...

泥沙砖瓦浆木匠
2015/09/03
3K
13
走进JavaWeb技术世界4:Servlet 工作原理详解

本文出自我的公众号:程序员江湖。 满满干货,关注就送。 从本篇开始,正式进入Java核心技术内容的学习,首先介绍的就是Java web应用的核心规范servlet 转自:https://www.ibm.com/developer...

你的猫大哥
2017/09/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
昨天
6
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
昨天
7
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
昨天
6
0
【技术分享】TestFlight测试的流程文档

上架基本需求资料 1、苹果开发者账号(如还没账号先申请-苹果开发者账号申请教程) 2、开发好的APP 通过本篇教程,可以学习到ios证书申请和打包ipa上传到appstoreconnect.apple.com进行TestF...

qtb999
昨天
10
0
再见 Spring Boot 1.X,Spring Boot 2.X 走向舞台中心

2019年8月6日,Spring 官方在其博客宣布,Spring Boot 1.x 停止维护,Spring Boot 1.x 生命周期正式结束。 其实早在2018年7月30号,Spring 官方就已经在博客进行过预告,Spring Boot 1.X 将维...

Java技术剑
昨天
18
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部