首页 > html教程 > 正文

web技术:动态页面技术jsp和html有啥不同?在编程能有哪些应用?

转载 2019-02-12 0 50

jsp运行原理,jsp本质就是servlet

jsp在被访问时会在去Tomcat的work目录下找servlet文件,如果有则访问,如果没有则将jsp翻译成servlet,然后再访问,被翻译的servlet可以在Tomcat的work目录中可以找到(servlethelloServlet.jsp---->helloServlet_jsp.java---->编译运行)

jsp脚本

1) ----- 内部的java代码翻译到service方法的内部,那就说明在这里面输出(System。out。print)不会输出到页面而是和会输出到控制台2) ----- 会被翻译成service方法内部out.print(),会将变量在页面输出,只要是有结果(变量或者表达式)的东西,都可以用%=输出3) ---- 会被翻译成servlet的成员的内容,就是说可以通过这种方式来定义成员变量,和成员方法

我们在jsp中写代码,要想让其在页面中显示有多种方式

web技术:动态页面技术jsp和html有啥不同?在编程能有哪些应用?

上面有四种写法,除了response.getwriter之外,剩下三种翻译成servlet都是out.write(),都是写到out缓冲区,然后再刷到response缓冲区,这就说明他们三种都会比response.getwriter写到页面慢

web技术:动态页面技术jsp和html有啥不同?在编程能有哪些应用?

可以看出response.getwriter输出的cccc先输出了,所以可以证明一点是response.getwriter输出的快,因为其它的要先输出到out缓冲区,我们可以把out缓冲区设置为0,这样输出就直接输出到response缓冲区了,使用buffer标签

web技术:动态页面技术jsp和html有啥不同?在编程能有哪些应用?

web技术:动态页面技术jsp和html有啥不同?在编程能有哪些应用?

不使用buffer标签时的大概过程

web技术:动态页面技术jsp和html有啥不同?在编程能有哪些应用?

jsp注释,不同的注释可见范围是不同

1)Html注释:可见范围 jsp源码、翻译后的servlet(在servlet是out 。write(注释)的形式存在的)、页面显示html源码2)java注释://单行注释 /*多行注释*/可见范围 jsp源码 翻译后的servlet(//)3)jsp注释:可见范围 jsp源码可见

jsp指令,jsp的指令是指导jsp翻译和运行的命令

page指令(实际开发中page指令默认),根据不同的属性,指导整个页面特性,下面是常用属性

language:jsp脚本中可以嵌入的语言种类,一般值为javapageEncoding:当前jsp文件的本身编码,pageEncoding更改的话,在本页面的window的properties编码也会发生变化 ,二者是一致的,实质就是文件另存为时文件的编码格式,设置好它之后,它内部把contentType也设置好了contentType:实质是response.setContentType(text/html;charset=UTF-8)session:是否jsp在翻译时自动创建session,默认为true,自动创建之后可以直接session.setAttributeimport:导入java的包,在jsp写Java代码时,使用的java类如果需要导包,那么可以使用这二个属性errorPage:指定当前jsp页面出错后(状态码为500的错误)跳转到哪个页面,地址应该写web端地址,不是给浏览器访问的,状态码为500isErrorPage:表示当前页面是一个处理错误的页面,一般errpage跳过去的页面上写这个isErrorPage=true

errorpage是指定出现500错误时会跳转到哪个页面,如果出现404错误时将不会跳转,那么怎样可以设置出现404错误时也可以跳转呢?再web。xml

web技术:动态页面技术jsp和html有啥不同?在编程能有哪些应用?

include指令

页面包含(静态包含)指令,可以将一个jsp页面包含到另一个jsp页面中

格式:

比如本页面写那么效果就是demo.Jsp的页面在本页面显示,比如有些网站很多页面头和尾代码一样,完全可以把头和尾抽出来,谁用谁就引入就ok了,而且如果要更改只需更改一个就ok了

taglib指令

在jsp页面中引入标签库(jstl标签库、struts2标签库)格式:

指定前缀之后,使用标签就的格式使用

jsp内置/隐式对象

这些对象不需要我们手动创建,jsp被翻译成servlet之后,service方法中有9个对象定义并初始化完毕,我们在jsp脚本中可以直接使用这9个对象

web技术:动态页面技术jsp和html有啥不同?在编程能有哪些应用?

web技术:动态页面技术jsp和html有啥不同?在编程能有哪些应用?

其中request,response,config,session,appliaction和我们在servlet中学到的那些域对象用法一样,可能就是某些对象的nama更改了

out对象

out的类型:JspWriter

out作用就是想客户端输出内容----out.write()默认写到out缓冲区,然后在刷到response缓冲区,然后才能被客户端获取到,out缓冲区默认8kb ,可以设置成0 ,代表关闭out缓冲区,这样以后写内容直接写到respons缓冲区

web技术:动态页面技术jsp和html有啥不同?在编程能有哪些应用?

使用page指令的buffer属性可以设置out缓冲区的大小

pageContext对象(jsp页面的上下文对象)

首先需要明白,page对象与pageContext对象不是一回事,page表示本servlet对象,是this,pageContext表示这个该页面的上下文对象,pageContext是一个域对象

setAttribute(String name,Object obj)getAttribute(String name)removeAttrbute(String name)pageContext可以向指定的其他域中存取数据setAttribute(String name,Object obj,int scope)getAttribute(String name,int scope)removeAttrbute(String name,int scope)
web技术:动态页面技术jsp和html有啥不同?在编程能有哪些应用?

第一个是存到request,第二个是通过pageContext将数据存到request,第三个是通过pageContext将数据存到session,第四个是通过pageContext将数据存到application这整个应用中

然后获取代码,第一个是直接使用request从request域中获取name数据,第二个是通过pageContext获取request中的数据。

findAttribute(String name)这个方法会依次从pageContext域,request域,session域,application域中获取属性,范围从小到大,直到找到或者找不到


page域:当前jsp页面范围,从a页面存的,在其它页面就获取不到了,只能在a页面获取到数据request域:一次请求(转发)session域:一次会话(默认)application域:整个web应用

pageContext可以获得其他8大隐式对象,只要有pageContext引用就可以获取其它8大对象

pageContext.getRequest()pageContext.getSession()

jsp标签(动作)

1)页面包含(动态包含):2)请求转发:

这个是动态包含,上面还有一个是静态包含,这两个都是包含是有区别的,总结一点就是说静态包含是两个jsp融合成一个jsp然后被翻译成servlet,动态包含是两个jsp分别翻译成servlet,然后通过一第一个servlet通过一段Java代码引用另外一个servlet

web技术:动态页面技术jsp和html有啥不同?在编程能有哪些应用?

相关文章


  • 零基础学习HTML之CSS篇元素显示模式文档流元素浮动和布局
  • 想要成为最好的Web开发人员?十种方式测试你的HTML和CSS编程技能
  • 西安北邮在线靠谱吗?​我放弃画画来北邮在线学HTML!
  • 零基础学习HTML图像热区特殊字符无序列表和有序定义列表表格
  • Web前端工程师培训 DW模板dwt更改后如何更新基于模板的HTML页面
  • 阿里旺铺装修代码的fx.roll滚动特效组件使用详解及HTML代码示例
  • 我们来让视频站启用HTML 5播放器吧,看更优质的视频!
  • 第53期Java面试题:XML和HTML的区别、XML文档定义、java反射机制