JSP(Java Server Pages)页面是指扩展名为.jsp的文件,在一个JSP中可以包含指令标识,HTML代码,
JavaScript代码,嵌入的Java代码,注释和JSP动作标识等内容。
1.指令标识
指令标识主要用于设定整个JSP页面范围内都有效的相关信息,它是被服务器解释执行,不会产生任何内
容输出到网页中,也就是说指令标识对客户端浏览器不可见。
语法格式:<%@ 指令名:page/include/taglib 属性:"属性值"%>
page指令:用于设置页码相关属性
1.langua属性用于设置JSP所用的语言
<%@ page language="java"%>
2.extends属性用于JSP继承的Java类,不常用,可能影响服务器性能优化
3.import属性用于导入Java包
<%@ page import="java.util.*"%>
4.pageEncoding属性用于定义页面的编码格式
<%@ page pageEncoding="GBK/UTF-8/IOS-8859-1(不支持中文)/GB18030"%>
5.contentType属性用于设置MIME类型和字符编码,浏览器会根据此显示网页内容
<%@ page contentType="text/html;charset=UTF-8"%>
6.session属性指定是否使用HTTP的session会话对象,默认值为true
<%@ page session="true/false"%>
7.buffer属性用于设置JSP的out输出对象使用的缓冲区大小,默认8KB,建议8的倍数
<%@ page buffer="128KB"%>
8.autoFlush属性用于设置页码缓存满时,是否自动刷新缓存,默认是true
<%@ page autoFlush="false/true"%>
9.isErrorPage属性可以将当前页面设置成错误处理页面
<%@ page isErrorPage="true"%>
10.errorPage属性指定若当前页面出现错误的实际响应页面是什么
<%@ page errorPage="url"%>
include指令:文件包含指令
静态包含,被包含的文件所有内容被原样包含到该JSP页面中
<%@ inlcude file="path"%>
taglib指令:声明所使用的标签库,并指定标签的前缀
<%@ taglib prefix="tagPrefix" uri="tagURL"%>
prefix用于指定标签的前缀 uri用于指定标签库文件的位置
2.脚本标识
1.Jsp表达式:用于向页面输出信息
<%= 表达式%> “<%” 和 “=” 之间不能有空格 %>
<% String url="2348.jpg";%>
<img src="data:images/<%=url%>>">
2.声明标识:用于定义全局变量或方法
<%! 声明变量或方法%>
<%! int number=0;
int count(){
number++;
return number;
}
%>
<%= count() %>
每次刷新页面都会输出前一次值+1
3.代码片段
<% java或脚本代码 %>
<%
String str="";
for(int i = 1; i <= 9; i++){
for(int j = 1; j <= i; j++){
str += j + "*" + i + "=" + i*j;
str += " ";
}
str += "<br>";
}
%>
<%=str %>
注意:通过声明标识创建的变量和方法在当前JSP页面有效,它的生命周期是从创建开始到服务器关闭结束;
代码片段创建的变量和方法,也是在当前页面中有效,但它的生命周期是页面关闭后就会被销毁。
4.JSP注释
1.HTML注释 //注释文本
2.带有JSP表达式的注释
<%
//单行注释内容
/*多行注释*/
%>
3.提示文档注释(被Javadoc文档工具生成文档时读取,文档是对代码结果和功能的描述)
<%
/** 内容 */
%>
4.隐藏注释(查看HTML源代码看不见)
<%-- 注释内容 --%>
5.动作标识
1.<jsp:include> 包含文件标识
a.用于向当前页面中包含其他的文件。
b.语法格式:
1. <jsp:include page="url" flush="false/true" />
2. <jsp:include page="url" flush="false/true">
<jsp:param/>
</jsp:include>
page:指定被包含文件的位置
flush(可选):如果设置为true,在当前页面输出使用了缓冲区的情况下,先刷新缓冲区,再
执行包含工作
c.说明:<jsp:include>标识对包含的动态文件和静态文件的处理方式是不同的。如果被包含的是静态文件,
则在页面执行后,在使用了该标识的位置会输出这个文件的内容。如果包含的是动态文件,那么JSP编译器
将编译并执行这个文件。<jsp:include>标识会识别出文件的类型,而不是通过文件的名称来判断该文件是
静态还是动态的。
d.技巧:
在包含文件时,为保证整个页面的层次结构不发生冲突,建议在被包含文件中删去<html>,<body>等
标记。
如果要在JSP页面显示大量的纯文本,可以将这些文本文字写入静态文件(如记事本)中,然后通过
include指令或动作标记包含到该JSP页面,可使页面更整洁。
e.include指令与<jsp:include>动作标识的区别:
1.include指令通过file属性指定被包含文件,并且file属性不支持任何表达式;而<jsp:include>
通过page属性指定,并且支持JSP表达式。
2.使用include指令时,被包含文件内容会被原封不动地插入到包含页中,然后JSP编译器再将合成后
的文件最终编译成一个Java文件;使用<jsp:include>动作标识时,当该标识被执行时,程序会将请求转发
(注意是转发,而不是请求重定向)到被包含的文件,并将执行结果输出到浏览器中,然后返回包含页,继
续执行后面的代码。因为服务器执行的是多个文件,所有JSP编译器会分别对这些文件进行编译。
3.在应用inlcude指令包含文件时,由于被包含的文件最终会生成一个文件,所以在被包含的文件、包
含文件中不能有重名的变量和方法;而应用<jsp:include>动作标识包含文件时,由于每个文件是单独编译
的,所以在被包含的文件、包含文件中重名的变量和方法不冲突。
2.<jsp:forward> 请求转发标识
通过<jsp:forward>动作标识可以将请求转发到其他Web资源(JSP、HTML、Servlet等)。执行请求后,当
前页面不再被执行,转去执行该标识指定页面。
语法格式:
1.<jsp:forward page="url" />
2.<jsp:forward page="url">
<jsp:param>
</jsp:forward>
page:请求被转向的目标文件必须是内部资源,即当前应用中的资源。
3.<jsp:param> 传递参数标识
可以作为其他标识的子标识,用于为其他标识传递参数。
语法格式:<jsp:param name="参数名" value="参数值" />
说明:
通过<jsp:param>指定的参数,将以“参数名=值”的形式加入请求中,功能与直接在文件名后面加
“?参数名=值”是相同的。
- myeclipse学习总结一(在MyEclipse中设置生成jsp页面时默认编码为utf-8编码)
1.每次我们在MyEclispe中创建Jsp页面,生成的Jsp页面的默认编码是"ISO-8859-1".在这种情况下,当我们在页面中编写的内容存在中文的时候,就无法进行保存.如下图 ...
- jsp前端实现分页代码
前端需要订一page类包装,其参数为 private Integer pageSize=10; //每页记录条数=10 private Integer totalCount; //总记录条数 priv ...
- jsp中出现onclick函数提示Cannot return from outside a function or method
在使用Myeclipse10部署完项目后,原先不出错的项目,会有红色的叉叉,JSP页面会提示onclick函数错误 Cannot return from outside a function or m ...
- jsp页面无法识别el表达式的解决方案
今天在写一个springmvc的小demo时,碰到一个问题,在jsp页面中书写为${user.username}的表达式语言,在浏览器页面中仍然显示为${user.username},说明jsp根本不 ...
- 浅谈JSP中include指令与include动作标识的区别
JSP中主要包含三大指令,分别是page,include,taglib.本篇主要提及include指令. include指令使用格式:<%@ include file="文件的绝对路径 ...
- 浅谈JSP注释
HTML注释 JSP文件是由HTML尿急和嵌入的Java程序片段组成的,所以在HTML中的注释同样可以在JSP文件中使用.注释格式:<!--注释内容--> <!-- 欢迎提示信息! ...
- JSP 标准标签库(JSTL)
JSP 标准标签库(JSTL) JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. JSTL支持通用的.结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签, ...
- Nginx服务器之Nginx与tomcat结合访问jsp
本文使用linux centos系统 本文概述: JSP是一种动态网页技术标准.使用的方式是在HTML文件中插入程序段和JSP标记,而形成JSP文件.使用JSP开发WEB应用可以跨平台开发.但jsp需 ...
- 基于jsp+servlet图书管理系统之后台万能模板
前奏: 刚开始接触博客园写博客,就是写写平时学的基础知识,慢慢发现大神写的博客思路很清晰,知识很丰富,非常又价值,反思自己写的,顿时感觉非常low,有相当长一段时间没有分享自己的知识.于是静下心来钻研 ...
- JSP页面跳转的几种实现方法
使用href超链接标记 客户端跳转 使用JavaScript 客户端跳转 提交表单 客户端跳转 使用response ...
随机推荐
- PostgreSQL的同步级别与MySQL的半同步after_sync比较
MySQL的半同步中通过binlog进行流复制,同步级别和PostgreSQL对比可以发现: PostgreSQL MySQL off local ...
- HYSBZ 1797 Mincut 最小割
Descrption A,B两个国家正在交战,其中A国的物资运输网中有N个中转站,M条单向道路.设其中第i (1≤i≤M)条道路连接了vi,ui两个中转站,那么中转站vi可以通过该道路到达ui中转站, ...
- Redis 高可用之哨兵模式(二)
上一篇实际操作过程中遇到两个问题 问题一:虽然运行了3个sentinel容器,实际上只有一个sentinel运行 问题出现的原因很简单,三个sentinel用的是同一个挂载配置文件,容器内部的更改直接 ...
- css设置全屏背景图,background-size 属性
在写主题样式的时候经常会碰到用背景图铺满整个背景的需求,这里分享下使用方法 需要的效果 图片以背景的形式铺满整个屏幕,不留空白区域 保持图像的纵横比(图片不变形) 图片居中 不出现滚动条 多浏览器支持 ...
- axios设置了responseType: 'json‘’,ie问题
在ie会有问题 如果返回的数据会变成字符串 在拦截器中用json.parse转 // 在axios的响应头中设置~~~ axios.interceptors.response.use( respons ...
- N1试卷常考词汇总结
免れる まぬがれる 免去,幸免 軽率 けいそつ 轻率,草率 捩れる ねじれる 拧劲儿,扭歪,弯曲 裂ける さける 裂开,破裂 避ける さける 躲避,避开 つまむ 挟,捏,掐 追及 ついきゅう 追上.追 ...
- 如何编写一个路由器的界面1-Luci开发入门
Howto:如何写Module(模块)-----------------这一部分主要是翻译github上的document 注意:如果您打算将模块加入LUCI整合之前,您应该阅读Module参考. 本 ...
- 颜色框架Hue使用方法
Hue地址 如果有疑问或者想探讨iOS开发相关的技术,十分欢迎. 1. cocoapods安装Hue pod "Hue" 2. 导入框架 import Hue 3. 将十六进制数字 ...
- 问题:com.alibaba.dubbo.rpc.RpcException: Failed to invoke ......
个人解决流程: 一看到这个问题,下意识想到了是dubbo远程连接的问题,可能是dubbo本身的问题,于是在虚拟机上另外一台dubbo能正常脸上的服务器上重新尝试,还是报相同的错误,并且在dubbo-a ...
- IIS 程序池优化配置方案
内容目录 IIS 程序池优化配置方案IIS高并发配置一.IIS站点绑定程序池设置二.支持万级并发请求 IIS 程序池优化配置方案 最近由于系统的客户越来越多,有客户反映访问速度变慢,尤其是api的请求 ...