jsp需要多少java基础_Java基础——JSP(一)

注意:访问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 容器,页面依赖于自定义标记库

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/305305.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

宝贝,对不起

宝贝,对不起 题记:读在地震中用生命保护三个月大的婴儿的伟大母亲的遗言 “亲爱的宝贝,如果你能活着,请一定要记得我爱你”有感 谨以此文献给那逝去的伟大母亲和幸存下来坚强的宝贝 ——代腾飞 2008年5月21日 于成都 面对这突如其来的空前灾…

IT人喝酒,不同岗位不同姿势

这是Boss们的常用套路,频频举杯,给大家鼓劲加油,但是自己不喝。有的销售,业绩好,酒品也好,不管和自己人喝酒,还是和客户喝酒,都是一副舍我其谁的霸气!这是某些销售的写照…

国产CPU群雄逐鹿谁主沉浮

当下,国内(桌面、服务器)CPU与外商有较大差距,除了海光在性能上可能具有一拼之力外,其它国产CPU在商业市场上面对英特尔、AMD基本不具备竞争力,因而只能在篱笆墙内的市场角逐。而为了能够进入篱笆墙内的市场…

让网站性能最佳的34条黄金守则

Yahoo!的Exceptional Performance团队为改善Web性能带来最佳实践。他们为此进行了一系列的实验、开发了各种工具、写了大量的文章和博客并在各种会议上参与探讨。最佳实践的核心就是旨在提高网站性能。Excetional Performance团队总结出了一系列可以提高网站速度的方法。可以分…

蒙特卡罗方法入门

本文通过五个例子,介绍蒙特卡罗方法(Monte Carlo Method)。一、概述蒙特卡罗方法是一种计算方法。原理是通过大量随机样本,去了解一个系统,进而得到所要计算的值。它非常强大和灵活,又相当简单易懂&#xf…

面向业务的微服务消息总线

源宝导读:移动PaaS项目的异步场景中,随着订阅主题数的增加,会出现开发维护成本高、管理难度大等问题,本文将分享如何通过构建面向业务的微服务消息总线应对这些问题。一、背景面向业务的消息总线本质上是对消息队列进行二次封装&a…

java locale.us_JAVA实现国际化

## 1 Java国际化的思路Java程序的国际化的思路是将程序中的标签、提示等信息放在资源文件中,程序需要支持哪些国家、语言环境,就对应提供相应的资源文件。资源文件是key-value对,每个资源文件中的key是不变的,但value则随不同国家…

模拟时钟中断的产生及设计一个对时钟中断事件进行处理的模拟程序_操作系统基础6-支持操作系统的最基本的硬件-中断...

无论是桌面PC操作系统还是嵌入式都是多任务的操作系统,而很遗憾,处理器往往是单个的,即便在硬件成本逐渐下降,而硬件配置直线上升的今天,PC机的核心可能已经达到4核心,8核心&#xf…

XMLhttp学习应用

Client.htm页面代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns"http://www.w3.org/1999/xhtml"><head><title>客…

机器学习没有想象中的那么难

文末彩蛋&#xff0c;不容错过&#xff01;背景从去年的AlphaGo到今年人工智能首次写进政府工作报告&#xff0c;人工智能正在席卷全球&#xff0c;引发第4次工业革命&#xff0c;而AI的核心技术是机器学习和深度学习。目前&#xff0c;机器学习已广泛应用于数据挖掘、计算机视…

json.net java_java解析JSON (使用net.sf.json)

例如JSON字符串str如下&#xff1a;{"data": [{"basic_title": "运筹帷幄因特网","basic_creator": "马跃&#xff0c;余南阳编著","basic_publisher": "成都市&#xff1a;西南交通大学出版社","…

Docker查看应用的实际内存

前言 我们把应用部署到Docker里面之后&#xff0c;有什么办法查看这个应用占用了多少内存呢&#xff1f;docker本身提供了一个命令让我们可以直接看到当前时间所有容易占用的情况。docker stats --no-stream从上面来看&#xff0c;这几个应用用的内存加起来已经是将近12G了。但…

如何动态的生成某种类型的集合呢_知乎画报」的移动端动态化工程实践

本文基于移动端动态化方案在知乎原生推广落地页「知乎画报」上的实践经验&#xff0c;对该方案技术升级过程中的思考以及技术关键细节做了详尽的解读。商业化是互联网公司发展的重要阶段&#xff0c;App 端的商业广告业务对移动端动态化能力的需求很强烈&#xff0c;一方面需要…

asp.net 得到上一页地址

if(!IsPostBack) ViewState["retu"]Request.UrlReferrer.ToString();

任正非致歉华为前程序员:回来吧,公司错了

近几日&#xff0c;因着任正非连续签发邮件&#xff0c;无处不在热议华为&#xff0c;其中与所有的技术人可谓密切相关。除了一员工因说真话&#xff0c;被晋升两级&#xff0c;根据其自愿选择工作岗位及地点&#xff0c;并由无线网络产品线总裁邓泰华保护其不受打击报复之外&a…

Asp.Net Core之Identity应用(下篇)

一、前言在上篇中简单介绍了 Asp.Net Core 自带的 Identity,一个负责对用户的身份进行认证的框架&#xff0c;当我们按需选择这个框架作为管理和存储我们应用中的用户账号数据的时候&#xff0c;就会添加到自己的项目当中去。这个时候&#xff0c;默认情况我们会使用自带的数据…

python随机数生成验证码_Python随机数random模块学习,并实现生成6位验证码

一、前言学习python随机数random模块的使用 ,并使用模块中的函数&#xff0c;实现6位验证码生成二、random模块1、random.random()返回0-1直接的随机数&#xff0c;类型为float>>>print(random.random())0.12591846916629082、random.randint(1, 8)返回1-8直接的随机数…

python没有菜单栏怎么搞mac_Mac 下 sublime 怎么调出顶端菜单栏

点击Sublime的Preferences->Setting-Default菜单&#xff0c;打开它的配置文件。找到如下一行的配置&#xff1a;"fold_buttons": true&#xff0c;值为true则是显示三角折叠按钮&#xff0c;反之则不显示。当然了&#xff0c;不推荐直接改它的默认配置文件&#…

如果每一种语言都对应一种女生,你会喜欢哪一个?

这几天调试都很顺利&#xff0c;今天很意外的不要加班&#xff0c;哥几个看着窗外还是白天&#xff0c;还有点不适应。没想到哥几个突然开始YY&#xff1a;如果每种语言都对应一种女生&#xff0c;你会喜欢哪一个&#xff1f;程序猿寂寞起来&#xff0c;我自己都害怕。碍于人数…