tomcat环境搭建一文中为大家详细的介绍了第一个JSP的程序——Hello World,大家都应该顺利的完成了吧,以此为一个开端,希望大家在学习java EE的路上乘风破浪,不断进步。今天,为大家介绍JSP基本语法。想要快速的学会一门语言,掌握其语法非常关键。这是根本。

一方面因为篇幅原因,另一方面我做此文的目的是做一个小的总结,帮助大家理清思路,撸一撸JSP基本语法。因此,在这篇博文上没有小程序的例子。其实,JSP的本质就是java,只要你有一定的java基础,JSP脚本段的语法与java一模一样。熟记本文之后,相信你写些JSP的小程序会很轻松。希望大家,能在看完本文之后,多写些小程序。毕竟,编程的能力不是记忆一些理论知识就可以的,而是要多多动手实践。

言归正传,语法是根本。总的来说,JSP基础语法包括:两种注释类型、三个脚本元素、三个指令元素、八个动作指令。

JSP页面的组成

JSP页面包含JSP元素和Template data两类。Template data是指JSP引擎不处理的部分,也就是<%%>以外的部分,例如代码中的HTML标签等,这些数据会直接传送到客户端的浏览器。

JSP元素则是值由JSP引擎直接处理的部分,这一部分必须符合JSP语法。JSP标签是大小写敏感的(HTML标签不区分大小写),脚本语法和指令语法则使用了传统的语法。

两种注释类型

1.html注释

<!-comment[<%=expression%>]-> //[]为可选 

eg:

<!-This file dispalys <%=user%> login sreen> 

2.jsp注释

<%--这是一个jsp单行注释--%>
<%/*这是一个jsp多行注释*/%>

三个脚本元素

1.申明:整个页面的成员变量或方法

<%! int a=0;%> 

2.表达式

<%=expression%> 

"<%"和"="之间不要有空格,表达式必须能求值。

3.脚本段:java程序段

<% code fragment%> 

JSP页面可以在<%%>之间插入java程序段。一个JSP页面可以有许多程序段,这些程序段将被JSP引擎按顺序执行。

注意:<%! %>内的变量和方法是一个类内的变量和方法也就是页面的成员变量和成员方法。声明在<%%>内的变量是一个方法的变量也就是局部变量。这个地方我们不太好理解,可以查看Tomcat编译成带名称中有“_jsp”的.java的文件,也就是servlet。我们可以查看JSP转译成的servelt,其路径如下:

apache-tomcat-7.0.59\work\Catalina\localhost\yourwebapp\org\apache\jsp

我们可以看到一个叫_jspService的方法,所有JSP脚本段都在这个方法里。

为了区别他们:请看如下的计数器小程序counter.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head></head>
<body>
<%!int count = 0;
synchronized void setCount() {
count++;
};
%>
<h2>
欢迎阅读本文
<h2>
<br> 本文阅读次数:
<% setCount();
out.println(count);
%>
<br>
i=0,计算i++=
<%
int i = 0;
out.println(i++);
%> </body>
</html>

局部变量当方法调用完,就会在内存中被销毁,所以i每次都为0,0++还是0。而count是页面的成员变量,每访问一次这个页面,count就会+1,直到JSP引擎关闭。用synchronized关键词修饰原因是:当多个用户同时访问这个页面时,线程是安全的。

三个指令元素

1.page指令,仅仅import可以多个

eg:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="com.kl.bean.*" %>

contentType 属性指定页面响应的MIME类型和字符编码

pageEncoding属性用于指定JSP页面字符编码格式。

我的建议:都设置为UTF-8

2.include指令:在编译阶段就处理所需要的文件

<%@ include file="relativeURL"%> 

3.taglib,声明页面的自定义标签

<%@ taglib uri="http://www.jspcentral.com/tags" prefix="public"%> 

八个动作

1.内部跳转(请求转发):<jsp:forward >

