JSP开发常见问题

1、JSP页面可以包含哪些元素?

  • HTML标签:<html></html>等等
  • JSP标记:包括指令标记、动作标记
  • 程序片段:<%  %>
  • JAVA表达式:<%= %>
  • JSP注释: <%--   --%>
  • Html注释: <!--   -->

2、JSP页面各种元素的语法

 表格;

序号 语法 对应元素
1 <html></html>  
2 <%@     %> JSP指令标记
3 <%!       %> 属性和方法声明
4 <%       %> 程序片段
5 <%=    %> JAVA表达式
6 <%--   --%> JSP注释
7 <!--    --> Html注释

3、JSP页面执行过程?

JSP页面执行时,经历3个阶段:翻译、编译、执行;

(1)翻译阶段:当浏览器首次访问一个JSP页面时候,Tomcat首先将该页面翻译为.java源文件,并保存在tomcat的work相应的目录下;该java文件其实为一个servlet;

(2)编译阶段:tomcat将该servlet编译为一个class文件;

(3)执行阶段:执行该servlet class文件,并将结果返回给浏览器;

  当浏览器第二次再访问同一个JSP页面时候,tomcat首先判断JSP页面是否发生了改变(通过jsp文件的日期判断),若没有改变,则直接跳转到第三个阶段,直接执行class文件,这样大大提高了JSP执行的速度;

  当有多个浏览器同时访问同一个JSP页面时,tomcat为每个请求分配一个线程处理该请求,这些线程之间共享同一个servlet对象中的属性和方法,但是独享servlet对象的service方法。

4、JSP页面中程序片对应servlet的什么?     程序片(<%    %>)翻译成servlet后,对应于service方法中代码片段,该片段将来以多线程独享方式运行;

5、JSP页面中的属性和方法的声明对应servlet的什么?

    属性或方法的声明(<%!   %>)对应于servlet中的属性和方法,当多个请求同时访问时,以多线程共享方式运行;  

6、JSP页面中的page指令标记常见的属性及作用?

     page指令(<%@ page contentType="" %>)用于设置JSP页面的属性,常用的属性有:contentType, pageEncoding, import;

    (1)contentType 属性   

 <%@ page contentType="text/html; charset=GB2312"  %>
       该属性主要用于当Tomcat将响应返回给浏览器时,告诉浏览器返回的内容是什么(text/html),以及浏览器该以什么字符集对内容进行解码(decode)

    (2)pageEncoding属性  

<%@ page pageEncoding="UTF-8" %>
     该属性用于2个地方:
  • 指定JSP页面的编码方式,也就是当编辑器(Eclipse等)将JSP文件保存到磁盘时以该方式进行编码。
  • 当Tomcat将JSP翻译成.Java源文件时,j将按照该属性的值对JSP页面中文本进行解码,因为JSP就是以按pageEncoding进行编码的;

    (3)import属性 

<%@ page import="java.util.*,java.io.*" %>  <%-- 多个包用逗号分隔  --%>

     导入JSP页面需要的package;

7、<%@ include file="file url" %>与<jsp:include page="" %>的区别是什么?

     (1)语法不同:            

              <%@ include file=" " %>是JSP指令标记;而<jsp:include page="" %>是JSP 动作标记;

     (2)运行原理不同:

             <%@ include file="" %>是静态加载的,也就是当将JSP翻译成Servlet源文件时候,tomcat从磁盘读取文件,然后替换掉该指令,做了一个字符串替换;与C、C++中的#include <stdio.h>作用一样;

            <jsp:include page="" %>是动态加载的,也就是执行JSP页面时候,当遇到JSP:include动作,Tomcat会将该page指定的JSP运行的结果插入到当前页面中;

     (3)使用的场景不同:

              <%@ include file="" %>一般用于将一个复杂的页面分割成多个较小的文件,并且每个小文件都可以重复使用,比如一个完整的JSP页面通常包含top.jsp(菜单、banner等等)+body.jsp(主显示区)+bottom.jsp(版权信息等等)

             <jsp:include page="" %>一般用于项目中多个页面中出现了重复功能,为了提高这些代码的重用,可以用该指令;

8、<jsp:include page %>动作标记的优点?

     代码模块化;实现功能的重用;

9、<jsp:include page %>与<jsp:forward  %>的区别

   

   forward:是将控制权交给forward的页面,该动作后面的JSP代码不再执行,用于实现请求的转发;

    include:动态加载运行结果,类似函数执行;

10、什么是session?

11、常见的html标签

       head title body p form input div

12、form标签中的属性的意义

  •  action属性:用于指定处理该form表单的对象,可以是一个JSP、Servlet等等;如果action="",表示由当前JSP页面来处理form表单;
  • method属性:指定浏览器向服务器提交表单时使用的方法,可以是get或post方法;通常使用post方法
  • name属性:指定form表单的名字
  • id属性:指定form表单的编号,要求id在JSP是唯一的;

13、常见form包含的元素及语法

       text、checkbox radio select submit

14、如何给<jsp:include > <jsp:forward >传递参数?

       <jsp:param >

15、浏览器的主要功能是什么?

  •   向DNS服务器发出域名解析请求;
  •  根据域名解析后的IP地址,与服务器建立TCP连接;
  •  使用HTTP协议向服务器发生请求;
  •  接收服务器的响应,并解析和渲染响应;

16、HTTP协议常见的状态码的意义是什么?

  • 200
  • 404
  • 500

17、HTTP协议的get、post方法的区别是什么?

  

18、Tomcat的主要作用?

  • 接收请求

19、JSP中的指令(directives)都有哪些?

  • page
  • include
  • taglib所有的指令的执行都发生在翻译阶段,也就是将JSP页面翻译为Servlet源代码的时候

猜你喜欢

转载自xiebh.iteye.com/blog/2361949