2017-8-31

2017-8-31

JSP语法


脚本程序:

脚本程序可以包含任意量的Java语句、变量、方法或表达式,只要它们在脚本语言中是有效的。

  语法格式:<% 代码片段 %>

JSP申明:

一个声明语句可以声明一个或多个变量、方法,供后面的Java代码使用。

在JSP文件中,您必须先声明这些变量和方法然后才能使用它们。

  语法格式:<%! declaration; [ declaration; ]+ ... %>

JSP表达式:

一个JSP表达式中包含的脚本语言表达式,先被转化成String,然后插入到表达式出现的地方。

表达式元素中可以包含任何符合Java语言规范的表达式,但是不能使用分号来结束表达式。

  语法格式:<%= 表达式 %>

JSP注释:

为代码作注释以及将某段代码注释掉。

  语法格式:<%-- 注释 --%>

JSP指令:

为JSP引擎而设计,并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分

  语法格式:<%@ directive attribute="value" %>
三种指令标签
  1. <%@ page ... %> 定义页面的依赖属性,比如脚本语言、error页面、缓存需求等等

    无论page指令出现在JSP页面中的什么地方,它作用的都是整个JSP页面

  2. <%@ include ... %> 包含其他文件

  3. <%@ taglib ... %> 引入标签库的定义,可以是自定义标签

JSP行为:

JSP行为标签使用XML语法结构来控制servlet引擎。

它能够动态插入一个文件,重用JavaBean组件,引导用户去另一个页面,为Java插件产生相关的HTML等等。

  语法格式:<jsp:action_name attribute="value" />
常用行为标签:
  1. jsp:include 用于在当前页面中包含静态或动态资源
  2. jsp:useBean 寻找和初始化一个JavaBean组件
  3. jsp:setProperty 设置 JavaBean组件的值
  4. jsp:getProperty 将 JavaBean组件的值插入到 output中
  5. jsp:forward 从一个JSP文件向另一个文件传递一个包含用户请求的request对象

JSP的九大隐含对象

  1. request: HttpServletRequest类的实例
  2. response:HttpServletResponse类的实例
  3. out:PrintWriter类的实例,用于把结果输出至网页上
  4. session:HttpSession类的实例
  5. application:ServletContext类的实例,与应用上下文有关
  6. config:ServletConfig类的实例
  7. pageContext:PageContext类的实例,提供对JSP页面所有对象以及命名空间的访问
  8. page:类似于Java类中的this关键字
  9. exception:Exception类的对象,代表发生错误的JSP页面中对应的异常对象

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/>

include指令 和 jsp:include


include

用于通知JSP引擎在翻译当前JSP页面时将其他文件的内容合并进当前JSP页面转换成的Servlet源文件中。

这种在源文件级别进行引入的方式称之为静态引入,当前JSP页面和引入的页面紧密结合为一个Servlet。

jsp:include标签

用于把另一个资源的输出内容插入进当前JSP页面的输出内容之中。被动态引入的资源必须是一个能独立被Web容器独立调用和执行的资源。

这种在JSP页面执行时的引入方式称为动态引入。生成两个Servlet源文件,通过一个方法的调用将目标文件包含进来。

获取中文参数值乱码问题

参数在传输过程中使用的编码为 ISO-8859-1

对于 POST 请求:

只要在获取参数前调用 request.setCharacterEncoding("UTF-8"); 即可

对于 GET 请求:

前面方式对于GET无效,可以通过修改tomcat的server.xml文件的方式。

<Connector port="80" protocol="HTTP/1.1" 
           connectionTimeout="20000"
           redirectPort="8443"
           useBodyEncodingForURI="true"/>

参照 http://localhost/docs/config/index.html 文档的useBodyEncodingForURI属性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值