java从入门到精通----servlet09

3)DAO的优点

a.DAO封装了数据访问逻辑,调用者不用关心数据访问逻辑是 如何实现的。这样,代码更好维护。

b.方便测试。如果将数据访问写在servlet里面,需要部署 整个应用才能测试。

1.jsp

(1)jsp是什么?

sun公司制订的一种服务器端动态页面技术规范。

注:
    虽然使用Servlet也可以生成动态页面,但是过于
繁琐(需要使用out.println语句),并且不利于页面的
维护(比如,要修改页面就必须修改java代码),所以,sun
才制订了jsp技术规范。
    jsp其实是一个以.jsp为后缀的文件,主要内容是
html和少量的java代码。容器会将jsp文件转换成一个对应的servlet然后执行。
    jsp的本质就是一个servlet。

(2)如何写一个jsp文件?

step1. 添加一个以.jsp为后缀的文件。

step2. 在该文件里面,可以使用如下元素:

1)html(css,javascript)

直接写即可。

2)java代码

方式一 java代码片断
<% java代码  %>
方式二  jsp表达式
<%= java表达式 %>

3)隐含对象

a.什么是隐含对象?
直接可以使用的对象,比如out、request、response。
b.为什么可以直接使用这些隐含对象?
因为容器会自动添加获得这些对象的语句。

4)指令

a.什么是指令?
通知容器,在将jsp文件转换成一个Servlet类时,
做一些的额外的处理,比如导包。
b.指令的语法
<%@ 指令名 属性=值 %>
c.page指令
    import属性:用于指定要导的包名。
    比如 
<%@ page import="java.util.*,java.text.*"%>
    contentType属性:设置response.setContentType方法的内容。
    pageEncoding属性:告诉容器,在读取jsp文件的内容时,使用指定的字符集来解码。

java从入门到精通----servlet09

(3)jsp是如何执行的?

1)阶段一 容器将.jsp文件转换成一个Servlet类。

html(css,js) ----> service方法里面,使用out.write输出。
<%       %>  -----> service方法里面,照搬。
<%=      %>  -----> service方法里面,使用out.print输出。

2)阶段二 容器调用该Servlet

需要编译、实例化、然后调用service方法。

练习 写一个date.jsp,输出当前的系统日期,比如

输出 "2018-10-31"