JSP执行流程
jsp -> java(Server文件) -> class
***jsp与Servlet 可以相互转换
因为第一请求服务端 会有翻译 和编译的过程,因此比较慢;
后续访问 可以直接访问class,因此速度较快。
但是 如果 服务端修改了代码,则再次访问时 会重新的翻译、编译。
jsp 构成
动态 : JSP标记 脚本元素
指令标记 : 三种 page include taglib 一般位于页面顶端
动作标记:客户端请求执行
脚本原素 HTML java代码 (脚本Scriptlet)、指令、注释
声明变量和方法
i: <%! 全局变量、 方法定义 %>
ii: <% 局部变量、java语句 %>
iii: <%=输出表达式 %>
提示:重不重启Tomcat问题
一般而言,修改web.xml、配置文件、java 需要重启tomcat服务器
但是如果修改 jsp\htnl\css\js ,不需要重启
注意:out.println() 不能回车;要想回车:
注释:
html : <!-- --> 可见
java: //
jsp : <%-- --%>
客户端<!-- -- !>
page指令:
language:jsp所使用的脚本语言
import:导入Java类库 或自定义类
pageEncoding:jsp文件自身编码 jsp-> java
contenType:浏览器解析jsp的编码 , 页面解析方式 字符编码
例:
<%@page contentType=“text/html;charset=UTF-8”%>在这里插入图片描述
注意:同一界面只能用一次
<%@ page import ="java.io.",“java.util.Date”%>
jsp 页面默认有 java.lang.、javax.servlet.、javax.servlet.jsp.、javax.servlet.http.*
<%@ language=“java” %> 目前只能是Java
内置参数
session 设置是否使用内置session对象 默认true
buffer 设置缓冲区大小或不使用缓冲区,默认值8kb
autoFlush 当缓冲区满时,是否刷新,默认是true
isThreadSafe 页面是否允许多线程 默认true
include指令
include 静态插入一个文件 格式<%@ include file=" 文件的URL"%>
不支持JSP表达式 会生成一个页面 所以 不能有重名的变量和方法
include 动作标记
<jsp:include page=“url”> 支持JSP表达式 单独编译
param 标记
forward 标记
<jsp:forward page=“要转向的页面”>