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 代码

%>

  1. 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 {

    }
    %>
  1. 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
  2. pagaEncoding
    通知jsp引擎在翻译jsp的过程中以什么编码方式来解码jsp文件
    通知 Servlet引擎 response编码方式,相当于 response.setContentType()
    说白了
    只要给jsp指定了 pageEncoding=”utf-8”
    jsp引擎在翻译jsp时, 就会自动加上一句
    response.setContentType(“text/html;charset=utf-8”)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值