身为计算机专业的我,从接触java至今,已经有七年之久,从最开始的小白到现在的大白,这是一个漫长而曲折的历程。

  大学刚接触Java这个学科时,一点儿都不理解java是要干嘛的,只知道学起来肯定不容易,对键盘都不熟悉的我敲起代码来更是那么的不容易,不过好在坚持住了,其实主要是除了敲代码不会其他的了,不像其他女孩纸多才多艺,本人乃是无聊宅女一枚。

  幸亏在大学期间很幸运的去北京实训过一个月,以至于对开发有了进一步认识,这也就决定了我以后的人生方向。没有方向可以给自己创造方向,想的再多不如行动起来。

废话不多说了,接下来谈一谈对servlet的理解。

  servlet是运行在 Web服务器中的小型 Java程序(即:服务器端的小应用程序),servlet通常通过 HTTP(超文本传输协议)接收和响应来自 Web客户端的请求。

单单看文字可能很难理解servlet的作用。首先写个小案例:

  1.1、编写一个servlet程序:

  a、写一个java类,实现servlet接口

  b、修改web.xml文件,给servlet提供一个可访问的URI地址

  c、部署应用到tomcat服务器

  d、测试:http://locahost:8080/demo1_servlet/demo1

  通过上面的小案例能够看到页面打印出“hello ServletDemo1”就成功了。

  写完这个小案例,可能还是不清楚它的执行过程,下面通过文字来解释一下。

  1.2 servlet的生命周期

  实例化(构造方法)-->初始化(init)-->服务(service)->销毁(destroy)

  出生:(实例化-->初始化)第一次访问Servlet就出生(默认情况下)

  活着:(服务)应用活着,servlet就活着

  死亡:(销毁)应用卸载了servlet就销毁。

  1.3 servlet的执行流程

  1.通过浏览器的URL地址访问http://locahost:8080/demo1_servlet/demo1

  2.在tomcat服务器中找到名为demo1_servlet的应用

  3.通过/demo1找到应用中web.xml文件

  4.通过解析web.xml中servlet映射提供的url-pattern找到相对应的/demo1

  5.然后通过servlet映射中的servlet-name找到servlet标签中的servlet-name,从而找到ServletDemo1类,并进行实例化

  6.调用ServletDemo1类中init方法

  7.调用ServletDemo1类中service方法

  8.将信息响应给客户端

  9.调用ServletDemo1类中的destroy方法

  1.4 servlet的三种创建方式

  1.实现javax.servlet.Servlet接口(第一个小案例)

  2.继承javax.servet.GenericServlet类(适配器模式)

  3.继承javax.servlet.http.HttpServlet类(开发中常用方式)

  在实际开发中常用第三种继承HttpServlet,页面访问时默认get提交方式。

  以上是对servlet的简单理解,如果感觉不是很详细,在这个互联网时代,网上资源很多,都可以利用。

