servlet是Javaweb的核心,它实质上就是运行在服务器端的Java代码

1.简介

servlet是运行在服务器端的小程序,是sun公司提供的一套规范(接口),用来处理用户的请求,响应给浏览器的动态资源。servlet的本质是Java代码,通过Java的API动态的向客户端输出内容

servlet规范包含三个技术点:servlet,filter,listener

2.servlet快速入门

  Servlet接口SUN公司定义了两个默认实现类,分别为:GenericServlet、HttpServlet。我们在实际开发中通常不去实现servlet的接口,因为那样需要实现的方法太多。因此我们只需要继承HttpServlet,覆写doGet(),doPost()方法即可

3.掌握servlet的xml配置

servlet的基本配置

  <!-- servlet类的配置 -->
<servlet>
<description></description>
<display-name>FirstServlet</display-name>
<servlet-name>FirstServlet</servlet-name>
<servlet-class>servlet温习.FirstServlet</servlet-class>
</servlet>
<!-- servlet虚拟路径的配置 -->
<servlet-mapping>
<servlet-name>FirstServlet</servlet-name>
<url-pattern>/firstServlet</url-pattern>
</servlet-mapping>

<url-pattern>的配置

用的最多的就是如上图所示的完全匹配。

目录匹配 /虚拟的目录/*

扩展名匹配 *.abc(扩展名)

缺省servlet的配置:将url-pattern配置一个/

当你访问资源地址与所有的servlet都不匹配时,缺省的servlet就会处理

其实,web应用中所有的资源的响应都是servlet负责,包括静态资源

配置实例化servlet的时间

servlet默认的是第一次访问的时候执行init()方法,可以配置一个<load-on-startup>使服务器启动后就实例化

  <!-- servlet类的配置 -->
<servlet>
<display-name>FirstServlet</display-name>
<servlet-name>FirstServlet</servlet-name>
<servlet-class>servlet温习.FirstServlet</servlet-class> <!-- 运行起来3秒后,执行相应的init方法 -->
<load-on-startup>3</load-on-startup> </servlet>

欢迎页面的配置

  <welcome-file-list>
<welcome-file>1.html</welcome-file>
<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>

4.掌握servlet的生命周期(API),理解servlet的执行过程

https://www.cnblogs.com/lgk8023/p/6427977.html

总的来说就是用servlet接口中的那三个api来表示init() service(),destroy(),分为四个阶段:加载和实例化,初始化,请求处理,服务终止

问题:对XXXServlet进行了10次访问,init(),destory(),service(),doGet(),doPost() 一共执行力多少次?request对象创建几个?response创建几个?

Servlet接口中的方法

init(ServletConfig config)

service(ServletRequest request,ServletResponse response

destroy()

HttpServlet类的方法

1)init()

2)doGet(HttpServletRequest request,HttpServletResponse response)

3)doPost(HttpServletRequest request,HttpServletResponse response)

4)destroy()

Servlet获取请求的过程

在解析请求的资源地址时干的事

5.掌握ServletContext对象

ServletContext对象是一个全局域对象,代表着web应用环境的上下文,其代表着web应用。servlet对象可以有很多个但是servletContext对象只能有一个因为其对应的web项目只有一个

ServletContext的生命周期:

创建:在web应用创建后,它就创建了

销毁:在web应用销毁后,它也就销毁了

重点掌握几个api的应用:

获取servletContext对象

1)ServletContext servletContext = config.getServletContext();

2)ServletContext servletContext = this.getServletContext();

servletContext对象的作用

web.xml中配置初始化参数

通过context对象获得参数

获取资源的绝对路径

方法:

String path = context.getRealPath(相对于该web应用的相对地址);

ServletContext是一个域对象

ServletContext域对象的作用范围:整个web应用(所有的web资源都可以随意向 servletcontext域中存取数据,数据可以共享)

域对象的通用的方法:

setAtrribute(String name,Object obj);

getAttribute(String name);

removeAttribute(String name);

package servlet温习.demo2;

import java.io.IOException;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; public class ServerContext1 extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获取ServerContext对象
ServletContext context = this.getServletContext();
//1.获取初始化的参数
String parameter = context.getInitParameter("driver");
System.out.println(parameter);
//2.获取a.txt
String path1 = context.getRealPath("WEB-INF/a.txt");
System.out.println(path1);
//3.获取c.txt
String path2 = context.getRealPath("WEB-INF/classes/c.txt");
System.out.println(path2);
//4.获取d.txt
String path3 = context.getRealPath("d.txt");
System.out.println(path3); //设置值
context.setAttribute("name", "zhangsan");
} protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
} }

servlet温习的更多相关文章

  1. 重温 JSP 与 Servlet

    Java Web使用SSH框架多了,很多基础的 JSP 与 Servlet 的东西都忘记了.最近在 JSP 标签 和 Struts2 包装的 Session 对象的混合使用时弄晕了,就翻书温习下. J ...

  2. servlet文件下载

    创建web工程servlet,新建DownloadServlet.java package com.xmyself.servlet; import java.io.File; import java. ...

  3. 前端框架 EasyUI (0) 重新温习(序言)

    几年前,参与过一个项目.那算是一个小型的信息管理系统,BS 结构的,前端用的是基于 jQuery 的 EasyUI 框架. 我进 Team 的时候,项目已经进入开发阶段半个多月了.听说整个项目的框架是 ...

  4. java中servlet的各种路径

    1. web.xml中<url-pattern>路径,(叫它Servlet路径!) > 要么以“*”开关,要么为“/”开头 2. 转发和包含路径 > *****以“/”开头:相 ...

  5. Servlet监听器笔记总结

    监听器Listener的概念 监听器的概念很好理解,顾名思义,就是监视目标动作或状态的变化,目标一旦状态发生变化或者有动作,则立马做出反应. Servlet中的也有实现监听器的机制,就是Listene ...

  6. JavaWeb——Servlet

    一.基本概念 Servlet是运行在Web服务器上的小程序,通过http协议和客户端进行交互. 这里的客户端一般为浏览器,发送http请求(request)给服务器(如Tomcat).服务器接收到请求 ...

  7. servlet 简介,待完善

    什么是Servlet?① Servlet就是JAVA 类② Servlet是一个继承HttpServlet类的类③ 这个在服务器端运行,用以处理客户端的请求 Servlet相关包的介绍--javax. ...

  8. java web学习总结(五) -------------------servlet开发(一)

    一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向 ...

  9. servlet使用入门

    创建web工程servlet,然后新建TestServlet.java package com.xmyself.servlet; import java.io.IOException; import ...

随机推荐

  1. Postgresql ODBC驱动,用sqlserver添加dblink跨库访问postgresql数据库

    在同样是SQLserver数据库跨库访问时,只需要以下方法 declare @rowcount int set @rowcount =(select COUNT(*) from sys.servers ...

  2. JQuery ajax的使用

    JQuery 真的是好东西       $.ajax({         type: "post",         url: "/DataCheck",   ...

  3. IdentityServer4客户端JWT解密实现(基于.net4.0)

    情景:公司项目基于.net4.0,web客户端实现单点登录需要自己解密id_token,对于jwt解密,.net提供了IdentityModel类库,但是4.0中该类库不可用,所以自己实现了解密方法. ...

  4. webpack 笔记

    webpack.config.json entry:入口,可有多个 devtool:'inline-source-map'      source map,遇到错误时,追踪到原文件,而不是编译后的文件 ...

  5. Spring Boot Docker 实战

    Spring Boot Docker 开发环境 开发工具: Intellij IDEA 2018.2.6 springboot: 2.0.6.RELEASE jdk: 1.8.0_192 maven: ...

  6. 用函数式编程对JavaScript进行断舍离

    译者按: 当从业20的JavaScript老司机学会函数式编程时,他扔掉了90%的特性,也不用面向对象了,最后发现了真爱啊!!! 原文: How I rediscovered my love for ...

  7. 继续封装个 Volley 组件

    本篇文章已授权微信公众号 dasu_Android(大苏)独家发布 前面已经封装了很多常用.基础的组件了:base-module, 包括了: crash 处理 常用工具类 apk 升级处理 log 组 ...

  8. 用webpack2.0构建vue2.0超详细精简版

    初始化环境 npm init -y 初始化项目 安装各种依赖项 npm install --save vue 安装vue2.0 npm install --save-dev webpack@^2.1. ...

  9. 在php中使用对称加密DES3,开发银行卡绑定,实名验证……

    对称加密:对称加密是一种数据加密算法,对一组数据的加密和解密都使用一样的密钥(key),可以有效保护金融数据,常见的对称加密有DES,3DES,AES.RC2.RC4.RC5. DES3: 对DES算 ...

  10. iOS------教你如何APP怎么加急审核

    苹果的加急审核如何使用呢? 在iTunesconnect页面,点击右上角的“?”图标,在弹出菜单中选择“联系我们”, 联系我们 然后在Contact Us页面,选择“App Review” —> ...