jsp文件会首先被Servlet翻译成一个**.java文件,然后被编译成一个.class**文件
包括:
jsp中的所有的语句块最终都会jsp翻译引擎被翻译到一个serivers方法中
在一个java的方法中,声明的变量前不能加权限控制符,不能有另一个方法在里边嵌套,不能有静态语句块,这些都是类中才能出现的东西
所以在jsp的语句块中,也不能出现这三者
jsp中的声明语句块最终会被翻译到Servlet类中,作为类中的成员变量、成员方法和静态代码块,service方法也是该类的方法,所以可以访问到声明中的变量,声明中的变量也可以加权限控制符
但是,由于Servlet是单例多线程的,所以在类里边声明可修改的成员变量会造成线程安全问题
作用是将表达式中的内容显示到客户端,是一个表达式而不是语句,所以不能加“ ; ”
不用定义就可以使用
可以通过此对象的方法来获取其他八大内置对象
标准输出流,可以将信息输出到客户端界面上,输出格式为:out.writer(内容);
使用方法:
<%@ 指令名称 属性名=属性值 属性名=属性值 ·········% >
指定字符编码集,默认相应文本为html,用法:
<%@ page pageEnconding=“utf-8”%>
指定字符编码集,指定相应文本,用法:
<%@ page contextType="text/html ; charset=utf-8 "%>
导入需要的包,多个包可以写多个page指令,也可以多个包用逗号隔开写在一个page中
当页面发生错误时,跳转到指定页面,但是不糊显示错误信息
在当前页面指定isErrorPage=“true”(默认为false),表示当前页面是一个错误处理页面,在语句块里用<%=exception.getMassage()%>可以输出错误信息
实现静态联编,生成一个.java文件
在使用include指令的部分,将该指令所包含的文件复制到使用该指令的位置,特别注意文件所在的位置与指令所在的位置相同。由此可知,两个文件可以共享变量,如果两个文件定义同名变量会报错
用途:对于一个包含许多页面或站点的网站,分为头部、底部、左侧边栏、右侧边栏等部分,可以使用include指令将各部分用到的的相同的文件包含进去,减少了工作量,使修改和维护变得容易
或
在标准输出流开启之前,forward页面的发起者不能开启标准输出流,本页面不能向标准输出流中输入数据
在标准输出流开启之后,include页面的发起者能开启标准输出流,本页面能向标准输出流中输入数据,
实现动态联编,生成两个.java文件
在静态联编和动态联编均可以使用时,一般使用静态联编,因为在运行时只存在一个Servlet,对资源消耗较少,且不存在调用问题,执行效率较高
出现在HTML页面、jsp页面的静态部分,路径前不加“/”
出现在jsp页面动态部分、java代码、xml配置文件中,路径前加“/”