读《轻量级JavaEE企业应用实战(第三版)》笔记(二)

来源:互联网 发布:数据库软件工程师 编辑:程序博客网 时间:2024/05/20 04:14

今天又是这个点看完今天的任务,今天主要看了第二章:JSP/servlet及相关技术详解

可以说从现在开始进入了JavaEE开发的重要内容,jsp和servlet是JavaEE规范的两个基本成员,他们也是java web开发的重点知识,也是Java EE开发的基础知识,因此掌握他们刻不容缓。

首先是jsp的基本原理,jsp其实本质上就是servlet,jsp文件必须在jsp服务器内运行,jsp文件必须生成servlet才能执行,每个jsp页面的第一个访问者速度很慢,因为必须要等待jsp编译成servlet。但是为什么不直接使用servlet呢?这是因为servlet的开发效率非常低,特别是当使用servlet生成表现层页面时;而且servlet是标准的java类,这就必须由程序员开发、修改,美工人员难以参与servlet页面的开发。jsp就是简化的servlet,替代servlet在表现层的作用。但是在MVC规范出现后,jsp就只作为表现层技术,其作用有两点:负责收集用户请求参数;将应用的处理结果、状态数据呈现给用户。而servlet也仅作为控制器使用,作用类似于调度员:所有的用户请求都发给servlet,servlet调用Model来处理用户请求,并调用JSP来呈现处理结果。

jsp和servlet的主要区别是:servlet中没有内置对象;对于静态的html标签,servlet都必须用页面输出流来逐行输出。

创建servlet实例的两个时机:1.客户端第一次请求某个servlet时,系统创建该servlet的实例,大部分的servlet实例都是这样的;2.web应用启动时立即创建servlet实例,即load-on-startup servlet,这种方式通常是用于某些后台服务的servlet,或者需要拦截很多请求的servlet;

每个servlet的运行都遵循如下的生命周期:

1.创建servlet实例;

2.web容器调用servlet的init方法,对servlet进行初始化;

3.servlet初始化后就一直存在于容器中,用于相应客户端请求;

4.web容器决定销毁servlet是,先调用servlet的destroy方法,通常在关闭web应用时销毁servlet。

下面就是些jsp的语法知识:

(1)jsp基础语法格式:

1.注释:有两种一种是常用的html注释方法<!-- --> 这种注释浏览页面查看源代码时,可以看到;还有一种是jsp注释<%--  注释内容 --%>,这种注释不会发送到客户端因此查看源码也看不到;

2.jsp声明: <%! 声明部分 %>这种形式很像java类中的声明,可以使用修饰符,但是不能使用abstract修饰

3.jsp表达式:<%=表达式 %>可以输出变量和方法的返回值;

4.jsp脚本: <% java 代码%> 记得java代码块要与html分离开来,尤其是尖括号的位置要弄正确。

(2)jsp的3个编译指令:

1.page :<%@ page language="java"; contentType="text/html"; charset="utf-8";import="java.lang.object";info="这里可以设置说明信息,在页面中使用<%=getServletInfo()%>来获取值";errorPage="指向提示错误信息的页面,与错误界面中的isErroPage="true'遥呼相应"%>:

2.include:<%@ include file="要导入的文件"%>此种为静态导入,加载页面时,就已经开始导入

3.taglib:用于定义和访问自定义的标签,如jstl<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

(3)jsp的7个动作标记:用来进行于网页加载、转向甚至引用外部组件等相关操作。

1、forward:请求转发,都是一次请求,地址栏中的地址不变

<jsp:forward page="forwardto.jsp">

     <jsp:param name="name" value="value"/>

</jsp:forward>

增加的请求参数的值可以通过HttpServletRequest类的getParameter()来获得;

2、include:请求时载入,是动态的载入和<%@ include file="要导入的文件"%>静态载入要区别;

     <jsp:include page="要载入的文件">

3、plugin:主要用于下载服务器端的javaBean或Applet到客户端执行。不常用,不太晓得

4、userBean:<jsp:userBean id="对象实例名称"  class="类名" scope="page/request/session/application">

5、getProperty:<jsp:getProperty name="对象实例名称" property=“类中的一个属性” >

6、setProperty:<jsp:setProperty name="对象实例名称" property="类中的一个属性" value="设定的属性值">

7、param:只能和其他的动作标记一起使用 < param name="name" value="value">

(4)jsp的9大内置对象:

1.request

2.response

3.out

4.page

5.session

6.application

7.exception

8.config

9.pagecontext

原创粉丝点击