JSP(Java sever pages):一种用于开发动态web页面(资源)的技术。

jsp页面是在服务器上运行的一个页面,一个jsp页面就是一个类。写jsp就像在写html,jsp允许在页面中编写java代码,并允许开发人员在页面中获取request,response等web常用开发对象,实现与浏览器的交互。

JSP原理:

JSP 的执行过程:

(1) 客户端发出Request (请求);
(2) JSP Container 将JSP 翻译成Servlet 的源代码;
(3) 将产生的Servlet 的源代码经过编译后,加载到内存执行;
(4) 把结果Response (响应)发送至客户端。

JSP和Servlet的执行效率相差不大,只是第一次执行JSP页面时需要进行编译。
一般人都会以为JSP 的执行性能会和Servlet 相差很多,其实执行性能上的差别只在第一次的执行。因为JSP 在执行第一次后,会被编译成Servlet 的类文件,即为XXX.class,当再重复调用执行时,就直接执行第一次所产生的Servlet,而不用再重新把JSP编译成Servlet。因此,除了第一次的编译会花较久的时间之外,之后JSP 和Servlet 的执行速度就几乎相同了。
在执行JSP 网页时,通常可分为两个时期:转译时期(Translation Time)和请求时期(Request Time) 。

1. JSP文件先要被服务器翻译成Java文件(Servlet),在tomcat中翻译后的Java文件在tomcat下的 work/Catalina /localhost 中相应名字的应用目录里。
2. 编译成Java(Servlet)文件
3. 运行.class文件
Tomcat的全局配置文件$CATALINA_HOME/conf/web.xml
在Tomcat下的conf目录中的web.xml是服务器全局的配置文件,其中要想关闭列表显示叫要把
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
修改为true

JSP的组成元素:

1, 指令
page指令

<%@ page ..........%>

include指令静态引入,引入其他的网页,相当于将两个页面合成一个。公用一个request对象。

页面跳转可以直接在页面后面加?变量名=值(test.jsp?name=admin) 的方式传参数,这种静态包含不可以。
taglib指令---标准标签库(JSTL),Taglib指令用于在JSP页面中导入标签库

errorPage---定义当当前页面出错时跳转的页面--如果当前页面出错则跳转到该页面,注意,需要在出现错误的提醒界面有   isErrorPage="true"

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" errorPage="error.jsp"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" isErrorPage="true"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>出现错误的提醒页面</h1>
<h3><%=exception.getMessage() %></h3>
</body>
</html>

2, 表达式
<%=变量名%>

<%=sum %>

3, 脚本
<% 代码内容 %>

<%
    for(int i=1;i<=5;i++){
        sum=sum*i;
    }
%>

单个脚本片段的Java语句可以是不完整的,但是整个页面中组合的Java语句必须是完整的。

4, 声明
<%! 代码声明 %>

可用于定义jsp页面转换成servlet程序的静态代码块,成员方法和变量。可以单独定义在一个声明中,也可以定义到同一个声明中。声明中不能使用九大内置对象。

<%!int sum=1;
%>

5, 注释

JSP注释:<%-- … --%>,转化阶段消失,只能被开发人员看到

JAVA注释://、/**/、/***/,编译阶段消失

HTML注释:<!-- … -->, 不会消失,在页面中也能看到

6, 一些静态内容

jsp中html内容称为模板元素,jsp模板元素定义了网页基本骨架,即定义了页面结构和外观。

