注意:访问JSP的过程

如果是第一次访问服务器,则翻译成一个对应的java文件(Servlet)。然后,再被编成 .class 文件并加载到内存中。

如果是以后访问,则直接调用内存中的jsp实例,所以第一次访问慢,以后访问会更加快。

四、3种JSP注释

1.

//this is

/*this

is*/

%>

2.

这是被注起来的内容

这是注起来的

--%>

3.

//这里的内容会发送到客户端,但浏览器不会显示

五、JSP脚本元素(3种)

1.

1) 代码段 它要严格遵守java语言规范,需要导包的要导包 和 之间的java代码是可以互相访问的,相当于写在一个 里

2.

2) 声明 //注意

}%>

3.

3) 表达式 //注意

例子: //和下面的写法等价

附:myeclipse 生成的jsp页面,解说:

(在实际应用中,不需要的我们可以删除它)

//解说:page指令,import用来导包的,pageEncoding指当前页面编码方式

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";//上下对齐解说://http//localhost//8080//shop-admin//上面最后生成的结果:->http://localhost:8080/shop-admin/

%>

//解说:言档类型声明

//解说:

My JSP 'test.jsp' starting page

//解说:不缓存

//解说:不缓存

//解说:不缓存

//解说:给网络机器人用来搜索的关键字

六、JSP版本的计算器(代码示例)

//接收参数

String num1 =request.getParameter("num1");

String num2=request.getParameter("num2");

