javaweb学习笔记(十一):JSP(1)

版权声明:转载请注明出处: https://blog.csdn.net/qq_34774655/article/details/83582699

目录

jsp(1)

1.基本概念

1 .1Jsp的执行过程

1.2 JSP与servlet

2 JSP语法

2.1 Jsp模板

2.2 Jsp表达式

2.3 Jsp脚本

2.4 Jsp声明

2.5 Jsp注释


jsp(1)

1.基本概念

JSP全称Java Server Pages,是一种动态网页开发技术。其实就是servlet,所以jsp的运行必须交给tomcat服务器!jsp页面既可以写html代码,也可以写java代码。

它相比html而言,html只能为用户提供静态数据,而Jsp技术允许在页面中嵌套java代码,为用户提供动态数据。

相比servlet而言,servlet很难对数据进行排版,而jsp除了可以用java代码产生动态数据的同时,也很容易对数据进行排版。

tomcat的work目录:存放jsp运行时的临时文件

1 .1Jsp的执行过程

在MyEclipse的xioahua项目的webroot目录下,新建一个jsp文件:01.hello.jsp

<%@ 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>The first jsp  by xiao hua</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>
   	 第一个jsp文件 by xioa hua <br>
  </body>
</html>

浏览器访问http://localhost:8080/xiaohua/01.hello.jsp  

1)访问到01.hello.jsp页面,tomcat扫描到jsp文件,在%tomcat%/work把jsp文件翻译成java源文件

(01.hello.jsp   ->   _01_hello_jsp.java) (翻译)

2)tomcat服务器把java源文件编译成class字节码文件

  (_01_hello_jsp.java  ->  _01_hello_jsp.class)(编译)

3)tomcat服务器构造_01_hello_jsp类对象 (实例化)

4)tomcat服务器调用_01_hello_jsp类里面方法,返回内容显示到浏览器。

注:①第一次访问jsp:走(1(2(3(4)第n次访问jsp:只走(4)

jsp文件修改了或jsp的临时文件被删除了,要重新走走(1(2(3(4)的过程

1.2 JSP与servlet

jsp翻译成的java文件:

public final class _01_hello_jsp extends org.apache.jasper.runtime.HttpJspBase implements org.apache.jasper.runtime.JspSourceDependent {

HttpJspBase类(在tomcat 的lib目录下的jar包中)

public abstract class org.apache.jasper.runtime.HttpJspBase extends javax.servlet.http.HttpServlet implements javax.servlet.jsp.HttpJspPage {

Jsp就是一个servlet程序!servlet的技术可以用在jsp程序中jsp的技术并不是全部适用于servlet程序!

Servlet的生命周期:

1)构造方法(第1次访问)

2)init方法(第1次访问)

3)service方法

4)destroy方法

Jsp的生命周期

1)翻译: jsp->java文件

2)编译: java文件->class文件(servlet程序)

3)构造方法(第1次访问)

4)init方法(第1次访问):_jspInit()

5)service方法:_jspService()

6)destroy方法:_jspDestroy()

2 JSP语法

2.1 Jsp模板

JSP页面中的HTML内容称之为JSP模版元素。 JSP模版元素定义了网页的基本骨架,即定义了页面的结构和外观。

2.2 Jsp表达式

语法:<%= 变量或表达式 %>

作用: 向浏览器输出变量的值或表达式计算的结果

注:表达式会被翻译成 out.print(量或表达式 );  并放到_JspServicer()方法中。

2.3 Jsp脚本

语法:<% 多行java代码 %>

作用: 执行java代码

注:脚本中的java代码会被放在_jspService()方法中执行。

在两个或多个脚本片断之间可以嵌入文本、HTML标记和其他JSP元素。单个脚本片断中的Java语句可以是不完整的,但是,多个脚本片断组合后的结果必须是完整的Java语句,例如:

 

2.4 Jsp声明

语法:<%! 多行java代码 %>

Jsp声明中的java代码被翻译到_jspService方法的外面,即实例变量。所以,JSP声明可用于定义JSP页面转换成的Servlet程序的静态代码块、成员变量和方法。 多个静态代码块、变量和函数可以定义在一个JSP声明中,也可以分别单独定义在多个JSP声明中。JSP隐式对象的作用范围仅限于Servlet的_jspService方法,所以在JSP声明中不能使用这些隐式对象 例:

 

2.5 Jsp注释

语法: <%--  jsp注释  --%>

:在jsp页面的html注释会被翻译和执行。而jsp的注释不能被翻译和执行。

例:

<%@page import="java.text.SimpleDateFormat"%>
<%@ 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>jsp语法</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>
  <%-- jsp表达式  --%>
   今天是:<%= new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new java.util.Date()) %><br/>
  求和:<%= 3+5 %><br/>
  <%-- jsp脚本--%>
  <%
  	for(int i=1;i<5;i++){
  		
   %>
  		<H1>xiaohua</H1>
  <%
  	}
   %>
	<%--jsp声明 --%>
	<%!
		String name="xiaohua";
	 %>
	 打印输出:<%= name %><br/>

  </body>
</html>

 打开浏览器,查看:

猜你喜欢

转载自blog.csdn.net/qq_34774655/article/details/83582699