1.JSP简介
JSP全名为Java Server Pages,其根本是一个简化的Servlet设计,他实现了在Java当中使用HTML标签。Jsp是一种动态网页技术标准也是JAVAEE的标准。JSP与Servlet一样,是在服务器端执行的。
2.常见动态网站开发技术对比
常见动态网站开发技术对比:
Jsp:Java平台,安全性高,适合开发大型的,企业级的Web应用程序。(如:电子银行,网上证券交易所,中国移动网上营业厅,12306)
Asp.net:.Net平台,简单易学。但是安全性以及跨平台性差。(拖拉拽,可视化的组件开发)
Php:简单,高校,成本低开发周期短,特别适合中小型企业的Web应用开发。(其中一个黄金组合 LAMP:Linux + Apache + MySQL + PHP)
3. JSP页面元素简介及page指令
JSP页面常见元素构成,主要是这六个:静态内容、指令、表达式、小脚本、声明、注释。
下面页面元素分别从指令依次介绍。
Jsp指令一共有三种,分别是page指令、include指令(包含指令)、taglib指令
下面首先来说明一下page指令
快捷键alt+/ 出contentType
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!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>欢迎大家学习JAVAEE开发!</h1>
</body>
</html>
4.JSP注释
1.html注释:<!--htmi注释--> //客户端可见
2.jsp注释:<%--html注释--%> //客户端不可见
3.jsp脚本注释://单行注释 /*段落注释*/ //客户端不可见
5.JSP脚本
在JSP页面中执行java代码
语法格式<% java 代码%>
如<%
out.println("Hello World!");
%>
6. JSP声明
jsp声明:定义java方法或者变量。
语法:<%! java代码 %>
定义变量或者方法
在<%! %>中声明的变量,是全局变量
在<% %>中声明的变量,是局部变量
<%!
String s="我爱你?";
//定义一个字符串变量
//定义一个方法,返回两数之和
int add(int x,int y){
return x+y;
}
%>
7.JSP表达式
jsp用表达试调用jsp申明的函数或者属性
<% = 表达式 %>
表达式后面不需要加“;”号
JSP最终是编译成Servlet来执行的,在编译前会生成一个Java类:
- JSP声明<%! %>会被用来生成成员变量,如int i=i+1; String str = “张三”;
- JSP脚本<% %>会被用来生成JSPService方法里面的方法代码, 包括局部变量声明。
- JSP表达式也会被用来生成”输出到业务“的方法代码,例如out.print(“你好 + str)。
8.JSP页面生命周期
如果第一次访问foo.jsp页面,JSP引擎会将该jsp文件转化成一个Servlet(tomcat的work目录下):foo_jsp.java,生成字节码文件foo_jsp.class并执行jspInit()
然后servlet会常驻内存,对于每个请求都创建一个线程,执行jspService()
当用户第一次请求一个jsp页面时,首先被执行的方法是构造方法;
就是转换为class文件后,他会创建一个Servlet的实例,然后调用Servlet的构造方法,再调用jspInit()方法
(1)JSP引擎先把该JSP文件转换成一个Java源文件(Servlet),在转换时如果发现JSP文件有任何语法错误,转换过程将中断,并向服务端和客户端输出出错信息。
(2)如果转换成功,JSP引擎用javac把该Java源文件编译成相应的class文件。
(3)创建一个该Servlet(JSP页面的转换结果)的实例,该Servlet的jspInit()方法被执行,jspInit()方法在Servlet的生命周期中只被执行一次。
部署启动Tomcat之后在work目录中是不存在该项目的字节码文件,只有在访问之后才会生成;且在修改jsp文件后重新部署启动访问后,该字节码文件也会重新更新。
jspInit是一个初始化方法
9.通过两种方式打印99乘法表
一种是表达式调用方法输出,另一种是直接用脚本输出
<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"
%>
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h1>九九乘法表</h1>
<hr>
<%!
//利用表达式来调用输出九九乘法
String fangfa1(){
String s="";
for(int i=1;i<=9;i++){
for(int j=1;j<=i;j++){
s+=i+"*"+j+"="+i*j+" ";//空格
}
s+="<br>";//换行
}
return s;
}
%>
<%=fangfa1()%>
<% out.println(fangfa1()); %>>
</body>
</html>