jsp的概述、指令元素、动作元素

本文详细介绍了JSP(Java Server Pages)的基础知识,包括它是什么、运行机制、与Servlet的关系以及生命周期。重点讲解了JSP的生命周期五个阶段:编译、初始化、执行、销毁和客户端访问特点。此外,还探讨了JSP页面中嵌入Java代码的三种方式(表达式、脚本和声明)以及指令元素和动作元素的作用。JSP作为动态网页技术,其动态生成HTML的过程以及与服务器和浏览器的交互是理解JSP的关键。
摘要由CSDN通过智能技术生成

jsp day1

1.jsp是什么

jsp全称Java Server Pages,是一种动态网页开发技术。
jsp servlet php asp等属于动态网页技术
jsp页面是以.jsp结尾的文件


.html文件是静态页面
.jsp 文件是动态页面


jsp页面允许我们在html代码中嵌入java代码,这样我们就可以在html中使用java代码来完成的功能了

简单的理解,jsp就是html页面+java代码

但是jsp中能写的内容还不止这些,可以包含如下内容:

  1. html标签
  2. css
  3. javascript
  4. java代码
  5. EL表达式
  6. 引入并使用其他标签库,例如jstl标签库、struts2标签库、spring框架标签库等

所以jsp页面里面除了能写之前在html里面写东西之外,还可以写很多和java相关的对象,java代码、el表达式、动态标签库等(这些对象的本质都是执行java代码)

注意:jsp页面中可以只有java代码,也可以一句java代码也没有


使用jsp页面完成一个HelloWorld程序

2.jsp的运行

浏览器可以直接运行html页面,但是不能直接运行jsp页面,jsp是需要在web容器中运行(拥有jsp引擎,jasper.jar),例如tomcat服务器
所以jsp是运行在服务器端的,运行完之后,把动态生成的html页面再使用io流写回给浏览器,浏览器接收并且解析后再呈现出来效果。

3.jsp和servlet的关系

简单的讲,一个jsp页面就是一个servlet

jsp页面第一次被访问的时候,会被tomcat服务器编译成一个java类,这个java默认继承HttpJspBase类,而HttpJspBase类是HttpServlet的子类。

我们编写的jsp页面最终就被tomcat服务器编译成了一个HttpServlet的子类,所以说jsp本身就是一个servlet,那么jsp为什么是需要运行在tomcat服务器中原因也就很好理解了。

jsp页面被tomcat服务器编译成的java文件及其class文件保存在tomcat服务器里面的work目录中,在这里的代码中,我们还可以看见它是如何使用io流把生成的html页面代码一行一行写回给浏览器的。

tomcat中lib目录中的jasper.jar相关api里面封装了一些操作,可以把jsp页面编译为java文件以及class文件
例如

  1. 桌面上手动有一个web项目:web_test
  2. 项目中有一个jsp页面:test.jsp
  3. 运行下面java代码把web项目中的jsp页面编译成java文件和class文件
    注意
    web项目的基本结构

运行环境

  1. 如果是在web项目运行下面代码,需要额外加入俩个jar包:(web项目中已经有了tomcat中lib里面的jar了)
    ant-1.10.6.jar
    tomcat-juli-8.5.38.jar

  2. 如果是在java项目中运行下面代码,至少需要加入以下jar包:
    tomcat-juli-8.5.38.jar
    ant-1.10.6.jar
    jasper.jar
    servlet-api.jar
    tomcat-api.jar
    tomcat-util.jar
    jsp-api.jar
    el-api.jar
    ecj-4.6.3.jar

    示例

	public class TestCompiler {
   

		public void jspcTest(){
     
			try {
     
				JspC jspc = new JspC();  
				
				//web应用的root目录  
				jspc.setUriroot("C:/Users/thinkpad/Desktop/web_test");
				//.java文件和.class文件的输出目录  
				jspc.setOutputDir("C:/Users/thinkpad/Desktop/web_test");
				//要编译的jsp
				jspc.setJspFiles("test.jsp");  
				
				//false或不指定的话只生成.java文件  
				jspc.setCompile(true);
				jspc.execute(); 
			}catch(Exception e){
   
				e.printStackTrace();
			}
		
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值