开篇:JSP的等同于servlet

编译器将其转化为.class,后执行。一旦配置在Tomcat webapps,运行访问后,在Tomcat--->work文件内出现java文件,其内容即为转化后的JSP。

JSP语法:

分为三个类型:

(1)编译器指令:include,page,taglib

(2)脚本语法:

注释:<!--...-->,<%--...-->

声明:<%!...%>

表达式:<%...%>

java脚本段:<%...%>

(3)动作语法:<jsp:forword>,<jsp:include>,<jsp:plugin>,<jsp:getProperty>,<jsp:setProperty>,<jsp:useBean>

Part 1 :

JSP编译器指令:

page:

 <%@page contentType="text/html;charset=GBK"%>
<!--转化为.class中的setContentType()--> <%@page import="java.util.*,java.lang.*"%>
<!--转化为导包--> <%@page errorPage="error.jsp"%>
<!--设置错误页面,出错后显示-->

include(下面详细介绍):

<%@ include file="相对位置"%>

taglib:

<%@taglib uri="http://java.sun.com/jstl/core"prefix="c"%>
<!--注意:是uri 不是 url -->

include分为静态导入和动态导入:

静态导入:   <5@include file="logo.jsp"%>

在servlet引擎编译时,就将此文件内容包含进去(两个文件代码整合到一起,全部放到jspService方法中),所以只生成一个servlet,因此两个页面不能含有

同名变量,否则出错;运行效率略高,耦合度较高,不灵活;

动态导入:    <jsp:include page="logo.jsp"><jsp:include>

在servlet引擎转译后,再请求此页面,所以共生成了两个servlet,所以可以有同名变量:

生成两个servlet,相当于两个类之间的调用,耦合性低,非常灵活;

Part 2 脚本语法:

html注释 : <!--comments-->

隐藏注释 :  <%--comments--%>

声明      :   <%!......%>                       (声明变量或定义方法,内为java语言)    (使用率低,一般都是jsp+servlet,不需要单独使用jsp)

如:

<%!
int a=3; void test(){
out.print(a);
}; %>

表达式  :    <%=...%>                         (输出某个值)

如:

<%=a>
<!--编译后为system.out.println(a);-->

脚本式  :    <%...%>          (中间为java代码)

一个jsp中多个<%...%>脚本段,编译后在一个方法内,不管多少个脚本段。

内置对象:

request,response,session,context,application,等 在jsp文件被java引擎编译后的java文件中,_jspService(HttpServletRequest request,HttpServletResponse response)方法中,已经被声明存在,可直接使用。

代码如下:

request对象代表来自客户端的请求,例如我们在FORM表单中填写的信息等,是最常用对象。相关方法:

getParameter,getParameterNames,getParameterValues;

response对象代表的是对客户端的响应,也就是说可以通过response对象组织发送到客户端的数据,但由于组织方式比较底层,不建议使用,如果需要

向客户端发送文字,直接使用out对象: out.write(); out.print();  ------>因为out对象加了缓存,效率高。

如图:

{out对象代表了客户端发送数据的对象,与response对象不同,通过out对象直接发送的内容将是浏览器将要显示的内容,是文本一级的,可以

通过out对象直接向客户端写一个由程序动态生成的html文件,其常用方法有:print,println,clear,clearBuffer,flush,getBufferSize,getRemaining,

这是因为 out对象包含一个缓存区,所以需要一些对缓冲区的操作方法

};

session对象:代表服务器和客户端所建立的会话,当需要在不同JSP页面中保留用户信息的情况下使用,比如在线购物,客户轨迹跟踪等;

使用:JSP中使用session

<%
session.setAttribute("a","123");
%>

重要:若web访问量大,或是门户类网站,建议设置不创建session(JSP顶部) 

<%@ page session="false">
<!--不创建session对象-->

application对象:负责提供应用程序在服务器中运行的一些全局信息,常用方法有getMimeType和getRealPath等;

