JSP

简介:JavaServerPage,java服务器端网页,本质是一个Servlet,用于简化Servlet编写。

           (网页中:动态内容Java代码编写,静态内容采用HTML页面的方式编写)

原理:URL以xxx.jsp的访问请求—— WEB容器(Servlet引擎)接收——交给JSP引擎去处理

           JSP引擎将其翻译成Servlet源程序——编译成class类文件——WEB容器调用装载该Servlet

规则:1.Java代码(也可以是其他语言)需要嵌套在<%和%>中,称之为脚本片段(Scriptlets),其他部分称为模板元素    

           2.JSP文件像HTML文件一样以路径形式访问,需放置在WEB应用程序中的除了WEB-INF及其子目录外的其他任何目录中

应用:在大型WEB应用程序的开发中,Servlet与JSP经常要混合使用,各司其职,

           Servlet通常用作控制组件,并处理一些复杂的后台业务,JSP则作为显示组件

            注:Servlet必须映射(设置被请求地址),JSP可以不映射(做请求页面)也可以映射(修改请求页面地址/被请求地址)

注册与配置JSP页面的访问路径

隐式对象

简介:没有声明就可以直接在<% %>代码里使用的9个对象

request:HttpServletRequest 的对象

response:HttpServletResponse 的对象(JSP页面中几乎不会用到)

pageContext:PageContext 的对象,页面的上下文,可获取其他8个对象和页面其他信息(可用于自定义标签)

session:HttpSession 的对象,代表浏览器和服务器的一次会话

application:ServletContext 的对象,代表当前WEB应用

config:当前JSP对应的Servlet的ServletConfig 对象(几乎用不到)

out:JspWriter 的对象,相当于一种带缓存功能的PrintWriter,调用out.println()可以直接把字符串打印到浏览器上

page:Obiect 的对象,指向当前JSP对应的Servlet对象的引用(只能调用Object的方法,开发几乎不用)

exception:声明<%@ page isErrorPage="true" %>时,才可以使用


基本语法

JSP模板元素:JSP页面中的静态HTML内容,定义了网页的基本骨架

JSP表达式:提供了将一个java变量或表达式的计算结果输出到客户端的简化方式,eg:Current time: <%= new java.util.Date() %>

              (本质是被翻译成out.print(…)语句,注:JSP表达式中的变量或表达式后面不能有分号)

JSP脚本片断:嵌套在<% 和 %>之中的一条或多条Java程序代码

                  1.多个脚本片段可以互相访问(就像在一个片段中)

                  2.脚本片段间可以任意嵌入文本、HTML标记和其他JSP元素

                  (单脚本片段中java语句可以不完整,整个组合完整就行,本质也是用out.println()进行的输出)

嵌套

注释:<%-- JSP注释信息 --%>  <!-- html注释信息 -->

JSP声明:将Java代码封装在<%!和 %>之中,它里面的代码将被插入进Servlet的_jspService方法的外面


域对象的属性操作

简介:pageContext、request、session、application(范围从小到大)这几个域对象有属性相关方法

属性方法:setAttribute(String name,Object value)

                  Object getAttribute(String name)

                  removeAttribute(String name)...

作用范围:pageContext:属性作用范围仅限于当前JSP页面

                  request:属性作用范围仅限于同一个请求

                  session:属性作用范围限于一次会话:浏览器打开直到关闭称之为一次会话(前提在此期间会话不失效)    

                  application:属性作用范围限于当前WEB应用(范围最大的属性作用范围,只要一处设置属性,其他jsp都能获取到)


请求的重定向与转发

转发与重定向

JSP指令

简介:为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分

格式:<%@ 指令 属性名="值" %>    

JSP 2.0中,定义了page、include和taglib这三种指令

Page指令:用于定义JSP页面的各种属性,作用于整个JSP页面

page指令

include指令:用于通知JSP引擎在翻译当前JSP页面时将其他文件中的内容合并进当前JSP页面转换成的Servlet源文件中,

                       这种在源文件级别进行引入的方式称之为静态引入,当前JSP页面与静态引入的页面紧密结合为一个Servlet。

            语法:<%@ include file="relativeURL"%> 指定被引入文件的相对路径(建议使用.jspf扩展名)

            过程:先翻译成servlet再进行合并,除了import和pageEncoding属性,其他属性设置的值需一致


JSP标签

简介:在JSP页面中使用Action元素可以完成各种通用的JSP页面功能,也可以实现一些处理复杂业务逻辑的专用功能。

          (Action元素采用XML元素的语法格式,即每个Action元素在JSP页面中都以XML标签的形式出现)

<jsp:include>标签

简介:用于把另外一个资源的输出内容插入进当前JSP页面的输出内容之中,这种在JSP页面执行时的引入方式称之为动态引入

语法:<jsp:include page="relativeURL | <%=expression%>" flush="true|false" />   

            page属性用于指定被引入资源的相对路径,它也可以通过执行一个表达式来获得

            flush属性指定在插入其他资源的输出内容时,是否先将当前JSP页面的已输出的内容刷新到客户端

与include指令区别:<jsp:include>动态引入生成会生成两个Servlet源文件,通过命令包含进来

                                  include指令静态引入生成一个Servlet源文件

" flush="true|false">

<jsp:forward>标签

简介:把请求转发给另外一个资源

语法:<jsp:forward page="relativeURL | <%=expression%>" />

            page属性用于指定请求转发到的资源的相对路径,它也可以通过执行一个表达式来获得

几种转发的区别:1.<Jsp:forward>标签的前后都能有JSP模版内容(还能用<jsp:param>标签传参)

                             2.调用RequestDispatcher.forward方法的JSP脚本代码的前后不能有JSP模版内容

                             3.调用PageContext.forward方法的JSP脚本代码的后面不能有JSP模版内容

<jsp:param>标签

简介:能在<jsp:include>标签和<jsp:forward>标签下使用子标签用于传参

使用: <jsp:param value="aaa" name="userName"/>

             接收与表格接收参数一致 <% String value = request.getParameter("userName");  %>


中文处理

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

推荐阅读更多精彩内容

  • JSP总结(经典) day1 JSP 定义: 1)Java Server Page, Java EE 组件,本...
    java日记阅读 3,434评论 0 13
  • Jsp技术总结 1. 什么是JSP JSP即Java Server Pages,它和servlet技术一样...
    java日记阅读 1,652评论 0 18
  • 1.学习内容 JSP技术入门和常用指令 JSP的内置对象&标签介绍 EL表达式&EL的内置对象 2.JSP技术入门...
    WendyVIV阅读 2,136评论 1 18
  • 原文链接:blog.ouyangsihai.cn >> jsp看这篇文章就够了 一、JSP基础语法 1、JSP模板...
    程序员欧阳阅读 1,978评论 0 33
  • 其他更多java基础文章:java基础学习(目录) 本章内容较多,全部认真看完可能需要一小时以上,建议边看边做笔记...
    Hiwayz阅读 1,311评论 0 10