从一个jsp文件向另一个jsp文件传递一个包含用户请求的request对象。标签后的jsp脚本不会执行。

该语句实现页面跳转,并可携带相关参数,浏览器地址栏数据不改变,不会显示参数信息。

重定向:重定向行为是做了两次请求,及产生了两个request对象,重定向会导致第一次request对象信息丢失。

请求转发:转发做了一次请求, 浏览器的地址栏一直是第一次请求的地址。转发是服务器内部request/response控制权的移交。

eg: 含param子标记

<jsp:forward page="loginResult.jsp">
<jsp:param name="username" value="<%=user%>"/>
<jsp:param name="password" value="<%=pwd%>"/>
</jsp:forward>

不含param子标记

<jsp:forward page="declare.jsp"/> 

2.包含页面:<jsp:include>

与<%@ include%>不同,在jsp页面运行时动态加入。

<jsp:include page="scripts/login.jsp">
<jsp:param name-"username" value="tom"/>
</jsp:include>

->javaBean

3.创建Bean:<jsp:useBean>

属性:

id:javaBean是一个类,不同实例用id区分

class:javaBean的类名。

scope:默认page,以下是取值的详细说明

  • page:创建Bean的jsp以及此文件中的所有静态包含文件(<%@ include %>)。

  • request:同一个请求,直到客户端发起下一个请求为止。
  • session:整个会话,近似理解为关闭浏览器为止。
  • application:整个application。服务器一开始执行服务到服务器关闭为止。

eg:

<jsp:useBean id="checking" scope="session" class="bank.checking" >
<jsp:setProperty name="checking" property="balance" value="0.0"/>
</jsp:useBean>

4.设置Bean属性:<jsp:setProperty>

属性:

name: <jsp:useBean>标签中的id属性

property:Bean实例的属性。

value: Bean实例属性的值。

param:表单参数

语法:

1)将bean属性的值设置为一个字符串。

<jsp:setProperty name="bean的名字" property="bean的属性" value=字符串/> 

2)通过表单的参数的值来设置bean的相应属性的值,表单中的属性和javaBean的属性应该同名。

<jsp:setProperty name="bean的名字" property="*" />
<jsp:setProperty name="bean的名字" property="属性名" param=“参数名” />

注意表单中文参数乱码

post方式

request.setCharacterEncoding("utf-8");
response.setCharacterEncoding( "utf-8" );

get方式

String string = request.getParamers("");
String = new String(string.getBytes("ISO8859-1","utf-8"));

5.取得属性<jsp:getProperty>

<jsp:getProperty name="bean的名字" property="bean的属性"/> 

6.定义参数:<jsp:param>

param标记以“名字-值”对的形式为其他标记提供附加信息,不能独体使用。作为<jsp:include>,<jsp:forward >,<jsp:plugin>标记的子标记。

<jsp:param name="名字" value="值"> 

7.使用Applet插件:<jsp:plugin>

8.插件错误提示:<jsp:fallback>

