JAVA Web基础3-Servlet
一.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相关推荐
- Web基础之Servlet+JDBC+JSP项目实战记录(一)
Web基础之Servlet+JDBC+JSP项目实战记录(一) 一.项目说明: 通过前面的学习,我们已经对Servlet有了一定的了解:接下来我们要结合数据库和JSP技术一步一步完成一个小型的动态we ...
- JAVA WEB篇2——Servlet
JAVA WEB篇2--Servlet Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,是Java语言编写 的服务器端程序,换句话说,Serv ...
- Java Web基础
目录 Java Web基础 HTML基础 HTML补充 CSS基础 CSS补充 JavaScript基础 JavaScript补充(例题) Java Web补充 Java Web基础 HTML基础 标 ...
- Java Web基础面试问题——Cookie和Session
Java Web基础面试问题 Cookie 和 Session 的区别 什么是HTTP 超文本传输协议,是一种用于分布式.协作式和超媒体信息系统的应用层协议. 设计HTTP最初的目的是为了提供一种发布 ...
- Java Web 应用实例 servlet实现oracle 基本增删改查
原文地址为: Java Web 应用实例 servlet实现oracle 基本增删改查 很久没有写博客了,可能是太懒散,不愿意把时间花在这上面,可是我心里还是知道写博客的重要性的 ,所以从今天开始 , ...
- Java web基础学习笔记
1.xml概述 1.1xml:xml一种数据存储格式,这种数据存储格式在存储数据内容的同时,还能够保存数据之间的关系 1.2xml保存数据的方法:xml利用标签来保存数据的内容,利用标签之间的嵌套关系 ...
- JAVA Web学习之servlet开发
01.servlet开发入门 动态web资源开发有两种技术:Servlet和JSP,只有把Servlet学明白了才能学JSP. Sun公司在其API中提供了一个Servlet接口,用户若想用一个动态w ...
- 【转】Java学习---Java Web基础面试题整理
[原文]https://www.toutiao.com/i6592359948632457731/ 1.什么是Servlet? 可以从两个方面去看Servlet: a.API:有一个接口servlet ...
- JAVA Web学习篇--Servlet
Servlet由来 做过BS项目的人都知道,浏览器可以依据HTML静态标记语言来显示各式各样的网页.可是假设我们须要在网页上完毕一些业务逻辑:比方登陆验证.或者说网页显示的内容在server的数据库中 ...
- Java Web——基于Jsp+Servlet的大学生社团管理系统
JavaWeb课程设计+JavaWeb实训作业:(Jsp+Servlet+Mysql+Tomcat+Idea) 项目类型:JAVA WEB项目 用户类型:3个角色(管理员+社长+学生) 主要技术:Js ...
最新文章
- 最近在招标中评审出一个政府信息化软件
- 【linux】CentOS启动后网络自动配置过程
- d3设置line长度_使用d3画一些基本的图形
- 关于Viual Studio 改变编辑器背景背景及背景图片
- 你好,这是微视AI还原的李焕英
- make memuconfig的问题:'make menuconfig' requires the ncurses libraries
- jquery 幻灯片图像切换效果
- arma模型_GARCH模型应用:以国泰君安为例
- 如何基于Dataphin实现敏感数据保护
- 编程体系结构(02):Java异常体系
- 25 PP配置-生产车间控制-工序-定义生产计划参数文件
- 深入理解计算机系统1——计算机系统漫游
- stm32 断路功能和互补输出
- werkzeug response
- linux批量文件夹名字,linux: 批量修改文件夹及文件夹下文件的名字
- 小甲鱼老师目前所有视频教程下载地址
- IDEA 修改全文搜索快捷键
- 传奇GOM引擎单机架设图文教程
- 解决idea集成maven在使用骨架构建项目报错问题
- 利用Cadence Allegro强大的功能节省您调丝印的时间
热门文章
- 拓端tecdat|matlab脉冲响应图的时域特征
- tensorflow数据预处理
- Qpython 获取Android gps信息
- rdesktop连接windows远程桌面详解
- 网络安全:个人网站防黑安全技巧
- gitlab主备同步_gitlab实现主备切换集群
- hive jdbc驱动_Hive的安装方式
- 数字图像处理与python实现 pdf_python数字图像处理实现直方图与均衡化
- django 1366, “Incorrect string value: for column ‘‘ at row
- 多版本并发控制MVCC和乐观锁OCC 是什么 区别