一、关于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对象的生命周期和这些对象的属性引发的事件