脚本程序可以包含任意量的Java语句、变量、方法或表达式,只要它们在脚本语言中是有效的。
语法格式:<% 代码片段 %>
一个声明语句可以声明一个或多个变量、方法,供后面的Java代码使用。
在JSP文件中,您必须先声明这些变量和方法然后才能使用它们。
语法格式:<%! declaration; [ declaration; ]+ ... %>
一个JSP表达式中包含的脚本语言表达式,先被转化成String,然后插入到表达式出现的地方。
表达式元素中可以包含任何符合Java语言规范的表达式,但是不能使用分号来结束表达式。
语法格式:<%= 表达式 %>
为代码作注释以及将某段代码注释掉。
语法格式:<%-- 注释 --%>
为JSP引擎而设计,并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分
语法格式:<%@ directive attribute="value" %>
<%@ page ... %>
定义页面的依赖属性,比如脚本语言、error页面、缓存需求等等
无论page指令出现在JSP页面中的什么地方,它作用的都是整个JSP页面
<%@ include ... %>
包含其他文件
<%@ taglib ... %>
引入标签库的定义,可以是自定义标签
JSP行为标签使用XML语法结构来控制servlet引擎。
它能够动态插入一个文件,重用JavaBean组件,引导用户去另一个页面,为Java插件产生相关的HTML等等。
语法格式:attribute="value" />
jsp:include
用于在当前页面中包含静态或动态资源jsp:useBean
寻找和初始化一个JavaBean组件jsp:setProperty
设置 JavaBean组件的值jsp:getProperty
将 JavaBean组件的值插入到 output中jsp:forward
从一个JSP文件向另一个文件传递一个包含用户请求的request对象request
: HttpServletRequest类的实例response
:HttpServletResponse类的实例out
:PrintWriter类的实例,用于把结果输出至网页上session
:HttpSession类的实例application
:ServletContext类的实例,与应用上下文有关config
:ServletConfig类的实例pageContext
:PageContext类的实例,提供对JSP页面所有对象以及命名空间的访问page
:类似于Java类中的this关键字exception
:Exception类的对象,代表发生错误的JSP页面中对应的异常对象在JSP页面中,可以不用显示捕获异常,而是通过配置page指令制定错误处理的JSP页面。如:<%@ page errorPage="error.jsp" %>
,同时在error.jsp中需制定<%@ page isErrorPage="true" %>
。这样在error.jsp可以使用exception对象处理具体异常。
在web.xml文件中统一指定:
<error-page>
<error-code>500<error-code/>
<location>/WEB-INFO/error.jsp<location/>
<error-page/>
用于通知JSP引擎在翻译当前JSP页面时将其他文件的内容合并进当前JSP页面转换成的Servlet源文件中。
这种在源文件级别进行引入的方式称之为静态引入,当前JSP页面和引入的页面紧密结合为一个Servlet。
用于把另一个资源的输出内容插入进当前JSP页面的输出内容之中。被动态引入的资源必须是一个能独立被Web容器独立调用和执行的资源。
这种在JSP页面执行时的引入方式称为动态引入。生成两个Servlet源文件,通过一个方法的调用将目标文件包含进来。
参数在传输过程中使用的编码为 ISO-8859-1
只要在获取参数前调用 request.setCharacterEncoding("UTF-8");
即可
前面方式对于GET无效,可以通过修改tomcat的server.xml文件的方式。
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
useBodyEncodingForURI="true"/>
参照 http://localhost/docs/config/index.html 文档的useBodyEncodingForURI属性。