JSP技术学习总结
Posted bytebeat
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSP技术学习总结相关的知识,希望对你有一定的参考价值。
1、JSP的执行过程
首先用户向服务器发出请求,服务器在接收请求后去寻找响应的jsp页面,然后服务器将jsp页面翻译成.java文件,然后进行编译得到.class字节码文件,服务器执行class文件将其转换成
html流响应给客户端,客户端拿到html流进而翻译成页面。至此jsp执行过程完毕
总结:jsp的执行主要为:翻译、编译、执行
2、JSP指令
概念:什么是JSP指令,简单地说JSP指令就是负责告诉JSP引擎如何把jsp页面翻译成servlet,通过设置jsp的属性,控制jsp页面运行时的某些特性。
注意:jsp指令由<%@开始,%结束>,需要注意的是jsp其实本身就是一个servlet,它只是一个规范了html代码的模板,本质上还是一个servlet,jsp主要是用来做页面显示的
三大指令如下:
(1)page: 页面设置 指令,包含import导包,contentType内容的类型,language脚本语言,session、配置errpage错误页面,isErrorPage是否为错误处理页面
(2)include,包含指令,又分为静态包含和动态包含,其作用主要是引用已经写好的htmll页面
(3)taglib,自定义标签库
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" preix="c">
3、JSP中的九大内置对象
(1)pageContext:特殊对象,可以获取其他八大对象,可以使用其他八大对象的方法
(2)page:表示当前页面,可使用其来调用servlet中的方法
(3)request:获取用户的请求信息
(4)response:服务器响应客户端请求
(5)session:用来保存每一个用户的信息,存储在服务器中
(6)application:表示站点信息,作用域为站点,只要服务器不关闭,信息不会失效
(7)config:服务器配置信息,可以获取初始化参数
(8)out:用来进行页面输出,实际上是getWrite()方法
(9)exception:异常信息
4、cookie:用户请求的标识,存储在本地中,其中session依赖cookie
5、转发与重定向的区别
转发:客户端一次请求,服务器两次处理,并且传递的信息不会丢失;转发就是用户在请求服务器的时候,其中一个servlet不能满足其处理请求,于是便调用
另一个servlet进行处理请求,然后将其处理的结果返回给客户端,整体来说客户端只是做了一次请求,而服务器处理了两次。
重定向:客户端请求两次,服务器处理两次。当服务器接收到用户的请求后,若当前的servlet不能满足其请求于是便将用户的请求交给另一个servlet进行处理,于是客户端便请求这个servlet,对应的servlet便进行处理,对用户来说总共请求了两次,而服务器也处理了两次。
6、GET和POST的区别:
(1)地址栏:GET方式会在地址栏中显示请求的参数信息,而POST不会显示
(2)传输数据大小限制:GET的传输数据在2KB左右,而POST则没有限制,理论上只要内存足够大则就可以有多大
(3)传输数据类型:GET只能传输ASCII码,而POST没有限制,并且可以传输二进制
(4)历史记录:GET请求方式的参数将会保存在浏览器的历史记录中,而POST则不会
(5)安全性:GET的安全性较差,POST相比GET较高
(6)缓存:GE能被缓存,而POST不能缓存
7、静态包含于动态包含的区别:
动态包含用的元素是page,拥有两种形式,而静态包含只有一种形式,最主要的区别在于静态包含是先包含再进行编译,而动态包含是先进行编译再进行包含。
8、EL表达式
(1)基本三种语法:
$表达式 //表达式一般是服务器传输过来的数据,用EL表达式方便将他们进行显示
点操作符 $对象.属性 //例如$info.name,很显然info是一个对象,或者为集合对象
[]操作符 $对象[属性] //跟点操作符一种意思
9、JSTL(JSP标准标签库)
是Java官方提供的一种标签库,主要是为了方便在JSP中书写Java代码,从而能够更方便的处理业务
使用过程:
(1)导入jar包:jstl.jar和statndard.jar
(2)添加taglib指令:<%@ taglib uri="http://java.sun.com/jsp/jstl/core" preix="c" >
核心标签库
以上是关于JSP技术学习总结的主要内容,如果未能解决你的问题,请参考以下文章
大数据学习总结记录—页面静态化技术(Freemarker/velocity)& 网站伪静态(UrlRewriteFilter)