jsp使用
一:jsp(java server page)
jsp其实就是一个servlet。
1)作用:将内容的生成和信息的展示相分离。
2)本质:运行在服务器端,本质上就是一个servlet,产生java文件和class文件保留在tomcat的work目录下。
3)jsp脚本:
1、<%......%> java片段代码。
2、<%=....%> java输出表达是相当于out.print.
3、<%!...%> 声明成员变量。
4)jsp指令:
作用:声明jsp页面的一些属性和动作。
格式:
<%@指令名称 属性=“值” 属性=“值”%> 注意多个属性值,之间是空格没有分号。
jsp指令分类:
page:主要声明 jsp页面的一些属性。
include:静态包含。
taglib:导入标签库。
注意:
一个页面可以有多个指令,指令可以放在任意位置,一般都放在jsp页面最上面。
1、page 指令:
重要属性是三个:
1、contentType:设置相应的流的编码,及通知浏览器用什么编码打开,设置文件的mimetype。
2、pageEncoding:设置页面编码。
3、import :导入所需的包。
contentype和pageEncoding联系:
1)若两者都出现的时候,各自使用各自编码。
2)若只出现一者,亮哥哥都使用出现的这个编码。
3)若两者都不出现,使用服务器默认编码,tomcat7使用的iso-8859-1的编码。
2、了解属性:
language:当前jsp页面里面可以嵌套的语言。
1 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
buffer:设置jsp页面的流缓存区大小。
autoFlush:是否自动刷新。
extends:声明当前jsp页面继承于那个类,必须继承的是httpservlet及子类。
session:设置jsp页面是否可以使用session内置对象。值为布尔。
isELIgnored:是否忽略el表达式。
errorPage:当前jsp页面的出现异常的时候是否跳到jsp页面。参数是布尔值。
isErrorPage:当前jsp野蛮是否是一个错误页面。
若为true,可以使用jsp页面一个内置对象 exception。
3、include指令:
静态包含,就是将其他页面或者servlet的内容包含进来,一起进行编译运行,生成一个java文件。
格式:
<%@include file="相对路径或者内部路径" %>
1 <%@ page contentType="text/html;charset=UTF-8" language="java" %> 2 <html> 3 <head> 4 <title>Title</title> 5 </head> 6 <body> 7 this 1.jsp content!<br> 8 <%@include file="1.jsp"%> 9 this 2.jsp content!<br> 10 <%@include file="2.jsp"%> 11 </body> 12 </html>
效果:
包含2个页面,但是后端只生成一个servlet 的java文件和class文件。只是把1和2生成的内容嵌套在include.jsp
路径解释:
1、相对路径:
./或者什么都不写 表示当前路径。
../ 表示上一级路径。
2、绝对路径:
带协议和主机的绝对路径
不带协议和主机的路径。
/项目名/资源/
5)jsp内置对象(9大内置对象):
在jsp页面上可以直接使用的对象。
内置对象 类型
out JspWrite
request HttpServletRequest
respone HttpServletRespone
session HttpSession
excepetion Throwable
page Servlet(this) 当前servlet。
config ServletConfig
application ServletContex
pageContext PageContext
jsp 域对象:
application 整个项目
session 一次会话
request 一次请求
pageContex 一个页面
Pagecontext理解:
1、域对象
xxxAttribute()
2、操作其他域对象
方法:
XXAttribute(....,int scope)
scope取值:
APPLICATION_SCOPE
SESSION_SCOPE
REQUEST_SCOPE
PAGE_SCOPE
3、获取其他内置对象
getXxx()
注意:
getRequest()获取request内置对象。
4、便捷查找:
findAttribute(String key)
依次从pagecontext、request、session、application四个域查找相应的属性,若查找到了返回值,且结束该次查找,如果查找不到,则返回null。
例子:
1 <html> 2 <head> 3 <title>Title</title> 4 </head> 5 <body> 6 <%--this 1.jsp content!<br>--%> 7 <%--<%@include file="1.jsp"%>--%> 8 <%--this 2.jsp content!<br>--%> 9 <%--<%@include file="2.jsp"%>--%> 10 <% 11 //给其他域对象设置值。其中scop的值,是pagecontext的字段。 12 pageContext.setAttribute("pkey","ok",pageContext.REQUEST_SCOPE); 13 //通过pagecontext获取域对象。 14 ServletRequest re=pageContext.getRequest(); 15 Object val=re.getAttribute("pkey"); 16 out.print(val); 17 18 %> 19 </body> 20 </html>