2016-09-07 J2EE基础知识之JSP_部分
1.JSP(Java Server Pages)
java服务器页面,其根本是一个简化的Servlet设计。JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。
JSP是Servlet的扩展,JSP没出现之前,就已经出现了Servlet技术.Servlet是利用了"输出流",动态的生成了HTML页面。包括每一个HTML标签和所有的HTML页面中出现的内容,简单点说就是利用Servlet的输出流将HTML标签生成一个HTML页面。由于时间长了Servlet中包含了大量的HTML标签、大量的静态文本及格式等,导致了Servlet的开发效率非常低下.这时候JSP诞生了,JSP弥补了这种情况,JSP通过在标准的THML页面中嵌入JAVA代码,使其静态的部分无需JAVA程序控制,只有那些需要从数据库读取或需要动态生成的页面内容,才使用JAVA脚本控制。
2.JSP工作原理
当Web服务器接收到以.jsp为扩展名的URL的访问请求时,它把该访问交给JSP容器解释和执行JSP页面。
每个JSP页面第一次被访问时,JSP容器会将之转译为一个Servlet源程序(即一个以.java为扩展名文件),然后将这个Servlet源程序编译成class类文件,这样Web服务器中的Servlet容器便可以像执行普通的Servlet程序一样执行这个由Jsp页面转译、编译的Servlet源程序。
Tomcat 7.0.70将Jsp转译成的Servlet源程序和编译成的class类文件放在"Tomcat安装目录\work\Cata\主机名\工程名\org\apache\jsp"目录下。
JSP工作主要过程:
1)客户端发送请求;
2)Web服务器中JSP容器将请求的JSP转译为Servlet源代码;
3)Web服务器中Servlet容器编译该Servlet源代码;
4)Web服务器加载并执行编译后的class类文件;
5)将执行结果响应至客户端。
3.JSP组成部分
<%@page import="java.io.IOException"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'MyJsp.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<h2>第一种方法</h2>
<%
try{
out.print("<table>");
for(int i=1;i<10;i++){
out.print("<tr>");
for(int j=1;j<i+1;j++){
out.print("<td> "+j+"*"+i+"="+(i*j)+" </td>");
}
out.print("</tr>");
}
out.print("</table>");
}catch(IOException e){
e.printStackTrace();
}
%>
<h2>第二种方法</h2>
<table>
<% for(int i=1;i<10;i++){ %>
<tr>
<% for(int j=1;j<=i;j++){ %>
<td>
<%=j%>*<%=i%>=<%=i*j%>
</td>
<% } %>
</tr>
<% } %>
</table>
</body>
</html>
可以看出来JSP主要是由两部分组成:
静态部分:标准的HTML标签、静态的页面内容,这些内容与静态HTML页面相同.
动态部分:注释元素、脚本元素、指令元素、动作元素。
3.1 注释元素
1)HTML注释,显示在客户端代码中
<!--注释-->
2)JSP注释,不会显示在客户端源码,只在JSP中
<%--注释--%>
3)单行注释与多行注释
单行// 多行/** 注释 */
3.2 脚本元素
1)<% 代码 %>
写在代码可以像写在普通Servlet类中的service方法中一样,可以使用request与response等对象。
在JSP转译后,写在其中的代码便成为转译后的Servelt的service方法体的一部分。
2)<%! 方法和变量 %>
写在其中的方法和变量写在普通Servlet类中的成员方法和成员属性一样。
在JSP转译后,写在其中的方法和变量也成为了转译后的Servlet的实例方法和实例属性。
3)<%=内容%>
相当直接在页面输出该内容,相当于Servlet中的out.println(内容);
内容不包括单行注释。
2016-09-07 J2EE基础知识之JSP_部分的更多相关文章
- J2EE 基础知识积累
1. 面向对象的思维: 1. 有哪些类 那些对象 2. 这些类中,每种类应该具有某种属性和方法 3. 考虑类与类之间应该具有什么样的关系 3. 1. 成员变量可以使用java语言中 ...
- 2016-09-06 J2EE基础知识之不知
1.中间件.容器.Web服务器 1.1中间件 中间件是提供系统软件和应用软件之间连接的软件,以便于软件各部件之间的沟通.中间件处于操作系统和更高一级应用程序之间. J2EE提出的背景: 1)企业级应用 ...
- j2EE基础知识
感觉应付面试足够了 一.基本概念 1.1 WEB开发的相关知识 WEB用于表示Internet主机上供外界访问的资源. Intrenet上供外界访问Web资源分为 静态web资源:web页面中供人们浏 ...
- [转] J2EE基础知识
Servlet总结 阐述Servlet和CGI的区别? CGI的不足之处: Servlet的优点: Servlet接口中有哪些方法及Servlet生命周期探秘 get和post请求的区别 什么情况下调 ...
- 编程必备基础知识|计算机组成原理篇(09):CPU的控制器和运算器
计算机基础方面的知识,对于一些非科班出身的同学来讲,一直是他们心中的痛,而对于科班出身的同学,很多同学在工作之后,也意识到自身所学知识的不足与欠缺,想回头补补基础知识.关于计算机基础的课程很多,内容繁 ...
- RabbitMQ,Apache的ActiveMQ,阿里RocketMQ,Kafka,ZeroMQ,MetaMQ,Redis也可实现消息队列,RabbitMQ的应用场景以及基本原理介绍,RabbitMQ基础知识详解,RabbitMQ布曙
消息队列及常见消息队列介绍 2017-10-10 09:35操作系统/客户端/人脸识别 一.消息队列(MQ)概述 消息队列(Message Queue),是分布式系统中重要的组件,其通用的使用场景可以 ...
- Java基础知识了解
第一章 开发前言 一.java语言概述 Java是当下最流行的一种编程语言,至今有20年历史了.Java语言之父是James Gosling. Java是Sun公司(Stanford Universi ...
- C# 基础知识总结
要学好C#,基础知识的重要性不言而喻,现将常用到的一些基础进行总结,总结如下: 1. 数据类型转换: 强制类型转换(Chart--> int): char cr='A'; int i = ...
- Python array,list,dataframe索引切片操作 2016年07月19日——智浪文档
array,list,dataframe索引切片操作 2016年07月19日——智浪文档 list,一维,二维array,datafrme,loc.iloc.ix的简单探讨 Numpy数组的索引和切片 ...
随机推荐
- Oracle 基础查询知识点
1.Oracle 别名 如果非固定格式的列名可以如此 select last_name as name from employees 如果想显示固定格式的别名的话,则别名必须使用"" ...
- MySQL 查询结果以百分比显示
找了一些资料,然后我是用到了MySQL字符串处理中的两个函数concat()和left()1.[CONCAT(str1,str2,...) 返回来自于参数连结的字符串.如果任何参数是 NULL, 返 ...
- 机房收费系统之vb报表的模板的制作(一)
机房收费系统有报表的功能,报表对于我们来说有点陌生.这不是会计的事吗?怎么机房收费系统也參合进来了,事实上我们学会了报表的步骤.理解了代码后.报表变得不是非常难,世上无难事,仅仅怕肯登攀 ...
- sql中int字段实现百分比
首先: 用col*1.00 把int字段隐式转换成decimal类型. 然后: 用 round(col,2)来截取前两个小数前的数据 最后: 用 CONVERT(FLOAT,decimalNum)来转 ...
- SQLSERVER分布式事务使用实例
实例一 尊重原著作:本文参考自http://www.jb51.net/article/43540.htm --BEGIN DISTRIBUTED TRANSACTION [transactionnam ...
- WindowsService服务的C#实现
WindowsService(简称服务,下同)是目前做客户端软件后台运行功能的非常好的选择,本文基本解决了服务的创建和编写,代码控制服务的安装.卸载.启动.停止等,为服务传递参数,其他注意事项等 1. ...
- hdu 4639 Hehe (dp)
一道dp题,转移方程不是自己推出来的. 题目的意思是用‘qnmlgb’替换‘hehe’,可以替换也可以不替换,问有多少种情况. 如果结尾不是‘hehe’,那么dp[i]=dp[i-1],如果是是‘he ...
- hdu 5637 Transform 最短路
题目链接 异或的性质. 求s到t的最少步骤, 等价于求0到s^t的最少步骤. 通过最少的步骤达到s^t的状态, 等价于求0到s^t的最短路. 先将最短路求出来然后O(1)查询. #include &l ...
- codeforces 8D Two Friends 二分+ 判断三个圆是否有公共交点
题目链接 有两个人x, y, 现在在A点, x要直接去B点, y要先去C点在去B点, 现在给出x, y两人可以行走的最大距离T1, T2, 求出他们从A点出发之后, 可以走的最长的公共路径. 我们先看 ...
- erlang学习笔记(2)
函数%###geometry.erl###-module(geometry). 定义-export([area/1, function1/2, function2/0, ...]).area({rec ...