jsp是什么?

JSP:Java Server Pages java服务器端页面

*可以理解为 一个特殊的页面,其中既可以直接定义html标签,又可以定义java代码
*用于简化书写
<% %>java代码片段,用于定义java (java方法内能写什么,这里就能写什么)
<%= %>java表达式,用于输出一个表达式或变量的结果 print()输出语句中能写什么,这里就能写什么
<%! %>声明,用户创建类的成员变量和方法 (java类中可以写什么,这里就可以写什么)
jsp中注释:
<%-- --%>

jsp原理: !!! 本质就是一个servlet类!!!! 内部实现了打印html标签的功能,所以可以直接写标签。在servlet里拼标签可以达到一样的效果
1、当jsp页面第一次被访问时,tomcat服务器会把jsp编译成.java文件(就是一个servlet类)
(java文件在work-catalina-localhost-项目名-org-apache-jsp-)
2、把.java文件编译成.class文件
3、创建对象
4、调用service方法,输出html
5、如果以后再次请求同一个jsp,直接调用service方法,不再重复上面4个步骤
当我们访问jsp,jsp中有html标签和java代码,tomcat会将jsp生成一个servlet文件,其实就是一个.java文件,
并生成一个.class文件tomcat会调用jspService方法,通过out对象拼成html文件返回浏览器解析。

jsp九大内置对象:
1.out(JspWrite)
2.exception(Throwable) 不是每个页面都有的,设置了errorPage才有
3.request(HttpServletRequest)
4.response(HttpServletResponse)
5.session(HttpSession)
6.config(ServletConfig)
7.application(ServletContext)
8.pageContext(PageContext) 最常用
9.page(Object)

jsp三大指令:page、include、taglib
指令的格式:<%@ 指令名 属性1="" 属性2=""...%>
1.page指令:页面
(1)属性pageEncoding,指定当前jsp页面的编码,这个编码是给服务器用的
用来使用此编码把jsp编译成.java文件
(2)属性contentType,与rspsonse.setContentType("text/html;charset=utf-8")
作用相同,一是设置字符流的编码,二是设置content-type响应头
(3)属性pageEncoding和contentType,如果只写一个时,那么另一个的值与出现的值相同
一般我们至少写一个,默认编码是iso-8859-1
(4)属性import="" 导包
(5)属性errorPage和isErrorPage
errorPage="" 出错页面 出错了就跳转到这个页面
isErrorPage=true/false
isErrorPage:指定当前页面是否为处理错误的页面
true:这个页面会设置状态码为500,并且这个页面中可以使用
9大内容对象的exception对象
出错跳转错误页面还可以在web.xml中配置
(6)session = true/false当前页面是否支持session,如果为false,那么当前页面
没有session内置对象,默认是true
(7)isTreadSaf当前页面是否支持并发访问
(8)language当前页面编译后的语言类型,默认为java
(9)autoFlush:当前页面输出流缓冲区满时,是否自动刷新,默认true
(10)buffer设置当前页面缓存区的大小
(11)info:信息

2.include指令:静态包含 <%@ include %> 例:<%@include file="dex.jsp" %>
静态包含和动态包含的区别
静态包含是在jsp编译成.java文件前完成的合并,同时生成一个.java文件
作用:对于多个jsp中共同的内容,可以独立到一个.jsp中,通过inclde指令包含即可
RequestDispatcher.include是一个方法,它只是把两个servlet的响应数据
在运行时合并并输出客户端

jsp动作标签:forward include,是由tomcat解释执行,与java代码一样,都是在服务器端执行
<jsp:forward>转发,它与RequestDispatcher的forward方法的用法一样
<jsp:include>包含,它与RequestDispatcher的include方法的用法一样

3.taglib指令:导入标签库
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
导入jstl标签库,el表达式使用例子:${fn:length("abc") }
也可以自定义函数

