一.Servlet介绍
1.Servlet是运行在WEB服务器端的一段程序,它使用Java语言编写,具有Java语言的特点,与Java程序的区别是,Servlet对象主要封装了对HTTP请求的处理,并且他的运行需要Servlet容器的支持。
结构体系:Servlet对象,ServletConfig对象与Serializable对象是接口对象,GenericServlet是一个抽象类,对这3个接口提供了部分实现,但并没有对HTTP请求处理进行实现,由子类HttpServlet进行实现,在实际开发中使用的Servlet都继承于HttpServlet.
2.Servlet功能很强大,可以满足对WEB应用的开发需求,但每一句HTML代码都由Servlet的固定方法来输出,操作会过于复杂,于是出现了JSP技术。
Servlet特点:
        1, 功能强大
        2, 可移植性
        3, 速度快, 性能高
        4, 安全性高
        5, 可扩展(面向对象)
Servlet与JSP的区别:
        1.角色不同:Servlet为控制层,JSP为视图层。(MVC模式编程)
        2.编程方法不同:Servlet使用JAVA代码,主要处理业务逻辑方面;JSP页面中通过HTML代码及JSP内置对象实现对HTTP请求及页面处理,其显示界面功能更为强大。
        3.是否需要重新编译:Servlet的每次更改都需要Java编译器对其重新编译,JSP由JSP Container对其进行自动编辑。
        4.速度不同:Servlet编译完成后,不需要再次编译,其效率要高于JSP。
二.Servlet代码结构
当用户对Servlet容器发送请求时,容器通知相应的Servlet对象进行处理,主要方法是service(),通过重写service()方法对请求进行处理;
要使servlet能够正常运行,需要在web.xml中对Servlet进行配置,以告知WEB容器哪一个请求调用哪一个Sevlet对象处理,对Servlet起到一个注册的作用;
例:新建一个Servlet类

public class MyServlet extends HttpServlet{protected void service(HttpServletRequest request,HttpServletResponse response)throws Exception{}

在web.xml文件中配置:通过<servlet>标签声明一个Servlet对象。

<servlet><servlet-name>MyServlet</servlet-name><!-- Servlet的名称 --><servlet-class>com.hanqi.servlet.MyServlet</servlet-class><!-- Servlet对象的完整位置(可通过右键点击类名copy Qualified Name快速获取) --><init-param><!-- 可在这设置初始化参数 --><param-name>name</param-name><param-value>value</param-value></init-param><load-on-startup>1</load-on-startup><!-- 启动时加载,数字越小,优先级越高; -->
</servlet>
<!-- 映射Servlet -->
<servlet-mapping><servlet-name>MyServlet</servlet-name><!-- 名称需要与上面的一样 --><url-pattern>/MyServlet</url-pattern><!-- 请求的路径,与页面上一样 -->
</servlet-mapping>
<!-- 执行顺序为先通过请求路径找到该Servlet映射名称,再根据名称找到具体位置 -->

注意:每次修改java文件都会自动重启服务器对其重新编译,可通过修改Servers项目中的server.xml文件中最下面<context>标签中的reloadable="true"改为false关闭自动重启功能。
Servlet生命周期:
    init(ServletConfig config);----初始化一个servlet类的实例, 这个方法只会执行一次
        可以在web.xml中配置, <load-on-startup></load-on-startup>, 标签中写一个int型数字,
        当这个值为0或者不配置这个标签的时候, 这个servlet将会在使用的时候才会去初始化, 其他数字会在tomcat服务器运行的时候就加载, 数字越小, 优先级越高。
    service()方法
        这个方法是响应客户请求的, 这个方法的执行来决定这个servlet是该调用doPost还是doGet。
    destroy();----销毁一个servlet类的实例
        停止tomcat的时候会调用此方法, 来销毁servlet实例对象, 释放资源
在实际开发中一般采用集成工具直接创建一个Servlet类,只需要重写doGet()方法即可;
三.Servlet常用内置对象的获取
request和response对象可直接使用;
application对象通过request.getServletContext()获取;
session对象通过request,getSession()获取;
out对象通过response.getWriter()获取;

转载于:https://www.cnblogs.com/wyc1991/p/9193825.html

JAVA Web基础3-Servlet相关推荐

  1. Web基础之Servlet+JDBC+JSP项目实战记录(一)

