欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JSP开发常见问题

程序员文章站 2022-07-12 21:35:36
...

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源代码的时候