JSP系列一:JSP简介

378
一,JSP简介
 JSP是建立在Servlet规范提供的功能之上的动态网页技术。

 1,Servlet和JSP:servlet是含有HTML的Java代码,JSP是含有Java代码的HTML.

  Servlet在服务器上执行和解释浏览器的请求,承担客户端和应用程序之间的中间层角色,把动态的内容混合到静态的内容中产生HTML.
  JSP在HTML中嵌入Java脚本代码和JSP标记,将静态(HTML)和动态(java代码)内容分离,实现内容和表示的分离。

 2,Servlet的不足:对表示(显示)的处理不足。
  a,Servlet中HTML的编写和维护都比较困难。
  b,不能使用标准的HTML工具。
  c,非java开发人员难以处理HTML。

 3,JSP的好处:便利性,生产效率和可维护性

  JSP最终会转换成Servlet,JSP页面上能够执行的任务都可以用Servlet完成,但底层的等同性不代表Servlet和JSP页面对所有的情况都适用。
  问题不在于技术,而在于便利性,生产效率和可维护性的不同。
  a,JSP中的HTML可维护性好。
  b,可以使用网站开发工具。
  c,便于团队开发,将静态HTML和动态内容进行弱分离和强分离,提高生产效率。


二,JSP运行机制简介

 1,JSP的生命周期
   转换阶段
  (1),客户端发送对JSP页面的请求,
  (2),JSP容器(WEB容器)检查JSP页面的语法,将JSP页面转译为Servlet源文件(java文件)。
   该类必须实现javax.servlet.jsp.JspPage接口。
   而HttJspPage是应用于HTTP协议的请求和响应的JspPage扩展接口。
   org.apache.jasper.runtime.HttpJspBase是Tomcat对HttJspPage接口的实现类。
   源文件放在Tomcat的/work/Catalina/localhost目录下的相应的项目目录下.
    执行阶段
  (3),Servlet容器加载(编译成class文件)Servlet源文件,
  (4),创建一个Servlet实例,将Servlet载入到服务器内存中来处理请求。
  (5),初始化JSP页面,调用_jspInit方法。
  (6),由容器自动定义调用_jspService方法,生成响应内容。
  (7),销毁JSP页面,_jspDestroy。
 
 2,第一次加载JSP页面和JSP页面被修改的情况
 只有在第一次加载JSP页面和JSP页面被修改的时候,“JSP容器将JSP页面转换为Servlet源文件”。
 对于以后的请求,JSP容器会检查JSP页面是否被修改。该JSP页面被修改后,JSP容器转译该JSP页面更新Servlet源文件。
 
 3,之后的请求只会“由容器自动调用_jspService方法,生成响应内容”。

 4,服务器重启后,容器从执行阶段开始“创建一个Servlet实例,将Servlet载入到服务器内存中来处理请求”。


三,JSP语法简介
 一个JSP页面由元素和模板数据组成。
 元素是必须由JSP容器进行处理,而模板数据是JSP容器不处理的,将原封不动直接传递给客户端。

 1,模板数据的构成:
  静态内容:一般由HTML构成。
  注释:

 2,元素的构成:
  指令(directive): page指令,include指令,tiglib指令。

  脚本: 表达式,Scriptlet,声明;

  动作:
   * <jsp:userBean>,<jsp:setProperty>和<jsp:getProperty>以及<jsp:param>
   * <jsp:include>和<jsp:forward>
   * 其他与定义jsp文档有关动作。 

四,JSP隐含对象

 1,输入输出对象 : HttpServletRequest的request, HttpServletResponse的response, JspWriter的out;
 2,作用域通信对象 : HttpSession的session, ServletContext的application, PageContext的pageContext;
 3,servlet对象 : Object的page, ServletConfig的config;
 4,错误对象 : Throwable的exception;

你可能感兴趣的:(java,html,jsp,servlet,服务器,include)