Java技术分享:如何编写servlet程序的更多相关文章

  1. Java如何编写Servlet程序

    一:Servlet Servlet是Java服务器端编程,不同于一般的Java应用程序,Servlet程序是运行在服务器上的,服务器有很多种,Tomcat只是其中一种. 例子: 在Eclipse中新建 ...

  2. 腾讯技术分享:微信小程序音视频与WebRTC互通的技术思路和实践

    1.概述 本文来自腾讯视频云终端技术总监rexchang(常青)技术分享,内容分别介绍了微信小程序视音视频和WebRTC的技术特征.差异等,并针对两者的技术差异分享和总结了微信小程序视音视频和WebR ...

  3. 腾讯技术分享:微信小程序音视频技术背后的故事

    1.引言 微信小程序自2017年1月9日正式对外公布以来,越来越受到关注和重视,小程序上的各种技术体验也越来越丰富.而音视频作为高速移动网络时代下增长最快的应用形式之一,在微信小程序中也当然不能错过. ...

  4. java编程基础篇---------> 编写一个程序,从键盘输入三个整数,求三个整数中的最小值。

    编写一个程序,从键盘输入三个整数,求三个整数中的最小值. 关键:声明变量temp   与各数值比较. package Exam01; import java.util.Scanner; public ...

  5. JAVA技术分享:消失的线程

    很多小伙伴都问过我一个问题,就是任务线程跑着跑着消失了,而且没有任何异常日志.我都是条件反射式的回复,是不是用了线程池的submit提交任务.而且很大几率对方给予肯定答复. 解决方案,很多人都听过不少 ...

  6. java 技术分享

    http://www.ccblog.cn/99.htm http://www.ccblog.cn/100.htm http://www.ccblog.cn/101.htm http://www.ccb ...

  7. Servlet第一篇【介绍Servlet、HTTP协议、WEB目录结构、编写入门Servlet程序、Servlet生命周期】

    什么是Serlvet? Servlet其实就是一个遵循Servlet开发的java类.Serlvet是由服务器调用的,运行在服务器端. 为什么要用到Serlvet? 我们编写java程序想要在网上实现 ...

  8. 最值得收藏的java技术博客(Java篇)

    第一个:java_my_life 作者介绍:找不到原作者信息.大概做了翻阅全部是2012年的博客. 博客主要内容:主要内容是关于Java设计模式的一些讲解和学习笔记,在相信对学习设计模式的同学帮助很大 ...

  9. 腾讯技术分享:GIF动图技术详解及手机QQ动态表情压缩技术实践

    本文来自腾讯前端开发工程师“ wendygogogo”的技术分享,作者自评:“在Web前端摸爬滚打的码农一枚,对技术充满热情的菜鸟,致力为手Q的建设添砖加瓦.” 1.GIF格式的历史 GIF ( Gr ...

随机推荐

  1. python自动安装mysql5.7

    python自动安装mysql5.7 python版本:python2.6 centos版本:centos6.9 mysql版本:mysql5.7.19 安装目录路径和数据目录路径都是固定,当然也可以 ...

  2. C#中DataGridView动态添加行及添加列的方法

    http://www.jb51.net/article/72259.htm Datagridview添加列: ? 1 2 3 4 5 DataGridViewTextBoxColumn acCode ...

  3. spring的基本使用

    Spring的基本使用ioc,今天主要给大家说明了解决强耦合的联系,并且,注入的基本使用 Java里面的强耦合并且讲了spring是如何解决强耦合的第一种方式使用工厂模式,用的是反射,第二种方式是sp ...

  4. PHP使用ueditor上传配置

    引入 按照ueditor官网demo, 引入好ueditor之后, 默认是不能进行上传操作的 在上传时,在上传时会有如下图提示 配置上传 在editor/php目录下,有一个config.json文件 ...

  5. [js高手之路]寄生组合式继承的优势

    在之前javascript面向对象系列的文章里面,我们已经探讨了组合继承和寄生继承,回顾下组合继承: function Person( uName ){ this.skills = [ 'php', ...

  6. 用AndroidStudio发布Libs到Bintray jCenter

    1 RootProject[根目录]build.gradle中添加如下插件引用 dependencies { ....... classpath 'com.jfrog.bintray.gradle:g ...

  7. 【Python3的函数初识】

    一.函数 1.什么是函数? 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率,可扩展性强. 2.函数的分类 在python中函数分两类:内 ...

  8. uC/OS-II 内存管理

    UC/OS-II  内存管理 1. 简介    uC/OS-II 不使用ANSI编译器的malloc(), free(),因为内存碎片,很可能获取不到一块连续的内存, 这在嵌入式系统中是很危险的.同时 ...

  9. web前端经典面试题大全及答案

    阅读目录 JavaScript部分 JQurey部分 HTML/CSS部分 正则表达式 开发及性能优化部分 本篇收录了一些面试中经常会遇到的经典面试题以及自己面试过程中遇到的一些问题,并且都给出了我在 ...

  10. flask动态url规则

    动态URL规则 URL规则可以添加变量部分,也就是件更符合同规则的URL抽象成一个URL模式. @app.route('/item/<id>') def item(id): return ...