String flag=request.getParameter("flag");int n_num1=0;int n_num2=0;int result=0;if(num1!=null&&num2!=null&&flag!=null){//计算

n_num1=Integer.parseInt(num1);

n_num2=Integer.parseInt(num2);if(flag.equals("+")){

result=n_num1+n_num2;

}else if(flag.equals("-")){

result=n_num1-n_num2;

}else if(flag.equals("*")){

result=n_num1*n_num2;

}else if(flag.equals("/")){

result=n_num1/n_num2;

}

out.print("

计算结果是 "+result+"

");

}//输出结果

%>

请输入第一个数:

>+

>-

>*

>/

请输入第二个数:

七、MVC模式

M  ->mode 模型层 -> javaBeen  (比如 UserDao,UserInfo)

V  ->view 视图层  -> html , jsp

C  ->controller 控制层  ->由Servlet担当

八、JSP指令

指令是为JSP引擎而设计的,它不直接产生任何输出,只是告诉引擎如何处理JSP页中的其余部分。指令必须嵌套在 中,其本语法如下

,其中属性名是大小写敏感的

//例子

* JSP中的指令一共有三种

-- page   //

-- include   // 用来包含别的页面

-- tablib   //   用来指定标签库

* page 指令

-- Page 用来定义jsp页面的各属性,几乎所有的页面都会出现page属性

-- 无论page属性出现在什么位置,它的作用都是整个jsp页面

-- 一个页面可以包含多任意数量的page指令

* page 指令的属性

--language :jsp页面采用的语言,默认的是”java”

--contentType: 用于设置响应正文的 mime 类型(即指定Content-Type响应头字段的值),和说明

JSP文件中的文本内容的字符集编码. content-Type  默认的mime 类型是 text/html,字符集是”iso8859-1”

JSP引擎会根据page指令的contentType 属性生成相应调用ServletRresponse.setContentType 方法的语句

--extends:在当前的jsp页面中所用到的类的基类。(一般不使用)

--import:当前jsp页面所用到的java类。

--session:当前的jsp页面是否使用会话。默认的是true.(不要修改它)

如果将其设为false,则JSP翻译成的Servlet将不自动预先创建好Session隐式对象

--buffer:指定了out 变量所使用的缓存的大小。默认的是8K.

--autoFlush :当缓冲区满的时候,是否自动将值输出至jsp页面。默认的是true.

--errorPage:用来处理已经发生的,但当前页面没有捕获的异常。例如要求有输入参数,但是没有输入.

它的属性值必须使用相对路径,如果以/开头,表示想对于当前web应用程序的根目录,而不是站点根目录

--isErrorPage: 设置当前页面是否是专门用于处理其他页面未捕异常的页面,默认值为false

只有明确的将 isErrorPage 设为true,当前页面才能用做异常处理,才能拿到exception隐式对象

==小例子: errorPage 指令 的应用

在要捕捉异常的页面中:

-- 在异常处理页面中

--

--

--pageEncoding :指定jsp源文件中的字符所使用的字符集编码

pageEncoding 指jsp文件本身的编码

contentType="text/html;charset=gkb" 这里的charset 指的是服务器发送给客户端时的内容编码

注意:JSP要经过两次编码

==第一阶段,将jsp编译成 .java 它会根据pageEncoding来读取jsp 结果是由指定的编码方案翻译成统一的UTF-8 的java源码(即.java)

如果pageEncoding设定错的话,将会出现中文乱码

==第二阶段 就是由java源码到java的字节码的编译,不管JSP文件在编写的时候用的是什么编码,最后这个阶段的结果全是UTF-8 java源码

* include 指令

include 指令  是静态导入

用于通知JSP引警在翻译当前JSP页面时将其他文件中的内容合并进当前JSP页面转换成的Servlet源文件中,这种在源文件级别进行的引入称为静态引入,当前JSP页面和静态引入的页面紧密结合成一个Servlet。

1 被引入的文件必须尊循JSP语法,可以包含静态HTML,JSP脚本元素,JSP指令 和 jsp行为元素等普通JSP页面所具有的一切内容

2 被引入的文件可以使用任意扩展名,(就是叫.html也行), 为了见名知义,jsp规范建议使用.jspf (jsp fragments) 作为静态引入文件的扩展名

3 在将JSP文件翻译成Servlet 源文件时,JSP引擎将合并被引入的文件与当前JSP页面中的指令元素,所以,除了pageEncoding  和 import ,page指令的其他属性不能在这两个页面中有不同的设置

4 除了指令元素外,要引入的文件中的所有其他元素都被转换成相应的java代码,然后插入进当前

JSP 页面所翻译成的Servlet文件中,插入的位置和 include 指令 在当前jsp 页面中的位置保持一致

5 两者是在 JSP引擎翻译成Servlet的过程中进行合并的,而不是先合并成源文件再翻译

6 file 属性设置的路径必须是相对路径,如果以 / 开头,指的是相对于当前web应用程序的根目录,而不是 站点根目录

7 出现在一个 JSP 页面中的 include 指令的数量不受限制

bbb
数据

* taglib 指令

通知 JSP 容器,页面依赖于自定义标记库

jsp需要多少java基础_Java基础——JSP(一)相关推荐

  1. 黑马程序员全套Java教程_Java基础教程_异常(含扩展)(二十三)

    黑马程序员全套Java教程_Java基础教程_异常(含扩展)(二十三) 1.1 异常概述与异常体系结构 1.2 JVM遇到异常时的默认处理方案 1.3 异常处理 1.4 异常处理之try--catch ...

  2. java 必备_Java基础必备

    标签: 写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能分享给刚刚入门的Java程序员和打算入Java开发这个行当的准新手们,希 ...

  3. cmd运行java文件_Java基础 前传

    微信搜一搜秃然编程 一.关于MS-DOS MS-DOS(微软磁盘操作系统),是美国微软公司提供的磁盘操作系统.在美国微软公司推出Windows1.0.Windows3.0.1995年8月24日推出的操 ...

  4. java基本命令_java基础篇 快捷键 常见Dos命令等等

    (一) 计算机基础介绍 (二) jdk 安装 (三) 环境变量介绍及配置 (四) HelloWorld 实现 一 . 计算机概述 (1) 计算机 计算机(computer)俗称电脑,是一种用于高速计算 ...

  5. java嵌套循环_java基础之嵌套循环

    一. for循环双层嵌套 首先内层循环属于外层循环循环体的一部分,当循环体执行完以后外层循环才进入第二次循环,此过程中内层循环需要执行符合条件的完整循环.(外循环控制行数,内循环控制每一行的个数) f ...

  6. java三板斧_JAVA基础学习 三板斧

    JAVA基础学习 -1 三板斧 1. 引子 最近因为工作需要,开始学习JAVA,我之前常用的编程语言是C,C#,C++,基本没有用JAVA,JAVA需要从基础开始学习了. JAVA是从C++优化而来: ...

  7. jsp里写java代码报错,jsp里写java代码报错

    jsp里写java代码报错 [2021-02-11 06:42:03]  简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace("/ ...

  8. java练习_Java基础笔试练习(一)

    Java基础笔试练习(一) 1. 若在某一个类定义中定义有如下的方法: abstract void performDial( ); 该方法属于() ? A.本地方法 B.最终方法 C.静态方法 D.抽 ...

  9. java大全_Java基础知识大全(一)

    一.基础知识: 1.JVM.JRE和JDK的区别: JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性. java语言是跨平台,jvm不是跨平台的. J ...

最新文章

  1. 越南qq飞车服务器不稳定,qq飞车帧数不稳定,有时候玩的很顺,有时候画面一顿一顿,帧数不稳,怎么处理?...
  2. linux用户态驱动--VIFIO、IOMMU、UIO(二)
  3. 【Arduino】Nano功能引脚 PWM IIC UART 中断
  4. 设计模式理解:策略模式
  5. PowerSploit脚本
  6. python抢货程序_写个Python程序上下班抢个顺风单
  7. gps测速仪手机版下载_银豹收银系统手机版下载-银豹收银系统手机安卓版APP下载v2.0.1.2...
  8. 硬核黑科技告诉你,漫威十年到底有多少个角色?
  9. Spark集群 + Akka + Kafka + Scala 开发(2) : 开发一个Spark应用
  10. 《javascript语言精髓与编程实践》--原型继承笔记
  11. Linux操作系统的密码破解大全
  12. 面向对象基础(继承类,抽象方法,接口,委托和事件)
  13. How To Read C Declarations
  14. 基于jsp+mysql+Spring+SpringMVC+mybatis的ssm学生网上请假系统
  15. matlab平面电磁波入射_MATLAB仿真平面电磁波在不同媒介分界面上的入射
  16. SOLD2算法详解之2: 特征点检测,点NMS(CVPR 2021)
  17. outlook连接谷歌企业邮箱(转)
  18. 物流项目管理的团队建设 (zt)
  19. 苹果装系统提示未能与恢复服务器,恢复系统未能与服务器取得联系 | 手游网游页游攻略大全...
  20. 允许使用计算机的软件,解决win10“你的电脑设置仅允许安装来自应用商店的应用”的方法...

热门文章

  1. 行动力决定了一个人的成败,有想法,就去做! C#的内存管理原理解析+标准Dispose模式的实现
  2. 你真的理解CAP理论吗?
  3. 哪一个不是linux常用的shell,Linux下查看使用的是哪种shell的方法汇总
  4. ArcGIS实验教程——实验三十九:ArcGIS多元分类(ISO聚类分析、最大似然分类、主成分分析)案例教程
  5. ArcGIS实验教程——实验三:矢量数据采集与编辑(矢量化)
  6. linux c之用fwrite和fread实现文件的复制
  7. 用非递归方式实现二叉树中序遍历
  8. Hibernate 持久化状态、HQL语句大全(转)
  9. php str_replace 字符串替换
  10. 使其正序排序 打印一串数字_JavaScript计数排序算法