记录自己的学习历程---关于JSP的几个面试点(新手学习笔记,并不能保证内容正确性,如有误请指教)

仅作为新手在学习过程中的笔记,并不能保证正确性。

1)WEB项目的结构

META-INF
WEB-INF
    lib 放jar包
    class 放生成的字节码文件
index.jsp 默认主界面

2)JSP的执行过程(编译,翻译,执行)(为什么第一次访问JSP比后面访问的时候要慢)

JSP如果第一次执行需要将jsp翻译成.java文件,在编译为.class文件,所以第一次执行较慢,

后续执行已经有.class文件,可直接生成jsp页面,不用再进行翻译和编译,所以速度快。


3)JSP页面中的组成部分(静态内容,指令,小脚本,表达式,注释,声明,动作)
静态内容:HTML静态文本
指令:以"<%@"开头,以"%>"结尾
小脚本:<%java代码%>
表达式:<%=java表达式%>
注释:<!-- --> <%----%>两种注释
声明:<%!方法%>
动作:<jsp:xxxxx/>

3)<!-- --><%----%>两种注释的区别
<!-- -->注释在客户端源码中可见,不安全,会增加网络传输量,降低页面加载速度;
<%-- --%>注释在客户端源码中不可见,安全,降低了网络传输量,相比而言,<%-- --%>这种注释更好。

4)<%%>  <%!%> 中声明变量的区别

<% java代码 %>小脚本中的代码定义在在_jspservice方法中,为局部变量,不能在方法中再次声明方法;

<%! %>这里声明的变量是全局变量,方法也是类里的成员方法。

<%! int num1=0 %> num1=<%=++num1 %>全局变量,只初始化一次,每次刷新页面num1都会+1;
<% int num2=0 %> num2=<%=++num2 %>局部变量位于_jspservice方法中,每次刷新页面,都会调用_jspservice方法初始化num2,值不变。

5)include  指令和动作的区别
<%@include file="head.jsp" %>
 使用include指令时,翻译机将两个JSP页面翻译为一个.java文件,如果head.jsp中有String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";将会和index中的String path变量冲突,出现编译错误 。

<jsp:include page="foot.jsp"></jsp:include>
使用include动作时,翻译机会产生两个独立的java文件,编译产生两个独立的class文件,不会产生冲突,只是在产生网页时将两个文件合并-。
 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值