后台(16)——JSP(2)

简介: 探索Android软键盘的疑难杂症 深入探讨Android异步精髓Handler 详解Android主流框架不可或缺的基石 站在源码的肩膀上全解Scroller工作机制Android多分...

探索Android软键盘的疑难杂症
深入探讨Android异步精髓Handler
详解Android主流框架不可或缺的基石
站在源码的肩膀上全解Scroller工作机制


Android多分辨率适配框架(1)— 核心基础
Android多分辨率适配框架(2)— 原理剖析
Android多分辨率适配框架(3)— 使用指南


自定义View系列教程00–推翻自己和过往,重学自定义View
自定义View系列教程01–常用工具介绍
自定义View系列教程02–onMeasure源码详尽分析
自定义View系列教程03–onLayout源码详尽分析
自定义View系列教程04–Draw源码分析及其实践
自定义View系列教程05–示例分析
自定义View系列教程06–详解View的Touch事件处理
自定义View系列教程07–详解ViewGroup分发Touch事件
自定义View系列教程08–滑动冲突的产生及其处理


版权声明


JSP语法

在上一篇博客我们说过:JSP中可以书写Java代码也可以放置Html标签,但是从本质上来说JSP就是一个Servlet,所以我们站在Java的角度来看JSP的语法就会简单许多。

可以利用尖括号和百分号的形式在JSP文件中编写脚本

  • 利用<% %>编写java代码,例如:
<%
    Date date=new Date();
    out.println(date.toLocaleString());
%>

在该脚本中的代码必须严格遵循Java语法且每行代码以分号结束,而且不能出现其它模板元素。因为JSP引擎在翻译JSP页面中会将该脚本中的Java代码将被原封不动地放到_jspService( )中

  • 利用<%= %>实现输出,例如:

<%= 9527+45 %> 等价于out.print(9527+45);

  • 利用<%! %> 表示在类中定义全局成员和静态块

    请注意在<%! %>定义的变量和方法和是全局的,它们会成为JSP对应的Servlet里的全局成员和方法。

  • 利用<%– –%>添加JSP注释,例如:

<%– 这是JSP注释 –%>

  • 利用<!– –>添加Html注释,例如:

<!– 这是网页注释 –>

JSP指令

JSP指令是为JSP引擎而设计的,用于告知JSP引擎如何处理JSP页面中代码。

指令的语法格式:

<%@ 指令名称 属性1=“属性值1” 属性2=“属性值2”…….%>

在JSP2.0规范中一共定义了三个指令:page、include、taglib。
现在来一起学习这三个指令,就从我们最熟悉的page开始。

page指令

page指令用于定义JSP页面的各种属性,比如在创建Web项目的时候系统会自动帮我们生成一个index.jsp,我们来瞅瞅该文件的第一行:

<%@ page language=”java” import=”java.util.*” pageEncoding=”UTF-8”%>

以前看这行代码的时候有点懵懂,现在就清楚了:这就是一个page指令。在该指令中利用language属性指明该jsp文件中是java代码,利用import属性表明为该jsp文件导入了java.util包。说到导包有点人可能有疑惑了:我们没有导入java.lang为什么可以在JSP文件中写一些很基础的代码呢?这是因为系统会自动帮我们导入:

import java.lang.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;

嗯哼,我们看看page指令常用的属性有哪些:

  • session: 是否自动创建session对象,默认值是true
  • errorPage: 假若页面中有错误跳转到指定的资源
  • isErrorPage: 是否创建throwable对象,默认是false
  • contextType: 设置内容类型,等同于response.setContextType()
  • pageEncoding: 告知JSP引擎用什么编码翻译该jsp文件
  • isELIgnored: 是否支持EL表达式,默认是false

include指令

include指令用于把其它资源包含到当前页面中

  • 静态包含:
<%@ include file="xxxxxx.jsp" %>
  • 动态包含:
<jsp:include page="xxxxxx.jsp"></jsp:include>

请注意这两者的区别:
静态包含:在JSP转义时把两个文件合并
动态包含:在JSP转义时不会合并文件当代码执行到include时才包含另一个文件的内容
使用原则:尽量多采用静态包含

taglib指令

taglib指令用于在JSP页面中导入JSTL标签库。在导入JSTL标签库后就可用标签替换JSP中的java代码。

使用方式:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

JSP的动作

在此介绍JSP常用的动作

  • <jsp:include>
    用于动态地把其它资源包含到当前页面中
  • <jsp:forward>
    用于请求转发
  • <jsp:param>
    用于请求转发时携带参数

    请看如下示例:

    <jsp:forward page="/test.jsp">
    <jsp:param value="rose" name="name" />
    <jsp:param value="23" name="age" />
    </jsp:forward>

    在此转发至test.jsp且携带了name和age两个参数

  • <jsp:useBean>
    创建一个对象

  • <jsp:setProperty>
    给对象的属性赋值
  • <jsp:getProperty>
    取出对象的属性值

    请看如下示例:

    <jsp:useBean id="p" class="cn.com.Person"/>
    <jsp:setProperty property="name" name="p" value="武疼兰"/>
    <jsp:getProperty property="name" name="p"/>

    在此创建了cn.com.Person类的对象p,且为该对象的name属性赋值

相关文章
|
30天前
|
Java
新闻发布项目——后台JSP界面adminManage/addNews.jsp
新闻发布项目——后台JSP界面adminManage/addNews.jsp
12 0
|
30天前
|
Java
新闻发布项目——后台JSP界面adminManage/editNews.jsp
新闻发布项目——后台JSP界面adminManage/editNews.jsp
11 0
|
30天前
|
Java
新闻发布项目——后台JSP界面adminManage/manageTopic.jsp
新闻发布项目——后台JSP界面adminManage/manageTopic.jsp
9 0
|
30天前
|
Java
新闻发布项目——后台JSP界面adminManage/modifyCategory.jsp
新闻发布项目——后台JSP界面adminManage/modifyCategory.jsp
9 0
|
3月前
|
Java 数据库 数据安全/隐私保护
基于SSM框架实现管科类考研自我管理系统(分前后台spring+springmvc+mybatis+maven+jsp+jquery)
基于SSM框架实现管科类考研自我管理系统(分前后台spring+springmvc+mybatis+maven+jsp+jquery)
|
1月前
|
Java
新闻发布项目——后台JSP界面adminManage/newsPage.jsp
新闻发布项目——后台JSP界面adminManage/newsPage.jsp
9 0
|
30天前
|
Java
新闻发布项目——后台JSP界面adminManage/addCategory.jsp
新闻发布项目——后台JSP界面adminManage/addCategory.jsp
8 1
|
30天前
|
Java
新闻发布项目——后台JSP界面adminManage/adminIndex.jsp
新闻发布项目——后台JSP界面adminManage/adminIndex.jsp
10 0
|
1月前
|
Java
新闻发布项目——后台JSP界面adminManage/modifyNews.jsp
新闻发布项目——后台JSP界面adminManage/modifyNews.jsp
6 1
|
1月前
|
Java
新闻发布项目——后台JSP界面adminManage/readNews.jsp
新闻发布项目——后台JSP界面adminManage/readNews.jsp
9 0