Serverlet简介
.首先,什么是Servlet?
Servlet是一个Java编写的程序,此程序是在服务器端运行的,是按照Servlet规范编写的一个Java类。
2.Servlet是做什么的?
Servlet是处理客户端的请求并将其发送到客户端。
3.Servlet API
1>Servlet框架的组成
Servlet框架是由2个Java包组成:(1)javax.servlet和(2)javax.servlet.http
(1)javax.servlet包中定义了所有Servlet类都必须实现的接口和类。
javax.servlet包的接口为:
ServletConfig接口 ---- 在初始化过程中由Servlet容器使用
ServletContext接口 ---- 定义Servlet用于获取容器信息的方法
ServletRequest接口 ---- 向服务器请求信息
ServletResponse接口 ---- 响应客户端请求
Servlet接口 ---- 定义所有Servlet必须实现的方法
javax.servlet包中的类为:
ServletInputStream类 ---- 用于从客户端读取二进制数据
ServletOutputStream类 ---- 用于将二进制数据发送到客户端
GenericServlet类 ---- 抽象类,定义一个通用的,独立于地层协议的Servlet。
(2)javax.servlet.http包中定义了采用HTTP通信的HttpServlet类。
javax.servlet.http包的接口为:
HttpServletRequest接口 ---- 提供http请求
HttpServletResponse接口 ---- 提供http响应
HttpSession接口 ---- 用于标识客户端并存储有关客户信息
HttpSessionAttributeListener接口 ----实现这个侦听接口用户获取会话的属性列表的改变的通知
javax.servlet.http包中的类:
HttpServlet类 ---- 扩展了 GenericServlet的抽象类,用于扩展创建Http Servlet
Cookie类 ---- 创建一个Cookie,用于存储Servlet发送给客户端的信息
2>Servlet框架的核心
Servlet框架的核心是:javax.servlet.Servlet接口,所有的Servlet都必须实现这一接口。
4.Http Servlet
HttpServlet是一个抽象类,用来创建用户自己的 HTTP Servlet。HttpServlet类的子类必须至少重写一下方法中的一个:doGet()和doPost()。
HttpServlet类提供doGet()方法来处理GET请求
public void doGet(HttpServletRequest req,HttpServletResponse res)
提供doPost()方法处理POST请求
public void doPost(HttpServletRequest req,HttpServletResponse res)
其中有2个参数:HttpServletRequset和HttpServlerResponse
这2个类实现了ServlerRequset接口和ServletResponse接口
ServletRequest接口中封装了客户请求信息<客户请求方式,参数名,参数值等>
ServletResponse接口 为 Servlet提供了返回相应结果的方法。
5.Servlet体系结构
Servlet-->GenericServlet-->HttpServlet-->用户自定义的Servlet
6.Servlet的生命周期
Servlet的生命周期由Servlet容器控制,该容器创建Servlet的实例。
Servlet生命周期就是指创建Servlet实例后响应客户请求直至销毁的全过程。
1>Serlvet生命周期的三个方法:init()-->service()-->destroy()
2>生命周期的各个阶段:
实例化:Servlet容器创建Servlet类的实例对象
初始化:Servlet容器调用Servlet的init()方法
服务:如果请求Servlet,则容器调用service()方法
销毁:销毁实例之前调用destroy()方法
不可用:销毁实例并标记为垃圾处理
---------------------------------------------------------------------------------------------------------------------------
一、 jsp入门
java server page
1. web资源的运行原理
html: 静态web资源,DefaultServlet读取html文件,通过response输出给IE浏览器
Servlet: 动态web资源,web容器(Servlet引擎)解析web.xml文件,找到url对应的java类
通过反射创建Servlet对象,调用service方法
Class.forName(“cn.itcast.servlet.Servlet1”).newInstance();
jsp: 动态web资源
jsp页面在第一次被访问的时候,web容器(jsp引擎)会将jsp翻译成一个Servlet,然后调用servlet的
service方法
jsp 翻译后的Servlet会被放到
%tomcat安装目录%\work\Catalina\localhost\webcontext
当jsp页面被再次访问的时候,web容器会去直接调用Servlet的方法,所以通常来讲 jsp 只是在第一次被访问的时候比较慢
如果jsp页面做了修改,此时web容器会重新翻译jsp
2. jsp 是什么
实际上 jsp 就是 Servlet , 只是提供了一种比较直观的书写方式,因为写jsp就像在写Html
jsp中可以写 java 代码, 有两种写法
1) jsp 脚本表达式
内容会被放到 out.print() 里面 输出个浏览器
<%=new Date() %>
2) jsp脚本片段
内容会原封不动地被翻译到 Servlet 的service方法中
<%
// java 代码
%>
3. jsp 和 Servlet的区别
1) Servlet 适合写java代码,因为Servlet就是一个java类
在开发中使用Servlet对用户发送的请求进行处理并做出响应
2) jsp 适合做数据美化,作为 数据显示模板
因为jsp页面直接书写HTML标签
3) 项目中的web层通常使用mvc设计模式 Servlet+jsp+javabean
其中, Servlet做控制器,处理用户请求
jsp作为显示模板
javabean 作为封装数据的实体
4) 如何养成一种良好的编码风格
在Servlet中应避免做任何的数据输出
在 jsp 中应避免去直接书写java代码, 而实际上要做到这点很难, 所以需要用到 el 和 jstl
二、 jsp语法
1. 模板元素
在 jsp 页面中所有的 html 标签部分被称作模板元素,用于对整个网页进行布局
2. jsp脚本
jsp中的java代码被称作jsp脚本
有三种形式
1) 脚本表达式
被翻译到 out.print() 方法中
<%=new Date() %>
2) 脚本片段
被翻译到 service 方法中
<%
for(int i=0; i<10; i++) {
System.out.println(i);
}
%>
3) jsp 声明
被翻译到 service 方法外面
写成员变量\成员方法\静态代码块
<%!
private String name;
static {
.......
}
%>
3. jsp指令
include指令 用于包含一个页面
taglib 指令用于引入标签库文件
page指令 用于向jsp引擎说明jsp的页面情况
page指令一般都放在页面的开头,但是不管放在哪都对整个页面起作用
page指令 常用的主要有一下几个:
1) import 导包, 导入多个包时需要以“,”隔开 也可以分作多条指令书写
2) session 说明是否使用session
默认值为true,被翻译的Serlvet中会自动获得Session
如果将该值指定为false 被翻译的Servlet的service方法中将不获取session
3) errorPage 指定错误跳转的页面
在 web.xml 文件中同样可以配置错误页面
可根据异常类型或错误编码进行配置
error-page
4) pagaEncoding
通知jsp引擎在翻译jsp的过程中以什么编码方式来解码jsp文件
通知 Servlet引擎 response编码方式,相当于 response.setContentType()
说白了
只要给jsp指定了 pageEncoding=”utf-8”
jsp引擎在翻译jsp时, 就会自动加上一句
response.setContentType(“text/html;charset=utf-8”)
Serverlet简介相关推荐
- Serverlet简介及理解
Serverlet简介: Servlet(Server Applet),全称Java Servlet,未有中文译文.是用Java编写的服务器端程序.其主要功能在于交互式地浏览和修改数据,生成动态Web ...
- serverlet 原理_Serverlet详解 | 学步园
Serverlet简介: Servlet(Server Applet),全称Java Servlet,未有中文译文.是用Java编写的服务器端程序.其主要功能在于交互式地浏览和修改数据,生成动态Web ...
- Tomcat部署及安装
文章目录 Tomcat部署 Tomcat介绍 Tomcat功能组件结构: 安装Tomcat Tomcat部署 Tomcat介绍 免费的.开放源代码的Web应用服务器 Apache软件基金会(Apach ...
- serverlet 原理_Serverlet简介 | 学步园
.首先,什么是Servlet? Servlet是一个Java编写的程序,此程序是在服务器端运行的,是按照Servlet规范编写的一个Java类. 2.Servlet是做什么的? Servlet是处理客 ...
- Eclipse配置tomcat服务器及tomcat简介
一.手动配置tomcat到eclipse tomcat的压缩包资源可以去资源包中下载.(win32和win64都有) 1. 打开eclipse–>Window–>Preferences,按 ...
- etcd 笔记(01)— etcd 简介、特点、应用场景、常用术语、分布式 CAP 理论、分布式原理
1. etcd 简介 etcd 官网定义: A highly-available key value store for shared configuration and service discov ...
- Docker学习(一)-----Docker简介与安装
一.Docker介绍 1.1什么是docker Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源 Docker可以让开发者打包他们的应用以及依赖包到一个轻量级,可移植 ...
- 【Spring】框架简介
[Spring]框架简介 Spring是什么 Spring是分层的Java SE/EE应用full-stack轻量级开源框架,以IOC(Inverse Of Control:反转控制)和AOP(Asp ...
- TensorRT简介
TensorRT 介绍 引用:https://arleyzhang.github.io/articles/7f4b25ce/ 1 简介 TensorRT是一个高性能的深度学习推理(Inference) ...
最新文章
- mysql的sql_mode合理设置
- 《github一天一道算法题》:分治法求数组最大连续子序列和
- SQL注入攻击的种类和防范手段
- 稀疏傅里叶变换(sparse FFT)
- linux进程管理类命令大全,Linux进程管理类命令
- Android 系统(226)---Android 阿拉伯语适配
- Android camera(4)---Android Camera开发之基础知识篇
- 图像处理基础(四)_图像分辨率、图像模式及通道讲解
- 电脑屏幕变黄如何调整_办公室照明设计如何避免踩坑,四个要点必须注意
- jquery trigger
- 2017到2018总结与展望
- 安装PyTorch详细过程
- 完整JAVA学习路线图,助您从JAVA小白变身秃顶大叔,迈向JAVA成神之路
- 我也可以很极地很阳光
- uniapp ui框架——uView 及其可视化搭建工具
- 南繁水稻国家公园国稻种芯(三亚)水稻节功能性农业产业园
- 海康摄像头浏览器访问不了
- 谷歌浏览器表格无法导入_如何从另一个Google表格导入数据
- php 数字转大写人民币
- 七牛云上传视频并转码