JSP简介
JSP(java Server Pages)与java Servlet一样,是在服务器端执行的。
不同的是先由服务器编译部署成Servlet执行
JSP入门
- JSP是服务器技术,java server pages
- JSP可以写代码(java+HTML+jsp自己的代码)
- 需要在jsp中
- <%! %>成员方法,成员变量
- <%= %>输出内容
- <% %>局部变量,语句
- jsp原理:jsp–编译Servlet文件–编译.class文件–执行
- 在tomcat/work/翻译的Servlet的文件
session
- session的追踪(了解)
- session的创建和销毁
- 第一次访问资源,调用request.getSession(),创建session
- 销毁
- 非正常关闭服务器()
- session的过期,默认是30分钟
- 在tomacat/conf/web.xml中的配置如下
<session-config>
<session-timeout>30</session-timeout>
</session-config>
- 调用session.invalidate() 手动销毁session
- 正常关闭服务器时,session会被序列化到tomcat/work/Catlina/localHost/项目名下/SESSION.ser
再次启动服务器时,会反你序列化。
session的域对象
- ServletContext :代表整个web应用,数据库链接
- session:一次会话,存放个人的信息
- request: 一次请求,存放错误处理
JSP语法
jsp脚本元素
声明标签
表达式
代码块
jsp页面注释
- jsp注释:<%– jsp注释–%>,只会存在jsp文件的阶段,翻译成java文件后注释消失,只能被开发人员看见
- JAVA注释
<%
// 单行
/**/ 多行
/**
*
*/ 文档注释
%>
在jsp阶段和翻译成的java文件也存在,编译阶段消失,在页面不存在- HTML注释:
<!-- -->不会消失,在页面中也能看见
jsp指令元素
功能
- 用于指示jsp执行某些步骤
- 用于指示jsp表现特定行为
语法格式
<%@ 指令元素 属性名=属性值 %>
<%@ directive[attribute = "value"]*%>
分类
- page指令标记 ,设置jsp属性
- include指令标记 ,包含界面(页面布局)(用的比较少)
- taglib指令标记 ,引入标签库文件
page指令的属性
- language :告诉容器jsp中使用的是哪种脚本语言。jsp脚本语言(和解释的脚本语言不同)是一种可以内嵌在jsp中,用于完成某种操作的语言。目前,jsp只支持java语言。(不需要修改)
- extends :该特性指定了jsp翻译的servlet文件继承的父类。默认继承org.apache.jasper.runtime.HttpJasBase.(不需要改变),可以通过tomcat/work/catalina查看
- session : 它的值只能是真和假中的一个,表示jsp是否将参与HTTP会话。默认值为true,可以直接使用session,设置为false,就不能直接使用。
- buffer :设置缓冲区的大小,默认是8kb
- aotuFlush:设置默认刷新缓冲区(不要修改)
- errorPage:如果jsp在执行过程中发生了错误,该特性告诉容器应该经请求发送给哪个jsp
- isErrorPage:默认值是假,设置为真时,可以使用exception变量,获取一些异常的信息。
- contentType:服务器端输出所有内容采用编码
- pageEncoding: jsp 翻译成Servlet文件时采用的编码
- isELIgnored:是否忽略EL表达式(false:不忽略,true:忽略),默认是false
设置全局的错误页面
注意:该设置的全局页面优先级没有page指令中指定的错误页面的优先级高
<!--在web.xml中设置全局的错误页面-->
<error-page>
<error-code>404</error-code>
<location>/jsp/404.jsp</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/jsp/500.jsp</location>
</error-page>
include指令标记
语法格式:<%@ include file="要包含文件的地址(静态包含)" %>启示
示例
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%@ include file="head.jsp"%>
<%@ include file="menu.jsp"%>
<h3>网站的新闻(变化的数据)</h3>
<%@ include file="logo.jsp"%>
</body>
</html>
页面源代码

//被包含的文件,要删除IDE自动生成的<html><head></head><body></body></html>
<html>
<head>
<title>Title</title>
</head>
<body>
<h3>网站的logo</h3>
<h3>网站的超链接</h3>
<h3>网站的新闻(变化的数据)</h3>
<h3>网站的友情链接</h3>
</body>
</html>
静态包含原理

taglib指令
引入标签库文件
语法:<%@ taglib uri="引入标签库文件的名称" prefix="前缀名"%>
属性:
- uri:引入标签库文件的名称
- prefix:标签库的前缀名

1187

被折叠的 条评论
为什么被折叠?



