Java中的动态网页
1.Servlet动态网页 = Java代码(主) + html代码(辅): (在Servlet中编写html代码)
*.Servlet擅长的事情:
1.获取参数,将其封装成对象
2.处理业务逻辑,处理请求
3.控制页面跳转,跳转到某一个JSP中做页面的输出操作
2.JSP动态页面=Java代码(辅)+html(主):(在html中编写java代码)
Servlet不擅长做页面输出,JSP最擅长做页面输出
责任分离思想:各自做各自最擅长的事情.
JSP的原理
1.JSP(Java Server Page): Java的服务页面,Java动态网页.
JSP本质就是Servlet
服务器会解析请求中是否含有.jsp文件
如果有,则将其编译为java文件
再将java文件编译为class文件,供浏览器访问
![](https://img2020.cnblogs.com/blog/1668748/202004/1668748-20200429102318443-1390903877.png)
JSP的基本语法
1.JSP语法:
1.JSP的注释:注释Java脚本代码
<%--注释--%>
2.JSP的Java脚本表达式:输出数据到页面上
<%=代买%> (实际上就是调用输出流打印到页面上) out.print(表达式);
3.JSP中的Java脚本片段:(实际开发中,应做到JSP中不能出现一行Java脚本片段):书写Java代码逻辑
<%代码%>
原理:其中的语句会原封不动的被服务器翻译到对应的Servlet的_jspService方法中。
4.JSP的声明::定义类的成员
<%!代码%>
![](https://img2020.cnblogs.com/blog/1668748/202004/1668748-20200429103652205-495358708.png)
JSP三大指令
1.特点
1.并不向客户端产生任何输出,
2.指令在JSP整个文件范围内有效
3.为翻译阶段提供了全局信息
2.指令语法格式: <%指令名称 属性名='属性值' 属性名='属性值'....%>
3.page指令:表示JSP的相关配置
<%page contentType='text/html' charset='UTF-8' language='java'%>
contentType:表示文件的MIME类型
charset:表示文档的字符集
language:表示JSP文档编写的脚本语言
import:用于导入JSP脚本中使用到的类,等价于Java代码中的: import 类的全限定名;
errorPage:如果服务器发生错误,会自动跳转到指定页面
isErrorPage:判断页面是否为错误页面,
true:是,则可以判断内置对象为Exception
false:不是,默认值,不可以使用
4.include指令:
1.静态包含:使用JSP的include指令
<%@include file='被包含的文件'%>
特点:
在编译阶段就将多个JSP文件,合并成一个java类
2.动态包含:使用JSP的动作指令
<%jsp: include='被包含的文件'%>
特点:
把每一个JSP编译成Servlet类,在编译过程中,动态的合并在一起,最终得到多个java类(动态包含会包含多个java类)
3.动态包含和静态包含的选择:
如果在包含的时候,需要传递数据,此时只能使用动态包含.(
如果被包含的页面如果是静态页面,那么使用静态包含
如果被包含的如果是动态页面,那么使用动态包含
4.注意:在实际开始中通常将被包含的jsp页面的后缀名设置为jspf
5.taglib:导入标签资源(相当于导包)
格式:<%@taglib prefix='c' uri="http://java.sun.com/jsp/jstl/core"%>
prefix:前缀名