一、JSP简介
1.概念
JSP:Java Server Pages,Java服务端页面。JSP是一种动态的网页技术,其中可以定义HTML、JS、CSS等静态内容,还可以定义Java代码等动态内容。
2.作用
简化开发,避免了在Servlet中直接输出HTML标签。
二、JSP的开发流程
1.导入JSP坐标
<!--JSP--> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.2</version> <scope>provided</scope> </dependency>【注意】依赖范围:provided。原理同servlet,因为Tomcat自带了,避免包冲突。
2.创建JSP文件
在webapps下创建JSP文件:
3.编写HTML标签和Java代码
三、JSP的原理
1.JSP的本质
JSP的本质就是一个Servlet。JSP被访问时,由JSP容器(Tomcat)将其转换成Java文件(Servlet),再由JSP容器(Tomcat)将其编译为字节码文件,最终对外提供服务的就是这个字节码文件。
2.hello_jsp.java中的代码
四、JSP的脚本
JSP脚本:用于在JSP文件中定义Java代码。
1.脚本分类
(1)<% ... %>:内容会直接放到_jspService()方法中;
(2)<%= ... %>:内容会放到out.print()中,作为out.print()的参数;
(3)<%! ... %>:内容会直接放到_jspService()方法外的成员位置。
【tips】JSP中Java代码可以截断。
2.JSP的缺点
(1)书写麻烦,尤其是复杂的页面;
(2)不易于阅读;
(3)复杂度高,运行需要依赖JRE、JSP容器、JavaEE等环境;
(4)占内存和磁盘:JSP会自动生成.java和.class文件占用磁盘,运行.class文件占用内存;
(5)调试困难,出错后需要找到自动生成的.java文件进行调试;
(6)不利于团队协作,前端不精Java,后端不精HTML;
(...)
【tips】由于各种缺点,现在逐渐被HTML+AJAX技术所替代。
五、EL表达式和JSTL标签
由于在JSP中直接写Java代码不利于阅读和调试等,所以使用EL表达式和JSTL标签来替换Java代码。
1.EL表达式
(1)作用:
用于简化JSP页面中的Java代码,主要用来获取数据。
(2)语法:${表达式}
${brands} //获取域中存储的key为brands的数据。【tips】JavaWeb中的四大域对象(范围逐渐扩大):
①page:当前页面有效;
②request:当前请求有效;
③session:当前会话有效;
④application:当前应用有效。
EL表达式获取数据会依次从这四个域中找,直到找到为止。
EL表达式获取数据会依次从这四个域中找,直到找到为止。
2.JSTL标签
(1)作用:
使用标签代替JSP页面上的Java代码。
(2)常用的JSTL标签
①<c:if>:相当于if;
②<c:forEach>:相当于for循环:
(3)JSTL的使用流程
1)导入坐标:
2)在JSP页面上引入JSTL标签库:
3)使用JSTL标签