jsp使用

一:jsp(java server page)

jsp其实就是一个servlet。

1)作用:将内容的生成和信息的展示相分离。

2)本质:运行在服务器端,本质上就是一个servlet,产生java文件和class文件保留在tomcat的work目录下。

3)jsp脚本:

  1、<%......%> java片段代码。

  2、<%=....%> java输出表达是相当于out.print.

  3、<%!...%> 声明成员变量。

4)jsp指令:

  作用:声明jsp页面的一些属性和动作。

  格式:

    <%@指令名称  属性=“值”  属性=“值”%>  注意多个属性值,之间是空格没有分号。

  jsp指令分类:

    page:主要声明 jsp页面的一些属性。

    

    include:静态包含。

    taglib:导入标签库。

  注意:

     一个页面可以有多个指令,指令可以放在任意位置,一般都放在jsp页面最上面。

  1、page 指令:

                      重要属性是三个:

        1、contentType:设置相应的流的编码,及通知浏览器用什么编码打开,设置文件的mimetype。

        2、pageEncoding:设置页面编码。

        3、import :导入所需的包。

        contentype和pageEncoding联系:

          1)若两者都出现的时候,各自使用各自编码。

          2)若只出现一者,亮哥哥都使用出现的这个编码。

          3)若两者都不出现,使用服务器默认编码,tomcat7使用的iso-8859-1的编码。

    2、了解属性:

      language:当前jsp页面里面可以嵌套的语言。

1 <%@ page contentType="text/html;charset=UTF-8" language="java" %>

      buffer:设置jsp页面的流缓存区大小。

      autoFlush:是否自动刷新。

      extends:声明当前jsp页面继承于那个类,必须继承的是httpservlet及子类。

      session:设置jsp页面是否可以使用session内置对象。值为布尔。

      isELIgnored:是否忽略el表达式。

      errorPage:当前jsp页面的出现异常的时候是否跳到jsp页面。参数是布尔值。

      isErrorPage:当前jsp野蛮是否是一个错误页面。

          若为true,可以使用jsp页面一个内置对象  exception。

   3、include指令:

      静态包含,就是将其他页面或者servlet的内容包含进来,一起进行编译运行,生成一个java文件。

      格式:

        <%@include     file="相对路径或者内部路径" %>

 1 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 2 <html>
 3 <head>
 4     <title>Title</title>
 5 </head>
 6 <body>
 7 this 1.jsp  content!<br>
 8 <%@include file="1.jsp"%>
 9 this 2.jsp content!<br>
10 <%@include file="2.jsp"%>
11 </body>
12 </html>

 效果:

 包含2个页面,但是后端只生成一个servlet 的java文件和class文件。只是把1和2生成的内容嵌套在include.jsp

   路径解释:

      1、相对路径:

          ./或者什么都不写 表示当前路径。

          ../         表示上一级路径。

      2、绝对路径:

           带协议和主机的绝对路径

           不带协议和主机的路径。

            /项目名/资源/

5)jsp内置对象(9大内置对象):

  在jsp页面上可以直接使用的对象。

    内置对象    类型

     out      JspWrite

    request     HttpServletRequest

    respone     HttpServletRespone

    session     HttpSession

    excepetion  Throwable

    page      Servlet(this)   当前servlet。

    config       ServletConfig

    application          ServletContex

    pageContext  PageContext

jsp 域对象:

    application           整个项目

    session      一次会话

    request    一次请求

    pageContex  一个页面

Pagecontext理解:

    1、域对象

      xxxAttribute()

    2、操作其他域对象

      方法:

        XXAttribute(....,int scope)

             scope取值:

              APPLICATION_SCOPE

              SESSION_SCOPE

              REQUEST_SCOPE

              PAGE_SCOPE

    3、获取其他内置对象

      getXxx()

       注意:

        getRequest()获取request内置对象。

    4、便捷查找:

        findAttribute(String key)

        依次从pagecontext、request、session、application四个域查找相应的属性,若查找到了返回值,且结束该次查找,如果查找不到,则返回null。

  例子:

    

 1 <html>
 2 <head>
 3     <title>Title</title>
 4 </head>
 5 <body>
 6 <%--this 1.jsp  content!<br>--%>
 7 <%--<%@include file="1.jsp"%>--%>
 8 <%--this 2.jsp content!<br>--%>
 9 <%--<%@include file="2.jsp"%>--%>
10 <%
11    //给其他域对象设置值。其中scop的值,是pagecontext的字段。
12 pageContext.setAttribute("pkey","ok",pageContext.REQUEST_SCOPE);
13 //通过pagecontext获取域对象。
14 ServletRequest re=pageContext.getRequest();
15 Object val=re.getAttribute("pkey");
16 out.print(val);
17 
18 %>
19 </body>
20 </html>
原文地址:https://www.cnblogs.com/evilliu/p/8610310.html