JSP 核心 (等待更新)的更多相关文章

  1. Python之路【第十篇】:HTML -暂无等待更新

    Python之路[第十篇]:HTML -暂无等待更新

  2. Intellij IDEA 修改jsp 不能实时更新

    Intellij IDEA 修改jsp 不能实时更新 1. 首先,output要指定到项目的webapp下,这样应该就可以实时更新了 2. 我的问题是这样设置之后,也不可以,原来是可以的,重装系统之后 ...

  3. java需要掌握内容、核心不断更新中

    1.你需要精通面向对象分析与设计(OOA/OOD).涉及模式(GOF,J2EEDP)以及综合模式.你应该十分了解UML,尤其是class,object,interaction以及statediagra ...

  4. IDEA编译项目后,target目录下的jsp文件不更新

    tomcat目录说明 先来看一下tomcat的目录: |-bin |-conf |-lib |-logs |-temp |-webapps |-work tomcat 的核心是servlet容器,叫 ...

  5. JSP 核心标签库

    1 JSTL标签库介绍 JSTL标签库的使用是为弥补html标签的不足,规范自定义标签的使用而诞生的.使用JSLT标签的目的就是不希望在jsp页面中出现java逻辑代码 2 JSTL标签库分类 核心标 ...

  6. JSP(待更新)

    1.概念: 所谓JSP就是在HTML中嵌入大量的java代码而已.

  7. jsp表单更新数据库

    和插入语句相似,表单传值,在另一个页面接收数据并连接数据库进行更新: 语句如下: <% request.setCharacterEncoding("UTF-8"); Stri ...

  8. CTFd+ubuntu service搭建等待更新

    CTFd是一款基于Apache2.0的协议的开源CTF平台,最新版本目前为1.20.该平台功能强大,基本上能够满足目前的CTF竞赛需求,同时,该平台提供了强大的插件功能,可以自己进行插件开发实现自己的 ...

  9. 《Servlet与JSP核心编程》读书笔记

    这本书实际是我进入JavaWeb开发的入门书籍,而且是日常碰到一些技术问题需要确认时的参考书,前一段时间在解决一个他人的问题时,我突然发现我的第一遍阅读对这本书的内容的理解还不够透彻,所以又开始N多年 ...

随机推荐

  1. 总结:spring 的ioc 知识点

    1. spring ioc的优点    解耦,对象的创建不直接在代码里生成(不方便修改) ,交由容器创建.... 2.IOC 和 DI 的区别        依赖关系:A类 里 要调用B类  如 se ...

  2. 一步步教你css3手风琴效果的实现

    什么是手风琴效果? 首先我们先来看一段动画,如下图所示: 在上面动画中,我们不难发现,一排照片正常排列,当我鼠标移上(:hover)时,照片会变大显示并且把其它照片挤小.那么在鼠标来回移动的过程中,画 ...

  3. sass基础学习

    2015.6.281.安装ruby2.运行gem安装sass-->gem install sass3.编译命令行sass --watch 文件路径/test.scss:编译后文件路径/test. ...

  4. css3中的提供的元素变化属性

    通过 CSS3 提供的2d元素转换,我们能够对元素进行移动.缩放.转动.拉长或拉伸. css3中为我们 提供了: translate() rotate() scale() skew() matrix( ...

  5. USB 调试工具(python2.7 + Tkinter + pyusb/pywinusb)

    项目地址:USB-HID-TEST 整体预览图(win8下的效果): ====================== 项目结构: COM --hidHelper.py --usbHelper.py UI ...

  6. PHP数组相加

    + 运算符把右边的数组元素(除去键值与左边的数组元素相同的那些元素)附加到左边的数组后面,但是重复的键值不会被覆盖 ,array_merge()此时会覆盖掉前面相同键名的值 如: $a=array(' ...

  7. 作为一个新人,怎样学习嵌入式Linux,(韦东山)

    很早以前在网上看到的韦东山老师写的文章,复制到自己的博客,方便自己以后看. 在学习嵌入式Linux之前,肯定要有C语言基础.汇编基础有没有无所谓(就那么几条汇编指令,用到了一看就会). C语言要学到什 ...

  8. 搭建rac对单实例的MAA

    一:实验环境 系统:redhat 4 三台计算机rac1,rac2,dg. --其中rac为主库,单实例为备库 已在虚拟机里搭建好集群环境(rac1,rac2); dg计算机里还没有建任何数据库(只安 ...

  9. SSH登陆错误 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

    今天遇到问题,删除文件即搞定!! ~~~~~~~~~~~~~~ SSH登陆错误 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!   Connectio ...

  10. ASM-51 宏汇编使用手册

    A51与ASM51基本相同   ASM-51 宏汇编主要用来开发Inter8051系列单片机,它具有宏处理,数据处理,列表处理和条件处理等多种功能.源程序的编写完全采用 Inter标准助记符和行格式. ...