Java Servlet总结

一、Servlet简介

Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容。
狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。
最早支持Servlet标准的是JavaSoft的Java Web Server,此后,一些其它的基于Java的Web服务器开始支持标准的Servlet。

二、Servlet接口

(1)init(ServletConfig config) 方法

被设计成只调用一次。它在第一次创建 Servlet 时被调用,在后续每次用户请求时不再调用。

(2)service(ServletRequest req, ServletResponse res)方法

是执行实际任务的主要方法。Servlet 容器(即 Web 服务器)调用 service方法来处理来自客户端(浏览器)的请求,并把格式化的响应写回给客户端。

(3)destroy() 方法

destroy() 方法只会被调用一次,在 Servlet 生命周期结束时被调用。destroy() 方法可以让您的 Servlet 关闭数据库连接、停止后台线程、把 Cookie 列表或点击计数器写入到磁盘,并执行其他类似的清理活动。

(4)getServletConfig()方法

获取init方法传入的Servlet配置ServletConfig。

(5)getServletInfo() 方法

提供有关servlet的信息,如作者、版本、版权。


三、GenericServlet抽象类

(1)实现接口

Servlet、 ServletConfig

(2)定义属性

transient ServletConfig config

(3)新增方法

a.init()方法

增加了init无参方法,此方法在Servlet接口的init(ServletConfig config) 方法中调用。

b.log(String msg)方法与log(String message, Throwable t)

打印日志

(4)继承Servlet的方法

a.service(ServletRequest req, ServletResponse res)方法仍然是抽象方法

b.init(ServletConfig config) 方法保存ServletConfig,然后调用无参的init()方法

c.getServletInfo() 方法返回长度为0的字符串

d.destroy() 方法空实现

e.getServletConfig()方法返回config

(5)继承ServletConfig的方法

通过config获取ServletContext、ServletName以及ServletContext的InitParameter和InitParameterNames


四、HttpServlet抽象类

(1)继承父类

GenericServlet

(2)新增方法

a.doGet(HttpServletRequest req, HttpServletResponse resp)方法

处理http的get方式的请求

b.doPost(HttpServletRequest req, HttpServletResponse resp)方法

处理http的post方式的请求

c.service(HttpServletRequest req, HttpServletResponse resp)方法

由Servlet接口的service(ServletRequest req, ServletResponse res)方法调用,分发请求到对应的请求方式

d.getLastModified(HttpServletRequest req) long 方法

获取最后一次的请求时间

e.doDelete、doHead、doOptions、doPut和doTrace等不常用方法


五、自定义servlet处理http请求

(1)一般继承自HttpServlet

(2)覆盖doGet方法与doPost方法


六、配置serlvet

(1)定义servlet

在web.xml中定义

[html] view plaincopy
  1. <servlet>  
  2.      <servlet-name>MyServlet</servlet-name>  
  3.       <servlet-class>com.mk.MyServlet</servlet-class>  
  4. </servlet>  

(2)映射servlet

在web.xml中定义

[html] view plaincopy
  1. <servlet-mapping>  
  2.       <servlet-name>MyServlet</servlet-name>  
  3.       <url-pattern>/welcome</url-pattern>  
  4. </servlet-mapping>  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/331361.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java oca_OCA第1部分中的Java难题

java oca我在业余时间正在阅读Mala Gupta的Oracle认证Java SE程序员助理书&#xff0c;我对所学到的一些新知识感到惊讶。 有时候他们真的没有道理&#xff0c;有时候他们说得通&#xff0c;但真的让人惊讶。 因此&#xff0c;在本系列文章中&#xff0c;我想将它们共享为“ Ja…

jvm(1)-走进java

【0】README0.1&#xff09;本文转自 深入理解 jvm&#xff0c;旨在了解 java 体系结构&#xff1b;【1】java技术体系1&#xff09; Sun 官方所定义的java 技术系统包括以下几个组成部分&#xff1a; java 程序设计语言&#xff1b;各种硬件平台上的java 虚拟机&#xff1b;Cl…

Java 高并发下的实践

