• 使用JSP生成Web页面


    一、关于JSP的介绍

    1、什么是JSP?

      Java Servlet Page 简称JSP,由Sun公司倡导建立起来的一种动态的网页技术标准。

    2、工作原理

      JSP运行在服务器端,通过浏览器访问JSP,Web服务器会使用JSP引擎对请求的JSP进行编译执行,并返回页面给客户端。

     图示如下:

     

    3、JSP执行的过程

      翻译阶段:当Web服务器收到JSP请求时,会对JSP文件进行翻译,将其转换成可识别的java文件;

      编译阶段:经过翻译过后的JSP文件相当于编写号的java源文件,必须将其编译成可执行的字节码文件;

      执行阶段:web容器接受了客户端的请求之后,经过翻译和编译两个阶段,生成可以被执行的二进制字节码文件。

    二、关于JSP页面的page指令和jstl标签库

    <@%page language="java" pageEncoding="UTF-8" contentType="text/html; UTF-8" @>

      1、language 属性用于指定的语言,jsp默认为java;

      2、pageEncoding:jsp文件本身的编码,设定为utf-8,可以解决中文乱码的问题;

      3、contentType:服务器发送给客户端的内容编码,通常为text/html;utf-8

     

    jstl标签库(core/format/xml/sql)

    jstl是一个不断完善的开源源代码的jsp标签库,由四个定制标记库和一对通用的标记库验证器组成

      core标记库:提供定制操作,通过限制作用域的变量管理数据,以及页面内容的迭代与条件操作;

        <@%taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" @>

      format标记库:用来格式化数据(日期 数字);

        <@%taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt_rt" @>

      xml标记库:操作通过xml表示的数据;

      sql标记库:查询关系数据库。

     三、Servlet、过滤器及监听器

    1、Servlet(doGet/doPost/Servlet方法)

      实例化:Servlet容器创建的Servlet的实例;

      初始化:容器调用init()方法;

      服务:客户请求Servlet,则调用Servlet()方法;

      销毁:销毁实例之前调用destroy()方法.

    部署Servlet,需要对web.xml文件进行配置:

      1)web.xml文件中添加<servlet>元素,作用是将Servlet内部名映射到一个Servlet类名,格式为:报名+类名

      2)添加<servlet-mapping>元素,作用是将用户访问的URL映射到Servlet内部名

    2、过滤器

      原理如图:

      

      注:过滤器的使用可以极大的提高控制效果,提高了工作效率

    在实际开发过程中,过滤器以类的形式存在实现Filter接口,并将请求与响应的编码方式设置为utf-8

      resquest.setCharterEncoding("utf-8");//设置请求时的编码方式

      response.setCharterEncoding("utf-8");//设置响应时的编码方式

      chain.doFilter(resquest,response);//调用web资源

     3、监听器

      Servlet API中一共定义了8个监听器接口,可以用于监听ServletContext、HttpSession、ServletRequest对象的生命周期和这些对象的属性引发的事件

      

  • 相关阅读:
    数据结构-树与二叉树-思维导图
    The last packet successfully received from the server was 2,272 milliseconds ago. The last packet sent successfully to the server was 2,258 milliseconds ago.
    idea连接mysql报错Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezone' property
    redis学习笔记
    AJAX校验注册用户名是否存在
    AJAX学习笔记
    JSON学习笔记
    JQuery基础知识学习笔记
    Filter、Listener学习笔记
    三层架构学习笔记
  • 原文地址:https://www.cnblogs.com/afeiiii/p/13396163.html
Copyright © 2020-2023  润新知