什么是JSP

PPT

视频链接

一、什么是JSP

JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它是由Sun

Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。

用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。

JSP将网页逻辑(由java程序段和jap标记执行)与网页设计和显示(html标签)分离,与JavaServlet一样,是在服务器端执行的,就是在服务器端,JSP引擎解释JSP标识和脚本,生成所请求的内容(生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在脚本中,所有的脚本在服务器端运行。),并且将结果以HTML(或者XML)页面的形式(返回给客户端的就是一个HTML文本)发送回浏览器,因此客户端只要有浏览器就能浏览。

今天主要分享的三个问题:

1:JSP与JavaScript区别?

1、JSP属于java的组件,使用的是java语言,所以JSP与javascript的区别就是JAVA与JAVASCRIPT的区别。

2、JavaScript是一种动态、弱类型、基于原型的语言,通过浏览器可以直接执行;而Java(JSP)是面向对象的编程语言,必须先进行编绎和连接等动作才可执行。

3、JavaScript编写在HTML文件中,直接查看网页的原始码,就可以看到JavaScript程式,所以没有保护,任何人都可以透过HTML文件复制程式;而Java应用在网页的程式称为Java

Applet(Applet是[小程序]的意思),是和HTML文件分开的。

4、JavaScript的结构较为自由松散,而Java和正统的编程语言一样,结构较为严谨。

5、JavaScript不具有读写档案及网络控制等功能,Java则提供了这些功能,但是JavaScript在网页内容的控制和互动性方面,比较方便快捷的。

6、javascript多运行于客户端,而java多运行于服务器端。


2:jsp内置的对象有哪些?

1、request对象:该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以获取用户提交信息。它是HttpServletRequest的实例。实例:不必直接传送参数到JavaBean,你可以藉由请求对象来取得参数的值:<%Stringname=request.getParameter("name"); out.println(name); %>。

2、response对象:对客户的请求做出动态的响应,向客户端发送数据。

3、session对象

 (1)、什么是session:session对象是一个JSP内置对象,它在第一个JSP页面被装载时自动创建,完成会话期管理从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间反复连接,反复刷新一个页面,服务器应当通过某种办法知道这是同一个客户,这就需要session对象。                  

(2)、session对象的ID:当一个客户首次访问服务器上的一个JSP页面时,JSP引擎产生一个session对象,同时分配一个String类型的ID号,JSP引擎同时将这个ID号发送到客户端,存放在Cookie中,这样session对象和客户之间就建立了一一对应的关系。当客户再访问连接该服务器的其他页面时,不再分配给客户新的session对象,直到客户关闭浏览器后,服务器端该客户的session对象才取消,并且和客户的会话对应关系消失。当客户重新打开浏览器再连接到该服务器时,服务器为该客户再创建一个新的session对象。       

(3)、session对象存在一定时间过期问题,所以存在session中的名值对会在一定时间后失去,可以通过更改session有效时间来避免这种情况。同时编程时尽量避免将大量有效信息存储在session中,request是一个不错的替代对象。

4、application对象

(1)、什么是application:  服务器启动后就产生了这个application对象,当客户在所访问的网站的各个页面之间浏览时,这个application对象都是同一个,直到服务器关闭。但是与session不同的是,所有客户的application对象都是同一个,即所有客户共享这个内置的application对象。

(2)、application对象常用方法:

A:public void setAttribute(String key,Object obj):将参数Object指定的对象obj添加到application对象中,并为添加的对象指定一个索引关键字。

B:public Object getAttribute(String key):获取application对象中含有关键字的对象。

5、out对象:是一个输出流,用来向客户端输出数据。out对象用于各种数据的输出。在页面中例如:<%out.print("'....'/>")%>

6、Page对象:就是指向当前JSP页面本身,有点象类中的this指针,它是java.lang.Object类的实例。JSP网页本身,page对象是当前JSP页面转换后的Servlet类的实例。从转换后的Servlet类的代码中,可以看到这种关系:Objectpage = this;在JSP页面中,很少使用page对象。

7、config:jav jsp validator相关的错误ax.servlet. ServletConfig 的实例,该实例代表该JSP 的配置信息。常用的方法有getInitParameter(StringparamNarne)及getInitParameternarnes() 等方法。事实上, JSP页面通常无须配置,也就不存在配置信息。因此,该对象更多地在Servlet中有效。很少会在jsp页面中使用这个对象

8、exception:java.lang.Throwable的实例,该实例代表其他页面中的异常和错误。只有当页面是错误处理页面,即编译指令page的isErrorPage

属性为true时,该对象才可以使用。常用的方法有getMessage()和printStackTrace()等。

9、 pageContext:javax.servlet.jsp.PageContext的实例,网页的属性是在这里管理,该对象代表该JSP

页面上下文,使用该对象可以访问页面中的共享数据。常用的方法有getServletContext()和getServletConfig()等。

//使用pageContext设置属性,该属性默认在page 范围内  pageContext. setAttribute("page" , "hello") ;

//使用request设置属性,该属性默认在request 范围内  request. setAttribute ("request" , "hello");

//使用pageContext将属性设置在request范围中  pageContext.setAttribute("request2" , "hello" ,

pageContext.REQUEST_SCOPE);

//使用session将属性设置在session范围中  session.setAttribute("session" , "hello");

//使用pageContext将属性设置在session范围中  pageContext.setAttribute("session2" , "hello" ,

pageContext.SESSION_SCOPE);

//使用application将属性设置在application范围中  application. setAttribute ("app" , "hello") ;

//使用pageContext将属性设置在application 范围中  pageContext.setAttribute("app2" , "hello" ,

pageContext.APPLICATION_SCOPE) 


3:与JSP相同的视图有什么?

与jsp配置视图一样,也有着别的视图解析

其中velocity就是一类,Velocity是一种Java模版引擎技术,该项目由Apache提出,由另外一种引擎技术Webmacro引深而来。那什么是官方的Velocity定义呢?Apache对它的定义是:一种基于Java的模板引擎,但允许任何人使用简单而强大的模板语言来引用定义在Java代码中的对象。

velocity与jsp有什么不同?

执行方式不一样: JSP是编译执行,Velocity是解释执行.如果JSP文件被修改了,对应的java类就会重新编译,而Velocity却不需要,只是会重新生成一棵语法树.

执行效率不同:理论上来说,编译执行的效率明显好于解释执行,在JSP中方法调用是直接执行的,而在velocity中使用反射执行的,从这方面来讲JSP效率会明显好于Velocity.如果JSP中有大量的jstl或者其他标签的话,就不一定了.

需要的环境支持不同:JSP的执行依赖Servlet环境,他需要ServletContext,request,response这些类.而渲染Velocity不需要其他环境的支持,所以说velocity的应用环境更广.

如何配置velocity?

我们演示的是在springmvc中配置velocity,管理是使用maven

pom中引用jar包

配置视图解析:


最后创建以.vm结尾的网页即可使用模版语言


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,826评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,968评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,234评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,562评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,611评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,482评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,271评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,166评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,608评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,814评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,926评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,644评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,249评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,866评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,991评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,063评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,871评论 2 354

推荐阅读更多精彩内容