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

本篇博客知识点

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

page指令细节

在JSP页面中可以设置page指令的属性,用快捷键AIT+/可以得到提示
JSP学习---page指令细节、include指令细节和安全登录_第1张图片

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

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

<body>
    <h2>Page指令细节h2>
    
    <%
        session.setAttribute("name", "Jack");
    %>
    ${name}

  body>

页面显示结果:正常!
JSP学习---page指令细节、include指令细节和安全登录_第2张图片

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

这里写图片描述
JSP学习---page指令细节、include指令细节和安全登录_第3张图片

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

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

<body>
    <h2>Page指令细节h2>
    
    <%
        session.setAttribute("name", "Jack");
    %>
    ${name}

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

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

访问页面的时候就,直接回跳转过去,同时还可以拿到异常原因
JSP学习---page指令细节、include指令细节和安全登录_第4张图片

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

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

JSP页面生成时候会自动帮我们写好一段代码
JSP学习---page指令细节、include指令细节和安全登录_第5张图片

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

我把错误信息翻译出来
JSP学习---page指令细节、include指令细节和安全登录_第6张图片

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

JSP学习---page指令细节、include指令细节和安全登录_第7张图片

这边错误也没了
这里写图片描述
静态页面导入之后的结果~
JSP学习---page指令细节、include指令细节和安全登录_第8张图片

动态导入
而动态导入则不会出现前面的错误(重复命名变量)
这里写图片描述
结果很友好啊! 哈哈哈
JSP学习---page指令细节、include指令细节和安全登录_第9张图片

充满好奇心的我要去,看看Tomcat底层代码。为什么静态导入会出错,而动态导入不会~
一打开服务器底层文件,我发现没有我要静态导入的includeOne生成的java文件
JSP学习---page指令细节、include指令细节和安全登录_第10张图片

打开PageJsp生成的java文件,我发现原来静态导入,直接是把需要导入的JSP代码贴进来,而动态导入是调用一个方法。这也是造成静态导入会重复命名变量名的原因了
JSP学习---page指令细节、include指令细节和安全登录_第11张图片

所以总结了一下

 <%@include file="include.jsp" %>
     
     <br/>

     <jsp:include page="include2.jsp">jsp:include>
     

页面实现安全登录

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

两边
1.在登录这儿,登录成功后在session中设置一个 login属性。
2.在主页那儿判断,拿不到这个属性一律拒绝访问
JSP学习---page指令细节、include指令细节和安全登录_第12张图片
JSP学习---page指令细节、include指令细节和安全登录_第13张图片

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

你可能感兴趣的:(J2EE)