JSP学习---page指令细节、include指令细节和安全登录

本篇博客知识点

  1. page指令细节,Page指令的几个常用的属性
  2. include指令细节:静态导入和动态导入
  3. 页面实现安全登录

page指令细节

在JSP页面中可以设置page指令的属性,用快捷键AIT+/可以得到提示
这里写图片描述

其中下面几个是有些细节要注意的,其他的默认就好了

page指令细节—session属性:默认为true ,可以正常当servlet里的HttpservletSession使用

<body>
    <h2>Page指令细节</h2>
    <!-- Page中的session指令为:true时;设置name属性、并且用EL表达式输出来 -->
    <%
        session.setAttribute("name", "Jack");
    %>
    ${name}

  </body>

页面显示结果:正常!
页面显示结果

当session属性:设置为false时,就不能使用了

这里写图片描述
这里写图片描述

page指令细节—errorPage属性和isErrorPage属性
isErrorPage属性:是用来将这个JSP页面设置为错误页面的
errorPage属性:是当页面发生错误时,可以直接跳到我们写好的错误页面的

页面有如下代码 0为除数。

<body>
    <h2>Page指令细节</h2>
    <!-- Page中的session指令为:true时;设置name属性、并且用EL表达式输出来 -->
    <%
        session.setAttribute("name", "Jack");
    %>
    ${name}

    <%
            int i = 10%0;
    %>
  </body>

同时设置好我们的跳转页面,以及isErrorPage属性errorPage属性设置好
这里写图片描述
这里写图片描述

访问页面的时候就,直接回跳转过去,同时还可以拿到异常原因
这里写图片描述

include指令细节:静态导入和动态导入

静态导入
两个页面PageJsp.jsp页面,导入IncludeOne.JSP代码。

JSP页面生成时候会自动帮我们写好一段代码
这里写图片描述

静态导入好竟然出错了
这里写图片描述

我把错误信息翻译出来
这里写图片描述

原因很简单就是重复命名了变量。
当我把重复命名的代码去掉就没问题了(自动生成的那段代码)

这里写图片描述

这边错误也没了
这里写图片描述
静态页面导入之后的结果~
这里写图片描述

动态导入
而动态导入则不会出现前面的错误(重复命名变量)
这里写图片描述
结果很友好啊! 哈哈哈
这里写图片描述

充满好奇心的我要去,看看Tomcat底层代码。为什么静态导入会出错,而动态导入不会~
一打开服务器底层文件,我发现没有我要静态导入的includeOne生成的java文件
这里写图片描述

打开PageJsp生成的java文件,我发现原来静态导入,直接是把需要导入的JSP代码贴进来,而动态导入是调用一个方法。这也是造成静态导入会重复命名变量名的原因了
这里写图片描述

所以总结了一下

 <%@include file="include.jsp" %>
     <!-- 
                静态导入:用@include指令,Tomcat把导入及被导入页面的代码都翻译到 
              _jspService()方法中,生成一个servlet类。
                               该方式下是共享局部变量(开发时注意不要变量重复声明),reqeust,response。
                             开发时"被导入页面"一般不写html和body等"导入页面"已经有的部分,否则重复了
      -->
     <br/>

     <jsp:include page="include2.jsp"></jsp:include>
     <!--
                动态导入:用jsp:include标记,Tomcat把导入及被导入页面的代码分别翻译成独立的servlet类。
                       每个页面有自己的_jspService()方法和对应的servlet类----两个独立的servlet类,但前一个通过 请求包含  调用另一个。
                       该方式下是不共享局部变量(开发时变量相同没关系,是相互独立的)。但reqeust和response是共享的。
                       开发时"被导入页面"要自己写html和body等标记,以形成自己独立的页面。
      -->

页面实现安全登录

当我们与服务器建立联系后,想要访问主页(这里是PageJsp.jsp),要登录才能让他访问。但是他们往往可以通过地址栏输入直接访问,要怎么防止呢?
这里写图片描述

两边
1.在登录这儿,登录成功后在session中设置一个 login属性。
2.在主页那儿判断,拿不到这个属性一律拒绝访问
这里写图片描述
这里写图片描述

这个时候怎么从地址栏输入都无法范文主页就可以达到安全访问的目的~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值