码迷,mamicode.com
首页 > Web开发 > 详细

jsp的使用

时间:2016-01-01 20:49:49      阅读:265      评论:0      收藏:0      [点我收藏+]

标签:

一、JSP的快速入门
  1. 问题:servlet和html在web开发中的优缺点?
    html:很方便书写网页 所写的内容都是静态的
    servlet:可以动态的生成网页 缺点是书写网页内容很麻烦
  2. 真正在企业开发中流程是怎样的?
    美工去写一个静态html页面-------->程序员------->将页面动态化(将html中的每一句使用response.getWriter().write()
    由于这种方式非常的麻烦所有再借鉴PHP和ASP的技术之后就有了JSP技术
    jsp:就像是html  能在html标签中嵌套java代码
  3. jsp内部原理:
    jsp源码-------->翻译成响应的servlet------>编译(会在第一次访问该页面时编译)------->运行
    技术分享
  4. jsp嵌入脚本的语法:
    1. 脚本片段:<% java代码 %>  ------->被翻译成servlet中service方法中(通常指在下面这个方法的方法体中)
      技术分享
    2. 全局脚本:<%! java代码 %> ------->被翻译成全局的属性或方法
      技术分享
    3. 输出脚本:<%=变量/表达式%> ------>被翻译成servlet中的out.print(变量);
  5. jsp的注释:
    1. java注释://  /**/   /***/   :被翻译后的servlet可见
    2. html注释:<!-- -->:html源码可见
    3. jsp注释:<%-- --%>  可见范围:jsp源码中
二、jsp的指令
              jsp的指令有三个:page   include   taglib
              语法:<%@ 指令 属性="属性值" ...%>
  1. page指令
    作用:是设置整个jsp的属性
    属性:
    1. language:jsp脚本使用哪种语言 默认就是java
    2. import:就是在翻译后的servlet中到导入
      技术分享
    3. pageEncoding:jsp页面存储的编码方式
    4. contentType:指导浏览器编码方式 设置response的编码方式
      注意:pageEncoding设置之后 不仅可以知道jsp本身存储的编码 还能实现contentType的功能
    5. extends:翻译成的servlet继承的类
    6. info:jsp的页面显示信息 没有实质的作用  是给程序员阅读方便
    7. errorPage:jsp页面上如果出现错误 自动跳转的页面 只能配置500的错误
    8. isErrorPage:告知我这个页面是一个错误友好提示页面
      注意:如果404友好提示页面怎么配 在web.xml中配置
      如果500的错误 jsp页面配置了errorPage 同时web.xml也配置错误页面 那么errorPage的优先级高
      技术分享
    9. session:jsp页面脚本中是否可以直接使用session  
    10. isELIgnored:jsp页面中是允许使用el表达式 false是允许使用  true就是不允许使用
    11. autoFlush:out缓冲区的自动刷出
    12. buffer:out缓冲区的大小
  2. include指令
    1. 语法:<%@ include file=""%>
      1. <body>
      2. <%@ include file="/include/1.jsp" %>
      3. 这是内容部分
      4. <%@ include file="/include/3.jsp" %>
      5. </body>
      这种方式是静态包含,是2个页面先进行拼接在转到Servlet处理输出
  3. taglib指令:作用引入标签
    语法:<%@ taglib uri="" prefix=""%>
    uri:引入哪个标签库
    prefix:标签命令的前缀
    1. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>//引入java标准标签库
  4. Jsp的内置对象(九大内置对象):
    request  response  session  application  config  page  pageContext  out  exception
    1. request:HttpServletRequest
    2. response:HttpServletResponse
    3. session:HttpSession
    4. application:ServletContext
    5. config:ServletConfig
    6. page:Servlet
    7. pageContext:PageContext,域对象  page域
      1. page域的作用范围:就在本jsp页面
      2. page域<--request域<----session域<-----application域
      3. 域对象统一的方法:setAttribute(name,value)   getAttribute(name)   removeAttribute(name)
      4. page域特殊的方法
        pageContext.setAttribute(name,value,(scope是常量));
        pageContext.getAttribute(name,scope);
        pageContext.findAttribute();
        作用:从四个域中寻找数据 按照从小到大的顺序寻找 page<request<session<application

        scope的常量有:
        pageContext.REQUEST_SCOPE:request域
        pageContext.PAGE_SCOPE:page域
        pageContext.SESSION_SCOPE:session域
        pageContext.APPLICATION_SCOPE:application域
        1. <%pageContext.setAttribute("name", "zhangsan", pageContext.APPLICATION_SCOPE); %>
        2. <%=pageContext.getAttribute("name", pageContext.APPLICATION_SCOPE)%>
      5. pageContext可以获取其他八大内置对象
        1. pageContext.getRequest()
        2. pageContext.getSession()
        作用:可以用作传输传递,如果一个方法要传递多个内置对象,就可以直接传递pageContext这一个参数就可以了。
    8. out:JspWriter
      作用:向页面输出内容
      1. JspWriter out:这个是OUT对象的类
      2. PrintWriter  writer  通过response.getWriter获取的
        都是Writer的子类 但是JspWriter的内部实现其实就是PrintWriter
      3. out和response.getWriter().write()的区别?
        他们的区别是out本身带有一个缓存区,默认的大小为8kb,在Jsp页面直接用Out写数据是写在缓存区当中的,存满之后才会用response写出,而使用response.getWriter().write()写数据就是直接写出,没有缓存区
    9. exception:Throwable
  5. jsp的6个标签(动作)
    1. jsp包含:<jsp:include page="/include2.jsp"></jsp:include>
      jsp包含(动态包含)  -----就相当与 request.getRequestDispatcher().include()
      内部原理:将各个jsp翻译成servlet 然后在运行的时候在动态包含进去
      技术分享
    2. jsp转发:<jsp:forward page=""> -------就相当于request.getRequestDispatcher().forward()
    3. jsp参数:<jsp:param>
      转发页面:
      1. <jsp:forward page="/Test1.jsp">
      2. <jsp:param value="mye_mail@126.com" name="e-mail"/>
      3. </jsp:forward>
      接收页面:
      1. <%=request.getParameter("e-mail") %>




jsp的使用

标签:

原文地址:http://www.cnblogs.com/didixyy/p/d07c70beeba7d90b6f1b9269a16637e5.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!