    Web基础之Servlet+JDBC+JSP项目实战记录(一) 一.项目说明: 通过前面的学习,我们已经对Servlet有了一定的了解:接下来我们要结合数据库和JSP技术一步一步完成一个小型的动态we ...

  2. JAVA WEB篇2——Servlet

    JAVA WEB篇2--Servlet Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,是Java语言编写 的服务器端程序,换句话说,Serv ...

  3. Java Web基础

    目录 Java Web基础 HTML基础 HTML补充 CSS基础 CSS补充 JavaScript基础 JavaScript补充(例题) Java Web补充 Java Web基础 HTML基础 标 ...

  4. Java Web基础面试问题——Cookie和Session

    Java Web基础面试问题 Cookie 和 Session 的区别 什么是HTTP 超文本传输协议,是一种用于分布式.协作式和超媒体信息系统的应用层协议. 设计HTTP最初的目的是为了提供一种发布 ...

  5. Java Web 应用实例 servlet实现oracle 基本增删改查

    原文地址为: Java Web 应用实例 servlet实现oracle 基本增删改查 很久没有写博客了,可能是太懒散,不愿意把时间花在这上面,可是我心里还是知道写博客的重要性的 ,所以从今天开始 , ...

  6. Java web基础学习笔记

    1.xml概述 1.1xml:xml一种数据存储格式,这种数据存储格式在存储数据内容的同时,还能够保存数据之间的关系 1.2xml保存数据的方法:xml利用标签来保存数据的内容,利用标签之间的嵌套关系 ...

  7. JAVA Web学习之servlet开发

    01.servlet开发入门 动态web资源开发有两种技术:Servlet和JSP,只有把Servlet学明白了才能学JSP. Sun公司在其API中提供了一个Servlet接口,用户若想用一个动态w ...

  8. 【转】Java学习---Java Web基础面试题整理

    [原文]https://www.toutiao.com/i6592359948632457731/ 1.什么是Servlet? 可以从两个方面去看Servlet: a.API:有一个接口servlet ...

  9. JAVA Web学习篇--Servlet

    Servlet由来 做过BS项目的人都知道,浏览器可以依据HTML静态标记语言来显示各式各样的网页.可是假设我们须要在网页上完毕一些业务逻辑:比方登陆验证.或者说网页显示的内容在server的数据库中 ...

  10. Java Web——基于Jsp+Servlet的大学生社团管理系统

    JavaWeb课程设计+JavaWeb实训作业:(Jsp+Servlet+Mysql+Tomcat+Idea) 项目类型:JAVA WEB项目 用户类型:3个角色(管理员+社长+学生) 主要技术:Js ...

最新文章

  1. 最近在招标中评审出一个政府信息化软件
  2. 【linux】CentOS启动后网络自动配置过程
  3. d3设置line长度_使用d3画一些基本的图形
  4. 关于Viual Studio 改变编辑器背景背景及背景图片
  5. 你好,这是微视AI还原的李焕英
  6. make memuconfig的问题:'make menuconfig' requires the ncurses libraries
  7. jquery 幻灯片图像切换效果
  8. arma模型_GARCH模型应用:以国泰君安为例
  9. 如何基于Dataphin实现敏感数据保护
  10. 编程体系结构(02):Java异常体系
  11. 25 PP配置-生产车间控制-工序-定义生产计划参数文件
  12. 深入理解计算机系统1——计算机系统漫游
  13. stm32 断路功能和互补输出
  14. werkzeug response
  15. linux批量文件夹名字,linux: 批量修改文件夹及文件夹下文件的名字
  16. 小甲鱼老师目前所有视频教程下载地址
  17. IDEA 修改全文搜索快捷键
  18. 传奇GOM引擎单机架设图文教程
  19. 解决idea集成maven在使用骨架构建项目报错问题
  20. 利用Cadence Allegro强大的功能节省您调丝印的时间

热门文章

  1. 拓端tecdat|matlab脉冲响应图的时域特征
  2. tensorflow数据预处理
  3. Qpython 获取Android gps信息
  4. rdesktop连接windows远程桌面详解
  5. 网络安全:个人网站防黑安全技巧
  6. gitlab主备同步_gitlab实现主备切换集群
  7. hive jdbc驱动_Hive的安装方式
  8. 数字图像处理与python实现 pdf_python数字图像处理实现直方图与均衡化
  9. django 1366, “Incorrect string value: for column ‘‘ at row
  10. 多版本并发控制MVCC和乐观锁OCC 是什么 区别