JSP语法
编译器指令
包含指令:include指令:向当前页中插入一个静态文件的内容。语法格式:<%@ include file="相对位置 %>
page为页指令,用于定义JSP文件中的全局属性,表明了页面的一些信息,如编程语言,导入的包(导入的多个包用“,”隔开)和编码方式等。其中java.lang.,javax.servlet.,javax.servlet.jsp.,javax.servlet.http.在JSP编译时已经导入,不需要再导入。page指令作用于整个JSP页面,同样包括静态的包含文件,但是,其不能作用于动态的包含文件,可以在一个页面上使用多个page指令,但是其中的属性只能用一次,除了import属性,其导入的类能被多次使用,另外,无论把page指令放在JSP文件的哪个地方,它的作用范围都是整个JSP文件,不过为了程序的可读性和好的编程习惯,最好把其放在JSP文件的顶部。
taglib指令:<%@ taglib url="URIToTagLibaray" prefix="tagPrefix" %> 用于引入定制标签库。
脚本语法
“脚本段”是<%comments%>;“表达式”是<%= comments%>,带“=”。
“html注释”会发送到客户端,即在浏览器查看页面源代码的时候可见。
“隐藏注释”也叫做“JSP注释”,不会发送到客户端,只有开发人员可见。
“声明”是<%!comments%>
脚本与声明的区别:脚本中的内容转换为servlet中一个方法的变量(成员变量),声明中的内容转化为servlet中类的成员变量(全局变量),servlet是单实例的,这样成员变量的值就只有一个,每个用户都会访问到它,而脚本段中的值则是全局变量,每个用户访问的时候各有一份,互不影响。
动作语法![1432532-20180703215808699-1577195981.png](https://i-blog.csdnimg.cn/blog_migrate/b1d3fd7b7332397312112d693cb17447.png)
jsp:forward(用于转向玉面,从一个页面转到另一个页面,在该指令后面的所有代码都没有机会执行了,因为页面的流程已经转向了另外一个页面)
属性
jsp.include(包含一个静态或动态文件)
属性
JSP内置对象
重点:request,session,application
request
1.“request”对象代表的是来自客户端的请求,例如在form表单中填写的信息等,是最常用的对象。关于它的方法使用较多的是getParameter、getParameterNames、getParameterValues、getAttribute、setAttribute通过调用这几个方法来获取请求对象中所包含的参数的值。
2.getParameter方法是getParameterValues方法的特例,表示请求参数值只有一个,如果请求参数的值为多个,使用getParameterValues方法。在多选框的情况下,需要使用getParameterValues方法来获取用户所选的值。该方法的作用是获取到客户端通过表单或url请求参数所发送过来的参数值,是客户端与服务器端之前的交互,服务器端要想获取到客户端发送过来的数据,就需要使用getParameter方法,没有与getParameter对应的setParameter方法。
3.setAttribute与getAttribute方法一般都是成对出现,首先通过setAttribute方法设置属性与属性值,然后通过getAttribute方法根据属性获取到该属性对应的对象值(一般要向下进行转换)setAttributegetAttribute方法都是在服务器端内部执行的,客户端不知道服务器是否执行过这两个方法。
4.request对象内数据的存活范围就是在request的存活范围内,当客户端向服务器发送一个请求,服务器向客户端返回一个相应后,该请求对象就被销毁了;之后再向服务器端发送新的请求时,服务器会创建新的request对象,该request对象与之前的request对象没有任何关系,因此也没法获得在之前的request对象中所存放的任何数据。
session
1."session"对象代表服务器与客户端所建立的会话,当需要在不同的JSP页面中保留客户信息的情况下使用,比如在线购物、客户轨迹跟踪等。
2.概要:http是基于请求和相应的无状态(stateless)协议;web servlet对每一个客户端请求都没有历史记忆;session用来保存客户端状态信息。
application
1.“application”对象负责提供应用程序在服务器中运行时的一些全局信息,常用的方法有getMinmeType和getRealPath等
2.存活范围最大的对象,只要服务器不关闭,application对象中的数据就会一直存在。在整个服务器运行过程中,application对象只有一个,所以被所有用户使用。
**request、session和application这三个对象的范围是逐个增加的:request只在一个请求的范围内,在请求被相应后,该对象就会被销毁;session是在浏览器窗口范围内;application则是在整个服务器运 行过程中。
out
1.“out”对象代表了向客户端发送数据的对象,与response对象不同,通过out对象发送的内容将是浏览器需要显示的内容,是文本一级的,可以通过out对象直接向客户端写一个又程序动态生成的HTML文件。常用的方法有print、println、clear、clearBuffer、flush、getBufferSize和getRemaning,这是因为out对象内部包含一个缓冲区,所以需要一些对缓冲区进行操作的方法。
config(JSP不常用,Servlet比较常用)
“config”对象提供一些配置信息,常用的方法有getInitParameter、getInitParameterNames以获得Servlet初始化时的参数
page(不常用)
“page”对象代表了正在运行的由JSP文件产生的类对象,不建议一般读者使用
exception(不常用)
“exception”对象代表了JSP文件运行时所产生的异常现象,此对象不能在一般JSP文件中直接使用,而只能在使用了<$@ pageisErrorPage="ture"%>的JSP文件中使用