JavaWeb(一)JSP基础组成的更多相关文章

  1. JavaWeb chapter9 JSP基础

    1.  Servlet的缺陷 一个动态网页中,大部分内容都是HTML代码等固定不变的内容,编写和修改HTML非常不方便,令人厌恶: 部署Servlet是繁琐而且容易出错的任务:(Servlet3.0规 ...

  2. JavaWeb之 JSP基础

    什么是JSP JSP的全称是java server page, java服务页面.是提供java服务的页面~ 那么和Servlet有什么区别呢?JSP的页面既可以写java代码~也可以写html代码哦 ...

  3. JAVAWeb入门之JSP基础知识

    也是到了考试周,很多课都结了,准备去学点新东西.随后就开始自学JAVAWeb. 要学习JAVAWeb,首先需下面的知识: a)      HTML/CSS/JS(前端页面),XML,JSON,vue ...

  4. JavaWeb基础-Jsp基础语法

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

  5. Java学习-033-JavaWeb_002 -- 网页标记语言JSP基础知识

    JSP 是 Sun 公司提倡的一门网页技术标准.在 HTML 文件中,加入 Java 代码就构成了 JSP 网页,当 Web 服务器访问 JSP 请求的时候,首先执行其中的 Java 程序源码,然后以 ...

  6. JavaEE系列之(一)JSP基础知识详解

    一.JSP基础语法     1.JSP简介        JSP(Java Server Pages),其根本是一个简化的Servlet设计,它实现了在Java中使用HTML标签.JSP是一种动态网页 ...

  7. JSP基础笔记

    主要内容:1. JSP基础2. Cookie3. HttpSession ================================ JSP基础 1. jsp的作用: * Servlet: &g ...

  8. JavaWeb开发技术基础概念回顾篇

    JavaWeb开发技术基础概念回顾篇 第一章 动态网页开发技术概述 1.JSP技术:JSP是Java Server Page的缩写,指的是基于Java服务器端动态网页. 2.JSP的运行原理:当用户第 ...

  9. Java匹马行天下之JavaWeb核心技术——JSP

    JSP动态网页技术 一.JavaWeb简介 一.什么是JavaWeb? JavaWeb是用Java技术来解决相关web互联网领域的技术总称. 需要在特定的web服务器上运行,分为web服务器和web客 ...

  10. Servlet&jsp基础:第五部分

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

随机推荐

  1. Java基础语法<一> 数据类型&运算符

    1 数据类型   1.1 整型 类型 存储需求 取值范围 int 4字节 -21 4748 3648 – 21 4748 3647 232 short 2字节 -32768-32767 216 lon ...

  2. 入职15天,Angular2 小记!

    ng 配置@ngModule({ imports: [ BrowserModule ], //导入模块 declarations: [ AppComponent ], //导入组件 providers ...

  3. 事务之使用JDBC进行事务的操作

    本篇讲述数据库中非常重要的事务概念和如何使用MySQL命令行窗口来进行数据库的事务操作.下一篇会讲述如何使用JDBC进行数据库的事务操作. 事务是指数据库中的一组逻辑操作,这个操作的特点就是在该组逻辑 ...

  4. C语言代码训练(一)

    今天我们先来讲解一道C语言的经典例题,也是从零开始系列中的一道课后练习题. 请用控制台程序绘制如下图案. 循环经典例题 分析情况 这个题目是要求打印30行"*",每行打印的个数不同 ...

  5. (转)log4j(三)——如何控制不同级别的日志信息的输出?

    一:测试环境与log4j(一)——为什么要使用log4j?一样,这里不再重述 1 老规矩,先来个栗子,然后再聊聊感受 package test.log4j.test3; import org.apac ...

  6. 【Django】学习资料

    一.基础 http://www.ibm.com/developerworks/cn/linux/l-django/ 安装.数据库连接.url路由转发 http://djangobook.py3k.cn ...

  7. 控制反转(IoC)-解析与实现

    控制反转(Inversion of Control)缩写:IoC是面向对象编程中框架级别里的一个重要的概念, 可以说Spring框架的核心就是基于IoC原理的. 这个概念到底是什么呢? 这么讲吧,一个 ...

  8. JStorm与Storm源码分析(二)--任务分配,assignment

    mk-assignments主要功能就是产生Executor与节点+端口的对应关系,将Executor分配到某个节点的某个端口上,以及进行相应的调度处理.代码注释如下: ;;参数nimbus为nimb ...

  9. iptables中DNAT的配置方法

    1.一对一流量完全DNAT 首先说一下网络环境,普通主机一台做防火墙用,网卡两块 eth0 192.168.0.1  内网 eth1 202.202.202.1 外网 内网中一台主机 192.168. ...

  10. java对Microsoft Document的操作--->对Excel的操作

    起初,自己想对网站上爬取一些数据来写到Excel表格中,便在网上找了找java操作Excel接口,了解到Apache的POI接口可以对微软的文档进行操作,WIKI搜索的结果如下, HSSF - 提供读 ...