Dao学习笔记

Dao

data access Object数据访问对象

封装模块的数据,比如说数据库的访问,文件的访问,目录服务器的访问

Dao就是用来封装核心的业务逻辑层

MVC思想

Model:模型  Dao(业务分析操作)

view:视图  (展示数据)jsp html

Control:控制层  (调用逻辑层来操作数据) servlet struts2(action)

1.书写Dao的方法首先书写一个实体类(javabean) 关联数据库当中的字段

如Employer类,让类中成员变量与数据库中的表中数据成员字段一一对应,

2.写一个接口Dao接口

interface

比如要写一个IEmployerDAO,I代表是个接口,存储我的抽象方法。

public interface IEmployerDAO{

    public List<Employer> findAll();//业界不推荐public ResultSet findAll()耦合度很高,而采用实体类的集合,通过集合来实现数据的交互

}

实现DAO接口,写一个实现类来实现DAO接口

比如EmployerDAOimpl implements IEmployerDAO{

      /*写对应的方法来进行操作*/

}

运用工厂模式来关联Servlet接口与实体类的关系

Factory类,工厂为调用者生产需要的接口

外部文件,

dao.properties

书写规范:接口名=包.实现类

书写相关的方法,找到这个文件

封装多个Servlet

提炼成一个Servlet

三种请求资源路径的方法

Servlet容器如何请求多个资源路径,

上面url-pattern

使用一个Servlet来管理5个不同的Servlet,处理的不同的资源路径

方法1

*.do配置url-pattern

精确匹配方式

<url-pattern>/abc.html</url-pattern>


方法2

使用通配符方法来查找资源路径

"*"来代替url-pattern 0个或者多个

<url-pattern>/*</url-pattern>


方法3

使用后缀匹配,*.开头,后面使用一个或者多个地址字符

<url-pattern>*.do</url-pattern>

如果以上都没有,那么就查找servlet对应的文件,如果找不到,返回404

如何让一个servlet请求多个资源

show code

1.使用后缀的url-pattern匹配模式

2.分析请求路径资源

String url=request.getRequestURI()返回String类型的

http://localhost:8080/web04/list

通过String的API来截取URL

uri.subString(uri.lastindexof("/"),uri.lastindexOf("."));

JSP技术是Sun公司制定一种服务端动态页面的规范,所以维护起来也困难

因为直接使用Sevlet虽然也可以生成动态页面,但是过于繁琐

维护困难

jsp实际是以.jsp后缀

<%@page language="java" import="java.util.*" pageEncoding="utf-8"%>

以“xxx.jsp”命名的文件,其本质就是一个小型的Servlet

如何写一个jsp页面,写一个以xxx.jsp的文件

添加内容完成jsp编写

1.直接在html(css+javascript)书写

2.java代码

a.java片段<% java代码%>

b.java表达式

<%=java表达式%>

JSP有九大隐含的对象,直接可以使用不需要导包,Session

1.request请求对象

2.response响应对象

3.session对象

4.out对象

5.pageContext页面上下文

6.config配置对象

7.cookie缓存对象 可能会记录网页当中的一些信息

8.config对象

9.exception对象异常信息

jsp指令

告诉容器,操作jsp操作的额外的信息量,比如说导包信息,编码格式,当前页面的语法,语法是什么。

page指令,写在最开始

<%@page指令 属性名称=“属性值”%>

ContentType=“text/html;charset=ISO-8859-1”;当有pageEncoding存在时,这个可以省略

pageEncoding属性告诉容器整个JSP页面的编码格式

因为有部分的容器会默认是ISO-8859-1不能显示中文编码

如果说添加该属性容器就可以正确的解码了

书写JSP文件

转发和重定向

转发:servlet中未完成的动作交给下一个组件叫jsp操作,

1.转发的地址栏不会发生改变的。因为操作的是同一个请求对象。都是使用同一个request

2.转发都是在服务端中进行所有的操作,也就是都是在局限于同一个应用(服务器端的应用)

转发和重定向的相同点和不同点

1.相同点,操作之前转发和重定向,都不能关闭流对象,连接数据库相关对象

并且两者都会清空response对象上的所有缓冲信息。

2.不同点

重定向地址栏上的地址会发生改变,改变的地址就是重定向的地址

转发地址栏不会发生改变,操作的是同一个请求对象

重定向操作是response对象,转发操作request对象

转发request.getRequestDispachter("test.jsp").forward()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值