jsp语法和page指令
在应用程序中建立一个index.jsp文件,在tomcat的work目录下会生成名为index_jsp.java和index_jsp.class文件,即在html语言中嵌入java语句,在服务器端会生成class文件将jsp中的内容用out.write()输出,碰到<% %>标识的代码则直接写入到java文件中,通常用servlet产生数据,在jsp中显示数据,数据保存在request域中,通过转发的方式将数据传给jsp,因为servlet与jsp共享一个request域,因此可以得到在servlet中封装在request域中的数据。
jsp语法
一,模板元素:jsp页面中的html内容称为jsp模板元素,定义了网页的基本骨架,即定义了页面的结构和外观
二、jsp脚本表达式:用于向浏览器输出数据
<%
String data="你好";
out.write(data);
%>
脚本表达式<%=data %>与用out.write(data);的作用是一样的,都是将数据输出给浏览器。<%=data %>在源代码中翻译为out.print(data);
三、脚本片段:嵌入多行java代码的片段
<%
String data="你好";
out.write(data);
%>
就是一个脚本片段,在脚本片段中只能出现java代码,也必须遵循java语法,jsp引擎在翻译jsp页面时会原封不动的将片段中的内容放到Servlet的_jspService方法中,不同脚本片段中的数据可以共享,单个脚本片段的语句可以是不完整的,但是jsp页面中的所有脚本片段合起来必须是完整的。
四、jsp声明:声明中的代码会翻译到sevice外面
<% public void run(){} %>则会错误,因为该段代码放到service方法中,java中方法内不能在定义其他方法,因此是错误的定义方式,
<%!public void run(){} %>是正确的方式,表示声明为service外部的方法,会当做sevice外部的java代码。声明可以让jsp有自己的方法。
五、jsp注释:<%-- --%>
在jsp中用<!-- --!>只会不显示之间的内容,但是在页面的源文件中仍然存在,只是被浏览器隐藏没有显示,而<%-- --%> 之间的内容并不存在于页面的原文件中
六、jsp指令
1、page:例:<%@ page contentType="text/html;charser="UTF-8"%>,如果一个指令有多个属性,可以分开写也可以写在一个指令中
language="java"
extends="package.class"
import="package.class|package.*"导入多个包时可用","分割
session="true|false"在翻译成Servlet时是否创建session,为true则可以在jsp中直接使用
buffer="none|8kb|siizekb"是否使用缓存,使用缓存时,当写入的数据先写入到缓存,然后再一次性写给浏览器,默认缓存为8kb
autoFlash="true|false"缓存满后是否自动刷新
isThreadSafe="true|false",设置为false时,翻译成servlet时会实现SingleThreadModel接口,即线程是安全的,当一个servlet没有完成上一个用户请求时会创建一个新的servlet
info="text"
errorPage="relative_url,errorPage属性的设置值必须使用相对路径,如果以"/"开头表示当前web应用程序的根目录,也可以在web.xml中使用全局配置
<error-page>
<exception-type>jva.lang.SrithmeticException</exception>
< <location>/error.jsp</location>
<error-page>
jsp中的errorpage优先级高于web.xml文件中的配置
isErrorPage="true|false",如果一个页面为错误处理页面,那么可以将该页面的isErrorPage属性设置为true,这样当跳转到错误处理页面时将会将异常对象传给错误处理页面的servlet,在源代码中就可以查看该异常的原因
contentType="text/html;charset=UTF-8"页面类型和编码,http响应让浏览器以什么编码格式打开
pageEncoding=characterSet|ISO-8859-1"
isEIgnored="true|false"
摘自 sdtarena
补充:Web开发 , Jsp ,