jsp介绍

在学习jsp之前,先看下如何部署并运行jsp,参考文档:
https://blog.csdn.net/qq_38685503/article/details/82495083

jsp介绍:
jap组成:jsp=java代码+jsp标签,一个web应用可以全部由jsp页面构成,承担业务逻辑,表示层,持久化的任务,但是这种方式在安全性,代码复用等方面太差,因此jsp逐渐只承担表示层的作用。
jsp原理:每个jsp页面对应一个Servlet实例,每个jsp页面被编译为一个class文件,可以在tomcat的work路径下查看对应的class文件和java文件。其遵循规则:jsp文件必须在jsp服务器内运行,jsp文件必须生成Servlet才能执行,每个JSP页面的第一个访问者速度很慢,因为必须等待jsp编译成Servlet,jsp页面的访问者无需安装任何客户端,甚至不需要可以运行java的运行环境,因为jsp输送到客户端的是标准html页面。

jsp语法:
注释:<%-- 注释内容 --%>,jsp的注释是无法通过源代码查看的
声明:<%! 声明部分%>,声明的变量是Servlet的类变量,在创建实例时初始化,直到成员销毁
表达式:<%=表达式%>,用于输出表达式的值
脚本:<%脚本%>
编译指令:<%@ 编译指令名 属性名=“属性值”…%>,常用有:page、include和tablib三个指令
page指令属性:
language:声明当前JSP页面使用的脚本语言的种类
extends:确定jsp编译时所产生的java类,需要继承的父类,或者需要实现的接口全限定类名
import:默认导入java.lang.,javax.servlet.,javax.servlet.jsp.*和javax.servlet.http.*包,可以导入自己需要的包
session:设定jsp页面是否需要http session
buffer:指定输出缓冲区的大小,默认为8kb,输出缓冲区的jsp内部对象
aotoFlush:当输出缓冲区即将溢出时,是否强制输出缓冲区的内容,设置为true时正常输出,如果未false,会产生异常
info:设置jsp信息
errorPage:指定错误处理页面,如果程序产生异常或者错误,而该jsp页面没有对应的处理代码,则自动调用该指令所指定的jsp页面。
isErrorPage:错误处理程序,若设置了该属性,无需使用errorPage属性
contentType:设置生成的网页文件格式和编码方法,默认MIME类型是text/html,默认字符集为ISO-8859-1;
include指令:
格式:<%@ include file=“relativeURLSpec”%>
作用:将外部文件嵌入到当前JSP文件中,同时解析其JSP语句,既可以包含静态文本,也可以包含动态JSP页面,如果被嵌入的文件需要改变,使用jsp:include操作指令。

jsp的7个动作指令:
jsp动作指令在将jsp编译成Servlet时起作用,处理指令可替换成Java脚本,是JSP脚本的标准写法。
jsp:forward:执行页面跳转
jsp:param:用于传递参数,必须与其他支持参数的标签一起使用
jsp:include:动态引入一个jsp页面
jsp:plugin:下载javaBean或Applet到客户端
jsp:useBean:使用javaBean
jsp:setProperty:修改javaBean实例的属性值
jsp:getProperty:获取javaBean实例的属性值

jsp的9个内置对象:
介绍:9个内置对象都是Servlet API的类或接口实例,已完成默认初始化,可直接使用
application:代表Web应用本身,整个Web应用共享同一个application对象
config:代表当前JSP配置信息,
exception:代表JSP页面产生的错误和异常,是JSP页面异常的一部分
out:代表页面输出流,用于输出变量值及常量
pageContext:用于访问页面共享数据
request:每个request对象封装一次用户请求,所有请求参数封装在request对象中
response:代表服务器对客户端的相应,
session:代表一次用户会话,表示从客户端连接服务器开始到断开服务器为止

Servlet:
作用:Servlet充当控制器的作用,用于响应客户端请求,必须继承HttpServlet
响应请求:
1.doGet:响应客户端get请求
2.doPost:响应客户端post请求
3.doPut:响应客户端put请求
4.doDelete:响应客户端delete请求
可通过service方法响应客户端的所有请求
HttpServlet包含两个方法:
init(ServletConfig config):创建Servlet实例时,完成某些资源初始化,需在改方法第一行调用super.init(config);
destroy();销毁Servlet实例时,自动调用资源回收方法
Servlet和jsp的区别:
1.Servlet没有内置对象,jsp中的内置对象都必须通过HttpServletRequest对象或者HttpServletResponse对象生成
2.对于静态的html标签,Servlet都必须使用页面输出流逐行输出
servlet的生命周期:
开始——创建实例完成——初始化(调用Servlet的init方法,对Servlet初始化)——响应客户端请求(初始化后,将一直存在于容器中,用于相应客户端请求,如果客户端有get请求,容器调用Servlet的doGet方法处理相应请求。对于不同的请求,有不同的处理方法)——被销毁(web容器角色销毁Servlet时,调用destroy方法,通常在关闭web容器之时销毁Servlet)——结束
mvc简介:
M;Model,即模型,对应JavaBean
V:View,即视图,对应JSP页面
C:Controller,即控制器,对应Servlet
load-on-startup Servlet:
Servlet的实例化有两个时机:用户请求之时或应用启动之时,后者用于某些后台服务的Servlet,或者拦截很多请求的Servlet,提供重要的后台服务。

Filter介绍:
作用:Filter并非标准的Servlet,它不能处理用户请求,也不能对客户端生成响应,用于对HttpServletRequest预处理和HttpServletResponse后处理
分类:
用户授权的Filter:检查用户请求,过滤用户非法请求
日志Filter:详细记录某些特殊的用户请求
解码Filter:对非标准编码进行请求解码
XSLT Filter:改变xml内容
创建步骤:
1.创建Filter处理类
2.在web.xml文件中配置Filter
创建Filter类:
必须实现Filter接口,可实现以下方法:
void init(FilterConfig config):用于完成Filter的初始化
void destroy():用于Filter销毁前,完成某些资源的回收
void doFilter(ServletRequest request,ServletResponse response,FilterChain chain):实现过滤功能,对每个请求及相应增加额外处理

Listener介绍:
用于在web应用启动时,启动某些后台程序,为系统运行提供支持,其创建时间比load-on-startup早,创建步骤:
1.创建Listeners实现类
2.在web.xml文件中配置Listerner

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值