.首先,什么是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简介相关推荐

  1. Serverlet简介及理解

    Serverlet简介: Servlet(Server Applet),全称Java Servlet,未有中文译文.是用Java编写的服务器端程序.其主要功能在于交互式地浏览和修改数据,生成动态Web ...

  2. serverlet 原理_Serverlet详解 | 学步园

    Serverlet简介: Servlet(Server Applet),全称Java Servlet,未有中文译文.是用Java编写的服务器端程序.其主要功能在于交互式地浏览和修改数据,生成动态Web ...

  3. Tomcat部署及安装

    文章目录 Tomcat部署 Tomcat介绍 Tomcat功能组件结构: 安装Tomcat Tomcat部署 Tomcat介绍 免费的.开放源代码的Web应用服务器 Apache软件基金会(Apach ...

  4. serverlet 原理_Serverlet简介 | 学步园

    .首先,什么是Servlet? Servlet是一个Java编写的程序,此程序是在服务器端运行的,是按照Servlet规范编写的一个Java类. 2.Servlet是做什么的? Servlet是处理客 ...

  5. Eclipse配置tomcat服务器及tomcat简介

    一.手动配置tomcat到eclipse tomcat的压缩包资源可以去资源包中下载.(win32和win64都有) 1. 打开eclipse–>Window–>Preferences,按 ...

  6. etcd 笔记(01)— etcd 简介、特点、应用场景、常用术语、分布式 CAP 理论、分布式原理

    1. etcd 简介 etcd 官网定义: A highly-available key value store for shared configuration and service discov ...

  7. Docker学习(一)-----Docker简介与安装

    一.Docker介绍 1.1什么是docker Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源 Docker可以让开发者打包他们的应用以及依赖包到一个轻量级,可移植 ...

  8. 【Spring】框架简介

    [Spring]框架简介 Spring是什么 Spring是分层的Java SE/EE应用full-stack轻量级开源框架,以IOC(Inverse Of Control:反转控制)和AOP(Asp ...

  9. TensorRT简介

    TensorRT 介绍 引用:https://arleyzhang.github.io/articles/7f4b25ce/ 1 简介 TensorRT是一个高性能的深度学习推理(Inference) ...

最新文章

  1. mysql的sql_mode合理设置
  2. 《github一天一道算法题》:分治法求数组最大连续子序列和
  3. SQL注入攻击的种类和防范手段
  4. 稀疏傅里叶变换(sparse FFT)
  5. linux进程管理类命令大全,Linux进程管理类命令
  6. Android 系统(226)---Android 阿拉伯语适配
  7. Android camera(4)---Android Camera开发之基础知识篇
  8. 图像处理基础(四)_图像分辨率、图像模式及通道讲解
  9. 电脑屏幕变黄如何调整_办公室照明设计如何避免踩坑,四个要点必须注意
  10. jquery trigger
  11. 2017到2018总结与展望
  12. 安装PyTorch详细过程
  13. 完整JAVA学习路线图,助您从JAVA小白变身秃顶大叔,迈向JAVA成神之路
  14. 我也可以很极地很阳光
  15. uniapp ui框架——uView 及其可视化搭建工具
  16. 南繁水稻国家公园国稻种芯(三亚)水稻节功能性农业产业园
  17. 海康摄像头浏览器访问不了
  18. 谷歌浏览器表格无法导入_如何从另一个Google表格导入数据
  19. php 数字转大写人民币
  20. 七牛云上传视频并转码

热门文章

  1. 《卓有成效的管理者》 读书摘要
  2. 一篇文章带你了解网络编程(总结)
  3. Linux pxe 安装
  4. Android MediaPlayer中的RTSP(一):RTSP简介
  5. 【以太网硬件四】以太网信道编码方式有哪些?
  6. 操作系统_逻辑地址转换为物理地址
  7. H5调用移动端手机摄像头
  8. svn update 出现skipped '.' 或skipped '目录名称'
  9. 我的运动、通勤好搭档,南卡Runner Pro 4骨传导耳机深度测评
  10. platform模型