javaweb入门-----jsp概念的更多相关文章

  1. JavaWeb入门——背景知识

    JavaWeb入门——背景知识 摘要:本文主要介绍了Web服务器的相关知识. 概念 什么是JavaWeb JavaWeb,是用Java技术来解决相关Web互联网领域的技术的总称.Web包括:Web服务 ...

  2. JavaWeb(一)JavaWeb应用的概念

    JavaWeb应用的概念 在Sun的Java Servlet规范中,对Java Web应用作了这样定义:"Java Web应用由一组Servlet.HTML页.类.以及其它可以被绑定的资源构 ...

  3. JavaWeb入门——在Linux环境下安装Tomcat服务器

    JavaWeb入门——在Linux环境下安装Tomcat服务器 摘要:本文主要学习了如何在Linux环境下安装Tomcat服务器. 准备工作 检查Java环境变量 检查系统是否配置了Java的环境变量 ...

  4. JavaWeb入门——在Windows环境下安装Tomcat服务器

    JavaWeb入门——在Windows环境下安装Tomcat服务器 摘要:本文主要学习如何在Windows环境中下载并安装Tomcat服务器. 下载 获取安装包 推荐去官网上下载Tomcat: htt ...

  5. javaweb 与jsp页面的交互流程 (初次接触时写)

    javaweb 与jsp页面的交互流程 javaweb项目目录 1. javaweb项目的一般目录: 2. jsp 页面一般情况下放在 top(前台页面) back(后台页面) 3. 后台代码 放在s ...

  6. MongoDB入门必读(概念与实战并重)

    MongoDB入门必读(概念与实战并重) 一.概述 MongoDB是一个基于分布式文件存储的数据库开源项目.由C++语言编写.旨在为WEB应用提供可护展的高性能数据存储解决方案. MongoDB是一个 ...

  7. JavaWeb入门——Tomcat的目录结构

    JavaWeb入门——Tomcat的目录结构 摘要:本文主要了解了Tomcat的目录结构. 目录结构 打开Tomcat的目录,可以看到如下文件和文件夹: bin目录 该目录下存放的是二进制可执行文件. ...

  8. 【转帖】H5 手机 App 开发入门:概念篇

    H5 手机 App 开发入门:概念篇 http://www.ruanyifeng.com/blog/2019/12/hybrid-app-concepts.html 作者: 阮一峰 日期: 2019年 ...

  9. Git 入门:概念、原理、使用

    出处: git入门:概念.原理.使用 git和Github 概念 Git --- 版本控制工具(命令). git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理.git ...

随机推荐

  1. CentOS 7 使用 HP 打印机

    通常 hp 打印机应该是直接就能用的,但 centos 7 就一直遇到 printing job stopped 的情况.查看 http://localhost:631/printers/ 并没什么用 ...

  2. Java多线程(2)线程锁

    多线程访问同一个资源进行读写操作,就很容易出一些问题(比如我们常见的读者写者,生产者消费者模型)所以我们会选择对他们设置信号量或者加锁,来限制同一个时刻只有一个线程对某个对象进行操作. 多线程是一个蛮 ...

  3. Presto 0.22.0 安装记录

    1. 下载 & 解压 # 下载 wget https://repo1.maven.org/maven2/com/facebook/presto/presto-server/0.220/pres ...

  4. c#中bin,obj,properties文件夹的作用

    Bin 目录用来存放编译的结果,bin是二进制binrary的英文缩写,因为最初C编译的程序文件都是二进制文件,它有Debug和Release两个版本,分别对应的文件夹为bin/Debug和bin/R ...

  5. Oracle数据库----函数

    --大小写控制函数--upperselect * from emp where job = upper('salesman'); --lowerselect * from emp where lowe ...

  6. 【POJ - 3050】Hopscotch (dfs+回溯)

    -->Hopscotch 这接写中文了 Descriptions: 奶牛们以一种独特的方式玩孩子们的跳房子游戏. 奶牛们创造了一个5x5的格子 他们熟练地跳上其中的一个格子,可以前后左右地跳(不 ...

  7. 各类最短路算法基本模板-C++

    原文转自:https://blog.csdn.net/changjiale110/article/details/77394650 感谢. #define Max 0x3f3f3f3f #define ...

  8. VNC服务配置

    Windows通过VNC远程桌面访问Ubuntu设备:一个WIN7的机器,一个系统为Ubuntu的机器 (二者可以均可为虚拟机或实体机) 目的:在Windows系统上通过VNC远程访问Ubuntu. ...

  9. HTML入门编写

    今天给大家带来的是HTML初步讲解(即第一趴). 问题区: 1.什么是HTML? 先来个百度解说压阵. html,全称Hypertext Markup Language,也就是"超文本链接标 ...

  10. 微服务SpringCloud之熔断监控Hystrix Dashboard和Turbine

    Hystrix-dashboard是一款针对Hystrix进行实时监控的工具,通过Hystrix Dashboard我们可以在直观地看到各Hystrix Command的请求响应时间, 请求成功率等数 ...