JSP基本语法的更多相关文章

  1. JSP学习——语法(二)

    1:JSP运行原理和九大隐式对象: 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一 ...

  2. jsp基本语法及运行原理

    一.jsp简介 JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它 是由Sun Microsystems公司倡导.许多公司参与一起建立 ...

  3. JavaWeb基础-Jsp基础语法

    jsp基础语法 JSP的组成 静态内容.指令.表达式.小脚本.声明.注释 JSP的生命周期 用户发出index.jsp ,服务端判断是否是第一次请求,若是第一次请求,则tomcat中的JSP引擎中的文 ...

  4. 关于jsp基本语法:第一章节

    今天我学习了关于JSP基本语法的一些知识点. JSP全名是 Java server pages,其根本是一个简化的Servlet设计,实现了在java当中使用HTML标签.JSP是一种动态网页技术,标 ...

  5. JSP基本语法总结【1】(jsp工作原理,脚本元素,指令元素,动作元素)

    时隔半年,回头对jsp复习整理一下,温故而知新. jsp工作原理: jsp服务器管理jsp页面分两个阶段:转换阶段(translation phase)和执行阶段(execution phase). ...

  6. 一、 JSP概述 二、JSP的语法结构 三、JSP内置对象

    一.JSP概述###<1>概念 java服务器页面 可以编写动态页面 其内部是以HTML标签为主,可以在HTML标签嵌套java代码 jsp文件以.jsp为后缀 jsp本质上就是一个Ser ...

  7. Jsp基础语法(由简入杂)

    JSP基础语法 一,JSP简介 Jsp是一个简化的Servlet设计,是在服务器端执行,他实现了再Java中使用HTML标签. Jsp是一种动态网页技术标准也是JAVAEE的标准 二,常见动态网站开发 ...

  8. Jsp的语法和指令

    Jsp的三种注释 前端语言注释:<!-- --> 会被转译,也会被发送,但是不会被浏览器执行 java语言注释: 会被转译,但是不会被servlet执行 Jsp注释:<%--  -- ...

  9. JSP学习(一)JSP基础语法

    JSP基础语法 1.JSP模版元素 JSP页面中的HTML内容称之为JSP模版元素. JSP模版元素定义了网页的基本骨架,即定义了页面的结构和外观. <%@ page language=&quo ...

随机推荐

  1. Vijos1352 NOI2006 最大获利 最小权闭合图

    Orz胡伯涛<最小割模型在信息学竞赛中的应用> 建图方法: 设立源点S和汇点T,S和用户(共M个)连边,载流量为满足其要求的获利 T和中转站(共N个)连边,载流量为建立该中转站的费用 每个 ...

  2. Java学习----你可以知道对象的工作结果(获取方法的返回值)

    1.写返回类型 2.return 返回值 3.定义变量接受返回值 public class App2 { public String [] print(String msg, int num) { f ...

  3. 安装完 MySQL 后必须调整的 10 项配置

    原文出处: mysqlperformanceblog   译文出处:开源中国   欢迎分享原创到伯乐头条 当我们被人雇来监测MySQL性能时,人们希望我们能够检视一下MySQL配置然后给出一些提高建议 ...

  4. nginx 环境搭建使用之入门

    1.http://nginx.org/下载最新的nginx 现在最新的版本是nginx-1.9.1   下载.tar.gz包 ,解压. timeless@timeless-HP-Pavilion-g4 ...

  5. nav

    $(document).ready(function() { $(window).resize(function(){ var need=0; var ul_max_width = $(window) ...

  6. Linux服务器集群技术的概述

    目前,越来越多的网站采用Linux操作系统,提供邮件.Web.文件存储.数据库等服务.也有非常多的公司在企业内部网中利用Linux服务器提供这些服务.随着人们对Linux服务器依赖的加深,对其可靠性. ...

  7. iOS应用开发:什么是ARC?

    iOS应用开发:什么是ARC? 博客分类: Phone / IOS / Objective-C / Swift   ARC是什么 ARC是iOS 5推出的新功能,全称叫 ARC(Automatic R ...

  8. iOS触摸事件处理--备用

    主要是记录下iOS的界面触摸事件处理机制,然后用一个实例来说明下应用场景. 一.处理机制 界面响应消息机制分两块,(1)首先在视图的层次结构里找到能响应消息的那个视图.(2)然后在找到的视图里处理消息 ...

  9. STM32启动文件的选择

    移植了同事一个程序,然后死活不能用,发现启动文件错了,明天继续调.真把人折腾死了. stm32给的库文件太琐碎了,正如它的芯片型号一样繁多,例如启动文件: 网上查到的各个文件的解释是: startup ...

  10. JSP 表单request内容

    1. 表单request内容的获取 2. request.setCharacterEncoding("utf-8")对request内容进行编码 3. fullformreques ...