一、使用的技术HashMap ConcurrentHashMap Lock ReadWriteLock synchronized 二、一百万并发下的组合 ConcurrentLockMap /** To change this license header, choose License Headers in Project Properties.* To change this template file, choose Tools | Templates* …

java oca_OCA第2部分中的Java难题

java oca欢迎使用OCA的Java Puzzlers的第二部分。 在这一部分中&#xff0c;我们将看到一个有趣的案例&#xff0c;涉及Java 7附带的数字文字中的下划线分隔符。 在下面的类中&#xff0c;您可以在十进制文字中看到分隔符下划线。 还请注意&#xff0c;该类现在可以正常编译。…

jvm(2)-OutOfMemoryError 异常(内存溢出异常)

【0】README0.1&#xff09;本文转自 深入理解 jvm&#xff0c; 旨在学习 OutOfMemoryError 异常&#xff08;内存溢出异常&#xff09; 的触发类型&#xff1b;0&#xff09;准备知识0.1&#xff09;除了程序计数器外&#xff0c;虚拟机内存的其他几个运行时区域&#xff08;方…

java oca_OCA第7部分中的Java难题

java oca在OCA系列的Java Puzzlers的这一部分中&#xff0c;我将展示定义字符串和与之相关的潜在惊喜的多种方法。 创建字符串的两种基本类型是使用new关键字和仅使用字符串文字来创建。 String strWithNew new String( "hey" ); String strWithLiteral "ho&…

Java GC总结

一、gc两大基本算法1、引用计数法 2、根搜索法 二、gc改进收集算法 1、标记-清除算法 2、复制算法 3、标记-整理算法 分代收集算法 三、gc的类型 串行垃圾回收器&#xff08;Serial Garbage Collector&#xff09; 并行垃圾回收器&#xff08;Parallel Garbage Collecto…

让CentOS能用yum自动安装rar和unrar

【0】README 0.1&#xff09;本文转自&#xff1a; http://www.centoscn.com/CentOS/config/2015/0520/5485.html 目的&#xff1a;让CentOS能用yum自动安装rar和unrar 系统环境&#xff1a; CentOS 7.0 具体操作步骤如下&#xff1a; 1.编辑文件 编辑dag.repo文件&#xff0c…

java oca_OCA第6部分中的Java难题

java oca即使对于新的Java开发人员&#xff0c;构造函数也可能不是什么大谜。 本质上&#xff0c;当您创建一个类的实例时&#xff0c;该类的构造函数就会启动。 在Java Puzzlers系列的第6部分中&#xff0c;我们将看到一个与构造函数有关的案例。 public class Puzzler { publ…

Java 内存泄露总结

一、Java内存泄漏引起的原因&#xff1a;内存泄漏是指无用对象&#xff08;不再使用的对象&#xff09;持续占有内存或无用对象的内存得不到及时释放&#xff0c;从而造成内存空间的浪费称为内存泄漏。 二、内存泄露的方式 1、静态集合类引起内存泄漏 像HashMap、Vector等的使…

使用Mockito的Mock Void方法

大家好&#xff01; 在我们之前的博客关于thenReturn和thenAnswer模拟方法之间的区别之后 &#xff0c;我们又回来了关于Mockito的另一个有趣的博客。 在这里&#xff0c;我们将讨论“如何用Mockito模拟无效方法”。 让我们开始吧&#xff01; 在编写代码时&#xff0c;总是至…

System.gc()调用 - 适用的场景

一、System.gc()调用 System.gc()用于调用垃圾收集器&#xff0c;在调用时&#xff0c;垃圾收集器将运行以回收未使用的内存空间。它将尝试释放被丢弃对象占用的内存。然而System.gc&#xff08;&#xff09;调用附带一个免责声明&#xff0c;无法保证对垃圾收集器的调用。我们…

将模板方法模式应用到kmeans聚类算法

【0】README 0.1&#xff09;本文描述和源代码均为原创&#xff0c;旨在说明 如何将模板方法模式应用到kmean聚类算法&#xff1b; 0.2&#xff09;模板方法模式的intro&#xff0c; 参见 模板方法模式 0.3&#xff09;for kmeans alg source code, please visit kmeans&a…

java oca_OCA第4部分中的Java难题

java oca在Java Puzzlers的第四部分中&#xff0c;我们有一些与char类型有关的东西。 public class Puzzler { public static void main(String[] args){ char myChar a ; myChar; System.out.println(myChar); } } 您可能已经猜到了。 它将打印“ b”&#xff0c;其原因是c…

毕业设计的十大问题

一、vue的跨域问题 1、前端本地用代理软件代理服务器 在vue项目下的 config/index.js 文件里面配置代理proxyTable:proxyTable: {/login: {target: http://192.168.1.1:8080/ntd/data,changeOrigin: true,pathRewrite: {^/login:}}2、后台服务器开启允许跨域的响应头 直接在tom…

设计模式入门(策略模式)

【0】README0.1&#xff09;本文部分文字描述转自 “head first 设计模式”&#xff0c;旨在学习 设计模式入门&#xff08;策略模式&#xff09; 的基础知识&#xff1b;0.2&#xff09;本文章节4和5的source code&#xff0c;参见 设计模式——策略模式源代码【1】看个荔枝&a…

java oca_OCA的Java拼图游戏第3部分

java oca在Java难题的第三部分中&#xff0c;我们将看到变量命名限制方面的惊喜。 如果我向您展示了这一点&#xff0c;那么我相信您不会因为它无法编译而感到惊讶。 静态是保留关键字之一&#xff0c;为什么它应该起作用&#xff1f; public class Puzzler {public static v…

maven安装遇到的坑

一、环境变量设置没有反应 cmd窗口的设置未更新&#xff0c;需重新开启cmd窗口 二、缺失包 默认加载maven的仓库 配置minor导致官方的Maven库下载不了

单件模式(单例模式)

【0】README0.1&#xff09;本文部分描述转自 “head first 设计模式”&#xff0c; 旨在学习 单件模式&#xff08;单例模式&#xff09; 的相关知识 及其应用&#xff1b;【1】单件模式1.0&#xff09;单件模式的应用背景&#xff1a;有一些对象其实我们只需要一个&#xff0…

java oca_OCA第5部分中的Java难题

java oca在Java Puzzlers系列的第五部分中&#xff0c;我们将看到与X.parseX&#xff08;String s&#xff09;方法相关的内容。 您可以看到我们对X.parseX&#xff08;&#xff09;方法的期望。 public class Puzzler { public static void main(String[] args){ int i Inte…