JSP的使用和注意事项

一、jsp简介

JSP全名是Java Server Pages java服务器页面
JSP本质:Servlet

作用:更好地展示动态WEB资源

修改后第一次访问JSP,才会有翻译和编译过程

何时使用HTML,何时使用JSP?


静态WEB资源:HTML,JSP
建议使用HTML。源码直接被浏览器解析执行
JSP第一次要经过翻译和编译过程,本质Servlet,单例的Servlet
如果内存中有大量Servlet,维护单例程序,效率就会特别低
动态WEB资源:JSP

二、jsp中的三种注释和显示范围

书写格式             HTML源码    Java源码 JSP文件
HTML注释
<!-- HTML注释-->         √                √               √
Java注释
三种                   ×          √         √

JSP注释 <%-- jsp注释 --%>  ×          ×           √


三、JSP指令

JSP指令可以让我通过设置指令的属性,去节省很多的java代码,从而设置JSP文件。
1.Page指令
2.Include指令
3.Taglib指令
格式:
<%@ 指令名 属性名1=”属性值1” …. %>

1.page指令:

属性名称 取值or范围 描述
pageEncoding 当前页面 指定页面编码格式
通常被 contentType设置替代了。
如果设置了ContentType,pageEncoding的设置就没有意义了

contentType 响应正文类型 客户端浏览器根据该属性判断文档类型,例如:
HTML格式为text/html
纯文本格式为text/plain
JPG图像为image/jpeg
GIF图像为image/gif
Word文档为application/msword
一般固定为:
contentType="text/html; charset=UTF-8"
翻译后:
Response.setContentType("text/html; charset=UTF-8")



buffer 8kb                     jsp缓冲区大小
autoFlush true / false    是否自动刷新

errorPage 某个JSP页面的相对路径 指定一个错误页面,如果该JSP程序抛出一个未捕捉的异常,则转到errorPage指定的页面。errorPage指定页面的isErrorPage属性为true,且内置的exception对象为未捕捉的异常
如果页面正常,正常显示
页面有异常,请求转发到指定的页面
服务器内部发出的
路径写法同 请求转发路径(浏览器路径不变)
isErrorPage true / false 指定该页面是否为错误处理页面,如果为true,则该JSP内置有一个Exception对象的exception,可直接使用。默认情况下,isErrorPage的值为false




isErrorPage=”true”,翻译后的java文件中就有一个exception变量,这个变量中封装着上一个出错页面的异常信息。
默认false,默认没有exception变量



import 任何包名、类名 指定在JSP页面翻译成的Servlet源文件中导入的包或类。import是唯一可以声明多次的page指令属性。一个import属性可以引用多个类,中间用英文逗号隔开。






两种写法:
import=”java.util.Map,java.util.List”
import=”java.util.Map” import=”java.util.List”


翻译成java代码后:
Import java.util.Map;
Import java.util.List;


language java 指明解释该JSP文件时采用的语言,默认为Java
session true、false 指明该JSP内是否内置Session对象,如果为true,则说明内置Session对象,可以直接使用,否则没有内置Session对象。默认情况下,session属性的值为true。需要注意的是,JSP 引擎自动导入以下4个包:
java.lang.*
javax.servlet.*
javax.servlet.jsp.*
javax.servlet.http.* 


1、html中会默认获取到JSESSIONID的Cookie么?
不会。因为没有执行getSession()
2、Servlet中默认会获取JSESSIONID的Cookie么?
默认不会,除非主动调用request.getSession()
3、jsp中默认会获取JSESSIONID的Cookie么?
默认会。翻译后的java代码,默认是有session对象,会有getSession();
特殊情况下不会,session=false

2.include指令

1)静态包含:include指令
<%@ include file=”文件的地址-服务端路径” %>
 
适用于代码的复用。
即使JSP分别执行有错误,但只要合并后没有错误,就可以正常执行。

2)动态包含:include动作标签
<jsp:include page="relativeURL" />
 
要求两个JSP必须能够分别正常执行。

3.taglib指令

一般用来导入jstl表达式

1) 需要导入jar包到项目中
2) 还需要为某个JSP导入标签库
<%@ taglib  prefix=”” url=””%>
Prefix:给导入的标签库,在当前JSP上起一个别名,外号
uri:   标签库的名称空间
例如:<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值