我的学习之路_第三十四章_jsp

jsp


在只有servlet时,输出页面内容比较麻烦(成本高,java代码中输出HTML标签),所以需要一种技术,主要是HTML页面的代码
(HTML,css,js),可以嵌入java代码,来实现动态页面的效果。这种技术就叫做   : JSP


JSP:java server Page : 动态页面技术,JSP就是Servlet。


如何开发一个JSP:
在项目目录中创建一个   .jsp 的文件
文件内容的第一个行:<%@ page contentType="text/html;char set=UTF-8"  %>
后面可以跟正常的HTML内容


JSP如何运行的:
根据WEB服务器中的work目录中的文件。JSP页面在运行之前,被服务器翻译成了servlet的源代码(xxx.jsp -> jsp.java),
然后在内变异成字节码(xxx_jsp.java->xxx_jsp.class),加载到JVM,运行.


JSP的语法:
1.三种脚本:把java的内容嵌入到THML的静态部分中的方式
<%  java代码  %> : 普通的可执行的java代码
<%=   表达式 %>  : 计算表达式的值,并替换到页面的当前位置
<%!  声明(变量和方法)  %> :声明当前JSP所翻译成的java类中的成员


2.三种注释:
1.JSP的注释: <%--  注释内容,可以多行  --%>
在翻译时消失
2.java的注释:<% java代码,java注释 %>      //单行   /* 多行 */
翻译是还存在,编译时消失
3.标签语言的注释:<!--    注释内容    -->
和其它页面中的标签的地位相同,都会被当成内容输出给浏览器(这种注释尽量不要用,因为会爆露程
序的结构,会被黑客利用)
所以尽量优先用JSP的注释,尽量不要用标签注释。


3.三个编译指令:在翻译和编译JSP时的一些设置
<%@   page  %>   : 设置当前JSP页面中的一些信息

contentType:设置内容类型(MIME类型)
pageEncoding:设置页面使用的字符集
language:使用语言java
errorpage:当页面中发生异常时,转跳到哪个页面去进行异常处理.
isErrorpage:当前页面是否是异常处理页面
import:导包


<%@   include file=" xxx.jsp "   %>   : 静态包含另一个页面到本页面中.
<%@   taglib  %> : 引用第三方的标签库


七个动作指令(动作标签)


< jsp.include   page=" "/> : 动态包含.


动态包含和静态包含的区别:
静态包含:在翻译阶段,把被包含页面直接合并到主页面中,然后编译、执行。
动态包含:主页面的被包含页面是各自进行翻译和编译的,在运行的时候,有主页面通过include的方法
调用被包含页面


<jsp: forward  page=" "/> : 内部转发
<jsp: param  page=" "/> : 在动态包含和内部转发时传参数
<jsp: userBean  page=" "/> : 使用javaBean
<jsp: getProperty  page=" "/> : 取得javaBean的属性值
<jsp: setProperty  page=" "/> : 设置javaBean的属性值
<jsp: plugin  page=" "/> : 在页面中引入Applet小程序


九个内置对象:事先创建的对象,可以直接用。


page this(当前JSP页面所对应的servlet的对象,域对象)
request HttpServletRequest(域对象)
session HttpSession(域对象)
application ServletContext(域对象)
response HttpServletResponse
config ServletConfig
out JspWriter:输出的内容和JSP页面中普通的标签地位相同,使用response.getWriter输出流输出的内容,
永远在页面之前.
pageContext pageContext
取得所有其他内置对象
操作域对象
exception Throwable




小总结:
在HTML页面中嵌入java代码的一种动态页面技术。
JSP的本质:servlet(WEB服务器翻译成servlet的源代码、编译、执行)


三种脚本:
<% %> : 普通的java执行语句
<%= %> : 计算表达式的值并替换到页面中的当前位置
<%! %> : 声明(类的成员)


三种注释:
<%-- --%> : 在页面中直接使用.只在JSP页面有效
//  /**/  : 在<% %>中是使用,翻译后存在,编译后消失
<!-- --> : 相当于标签,所以一直保留到页面中,尽量不用
三个编译指令:
<%@ page %>
contentType
pageEncoding
errorPage
isErrorpage
import
language:java
<%@ include file=" " %> : 静态包含
<%@ taglib %> : 引用第三方的标签库


七个动作标签:
<jsp: include page=" " > : 动态包含
<jsp: forward >
<jsp:  param>
<jsp:  useBean>
<jsp:  getProperty>
<jsp:  setProperty>
<jsp:  plugin>


九个内置对象:
page (object)this 当前页面
request HttpServletRequest
session HttpSession
application ServletContext
response HttpServletResponse
out JspWriter(注意它和PrintWriter的区别)
config ServletConfig
pageContext pageContext
取得内置的其他对象
操作域对象(所有四个域都可以操作,如果不指定域,则默认操作page域,其他的域需要
通过参数来指定)
exception 异常. isErrorpage = true 且其它页面发生异常并跳转到本页面时此对象才存在.
isErrorpage = false ,exception不存在,isErrorpage=true.但是脏街访问的本业面不是从其
它页面发生异常而跳转过来的话, exception=null.



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值