注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络软件与程序设计网络编程J2EE整合详解与典型案例:一本书搞定Struts+Spring+Hibernate

J2EE整合详解与典型案例:一本书搞定Struts+Spring+Hibernate

J2EE整合详解与典型案例:一本书搞定Struts+Spring+Hibernate

定 价:¥79.80

作 者: 思志学
出版社: 电子工业出版社
丛编项: 程序天下
标 签: J2ee

购买这本书可以去


ISBN: 9787121055041 出版时间: 2008-01-01 包装: 平装
开本: 16 页数: 708 字数:  

内容简介

  本书是笔者在多年项目开发过程中的经验总结,它通过丰富的实例由浅入深、循序渐进地介绍了J2EE的体系结构和如何利用开源框架Struts、Spring和Hibernate进行J2EE程序的开发,从而帮助软件开发人员快速掌握J2EE的设计思想,并能将其应用于实战中。通过本书,读者可以了解到J2EE的基本思想,熟练掌握如何进行J2EE程序的开发。全书共分15章。第1章简要介绍了J2EE的来源、整体框架及其核心技术。第2章对MVC模式的设计思想、规范及它的优缺点进行了讲解。第3章至第9章对JDK, Tomcat, Eclipse, Log4j, Ant, JUnit和CVS进行了介绍,目的是使读者能快速地建立J2EE的开发环境,迅速掌握在开发过程中经常要使用到的一些开源工具的使用方法。第10章至第12章主要介绍如何使用Spring、Struts和Hibernate来进行J2EE程序的开发,并对它们之间的整合方式进行讲解,第13章至第16章主要通过网上调查系统、内容管理系统、在线考试系统和信息发布系统这4个实例,从可行性分析开始,按照软件开发的过程,深入地讲解软件开发的步骤,使读者达到实战的要求。本书既有理论又讲解了实践,而且基本概括了进行J2EE开发所要用到的所有开发工具和软件,目的就是使读者跟着本书的讲解学习完之后,能熟练地将其应用到实战中。本书适用于初、中、高级软件开发人员,同时也可用做高校相关专业师生和社会培训班的教材。

作者简介

暂缺《J2EE整合详解与典型案例:一本书搞定Struts+Spring+Hibernate》作者简介

图书目录

第1章  J2EE快速入门    1
1.1  J2EE概述    2
1.1.1  J2EE的来源    2
1.1.2  J2EE整体框架    3
1.1.3  从J2EE到JavaEE    3
1.2  J2EE组件    5
1.2.1  客户端组件    5
1.2.2  Web组件    5
1.2.3  业务逻辑组件    5
1.3  J2EE容器    5
1.3.1  容器服务    6
1.3.2  容器类型    6
1.4  J2EE核心技术    6
1.4.1  Servlet    7
1.4.2  JSP(Java服务页面)    8
1.4.3  EJB(企业JavaBean)    9
1.4.4  JDBC(Java数据库连接)    9
1.4.5  JTA/JTS(Java事务)    10
1.4.6  JNDI(Java命名和目录服务)    11
1.4.7  JavaMail(Java邮件服务)    11
1.4.8  RMI(远程方法调用)    11
1.4.9  JMS(Java消息服务)    12
1.4.10  JMX(Java分布式管理)    12
1.4.11  JACC(Java容器授权合同)    12
1.4.12  JCA(Java连接器体系)    12
1.5  小结    13
第2章  使用MVC更好地实现J2EE    14
2.1  MVC模式概述    15
2.1.1  MVC模式的设计思想    15
2.1.2  MVC模式的处理过程    16
2.2  Model规范概述    17
2.2.1  Model1简介    17
2.2.2  Model2简介    17
2.3  使用MVC的优劣    18
2.3.1  使用MVC模式的优点    18
2.3.2  使用MVC模式的劣势    18
2.4  小结    19
第3章  建立Java的开发平台    20
3.1  建立Java的开发环境    21
3.1.1  下载JDK    21
3.1.2  安装JDK    23
3.1.3  设定Path,CLASSPATH和
3.1.3  JAVA_HOME    25
3.2  验证JDK是否安装成功    26
3.3  建立J2EE的开发环境    26
3.3.1  下载SDK    26
3.3.2  安装SDK    29
3.3.3  设定Path,CLASSPATH和
3.3.3  J2EE_HOME    31
3.4  小结    32
第4章  Tomcat使用指南    33
4.1  Tomcat简介    34
4.1.1  Tomcat的目录结构    34
4.1.2  Tomcat的配置参数    34
4.2  建立Tomcat的开发环境    37
4.2.1  下载Tomcat    37
4.2.2  设定TOMCAT_HOME    38
4.3  验证Tomcat是否安装成功    38
4.4  创建和发布Web应用程序    41
4.4.1  创建和发布JSP应用程序    41
4.4.2  创建和发布Servlet应用程序    44
4.5  小结    46
第5章  Eclipse使用指南    47
5.1  Eclipse简介    48
5.1.1  Eclipse的历史    48
5.1.2  Eclipse的运行机制    48
5.2  建立Eclipse的开发环境    48
5.2.1  下载Eclipse    48
5.2.2  配置Eclipse    49
5.3  整合Eclipse和Tomcat    50
5.3.1  下载Eclipse的Tomcat插件    50
5.3.2  为Eclipse配置Tomcat插件    50
5.4  使用Eclipse建立Web开发项目    52
5.5  Eclipse的常用快捷键    56
5.5.1  有关格式化的快捷键    56
5.5.2  有关调试的快捷键    56
5.5.3  有关重构的快捷键    57
5.6  小结    57
第6章  Log4j使用指南    58
6.1  Log4j介绍    59
6.1.1  Log4j历史    59
6.1.2  Log4j组成    59
6.2  建立Log4j的开发环境    60
6.2.1  下载Log4j    60
6.2.2  配置Log4j    61
6.3  Log4j的使用方法    61
6.3.1  配置Log4j    61
6.3.2  配置根Logger    62
6.3.3  指定日志输出位置    63
6.3.4  指定日志输出格式    64
6.3.5  指定日志输出优先级    65
6.3.6  在代码中使用Log4j    65
6.4  改进Log4j    65
6.5  小结    67
第7章  Ant使用指南    68
7.1  Ant介绍    69
7.1.1  Ant简介    69
7.1.2  为什么要使用Ant    69
7.2  建立Ant的开发环境    71
7.2.1  下载Ant    71
7.2.2  配置Ant    72
7.3  Ant的使用方法    73
7.3.1  Ant能完成的工作    73
7.3.2  配置文件build.xml    73
7.3.3  编译源代码    75
7.3.4  创建JAR文件    76
7.4  小结    76
第8章  JUnit使用指南    77
8.1  JUnit介绍    78
8.1.1  JUnit简介    78
8.1.2  为什么要使用JUnit    78
8.2  建立JUnit的开发环境    79
8.2.1  下载JUnit    79
8.2.2  配置JUnit    79
8.3  JUnit的使用方法    81
8.3.1  继承TestCase    81
8.3.2  编写测试方法    83
8.3.3  编写断言    84
8.4  JUnit的新特性    89
8.4.1  改变测试方法的命名方式    89
8.4.2  不再继承TestCase    89
8.4.3  改变初始化和销毁方式    90
8.4.4  改变异常处理的方式    91
8.5  小结    93
第9章  CVS使用指南    94
9.1  CVS介绍    95
9.1.1  CVS简介    95
9.1.2  为什么要使用CVS    95
9.2  建立CVS的开发环境    95
9.2.1  下载CVS    95
9.2.2  配置CVS    97
9.3  CVS的使用方法    99
9.3.1  添加CVS资源库    100
9.3.2  提交和更新代码    104
9.4  小结    106
第10章  使用Spring快速
第10章  实现Web开发    107
10.1  Spring介绍    108
10.1.1  Spring简介    108
10.1.2  下载Spring    109
10.1.3  配置Spring    111
10.2  Spring核心思想    111
10.2.1  反向控制(IoC)    111
10.2.2  依赖注入(DI)    115
10.3  利用Spring在JSP页面输出
10.3  “HelloWorld”的示例    117
10.3.1  建立myHelloWorld工程    117
10.3.2  编写JSP页面helloWorld.jsp    120
10.3.3  编写控制器
10.3.3  HelloWorldController.java    121
10.3.4  建立Spring的配置文档
10.3.3  dispatcherServlet-servlet.xml    121
10.3.5  配置web.xml    122
10.3.6  启动Tomcat运行程序    123
10.4  Spring 的视图(View)    124
10.4.1  视图简介    124
10.4.2  视图解析    128
10.5  Spring的控制器(Controller)    132
10.5.1  Controller接口    132
10.5.2  命令控制器
10.5.2  (BaseCommandController)    135
10.5.3  表单控制器
10.5.3  (SimpleFormController)    142
10.5.4  多动作控制器
10.5.3  (MultiActionController)    145
10.6  Spring的视图映射机制    157
10.6.1  分发器(DispatcherServlet)    157
10.6.2  视图映射    172
10.7  Spring的模型(Model)    173
10.7.1  模型简介    173
10.7.2  模型封装    175
10.8  小结    176
第11章  使用Struts快速实现
第11章  Web开发    177
11.1  Struts介绍    178
11.1.1  Struts简介    178
11.1.2  Struts和Spring比较    178
11.1.3  下载Struts    179
11.1.4  配置Struts    180
11.2  Struts的核心    183
11.2.1  ActionServlet(分发器)    184
11.2.2  Action(控制器)    202
11.2.3  Action Mapping(映射)    206
11.2.4  ActionForm(表单控制器)    210
11.2.5  ActionErrors(错误处理)    215
11.2.6  DispatchAction(多动作控制器)    216
11.3  利用Struts实现用户登录的示例    222
11.3.1  编写实现登录的页面login.jsp    222
11.3.2  编写存储登录用户信息的类
11.3.2  User.java    222
11.3.3  编写控制器LoginAction.java    223
11.3.4  配置Struts文档struts-config.xml    224
11.3.5  配置web.xml    224
11.3.6  启动Tomcat运行示例    225
11.4  整合Spring和Struts    226
11.4.1  Spring和Struts的整合方式    226
11.4.2  编写实现登录的页面regedit.jsp    238
11.4.3  编写存储登录用户信息的类
11.4.3  User.java    239
11.4.4  编写控制器RegeditAction.java    239
11.5  小结    243
第12章  使用Hibernate快速
第12章  实现持久层处理    244
12.1  Hibernate介绍    245
12.1.1  Hibernate简介    245
12.1.2  下载Hibernate    245
12.1.3  配置Hibernate    248
12.2  Hibernate的核心    252
12.2.1  Configuration(配置Connection)    252
12.2.2  SessionFactory(Connection工厂)    269
12.2.3  Session(提供Connection)    271
12.3  使用Hibernate操作数据库的示例    276
12.3.1  创建数据库表    276
12.3.2  编写表对应的JavaBean    279
12.3.3  编写JavaBean对应的xml    279
12.3.4  编写Hibernate的配置文件    282
12.3.5  编写并验证测试程序    284
12.4  Hibernate的配置文件    286
12.4.1  Hibernate的两种配置方式    286
12.4.2  配置数据库连接池    287
12.4.3  使用JNDI    288
12.5  使用Hibernate的工具快速生成
12.5  映射文件和POJO    289
12.5.1  使用MiddleGen根据数据库产生
12.5.1  映射文件    289
12.5.2  使用hbm2java根据映射文件
12.5.1  产生POJO    297
12.6  整合Struts,Spring和Hibernate实现
12.6  用户管理    299
12.6.1  Struts,Spring和Hibernate的
12.5.1  整合方式    300
12.6.2  编写用户注册画面regedit.jsp    303
12.6.3  编写用户登录画面login.jsp    303
12.6.4  编写注册控制器RegeditAction.java    304
12.6.5  编写登录控制器LoginAction.java    304
12.6.6  建立数据库表    305
12.6.7  生成映射文件User.hbm.xml    305
12.6.8  生成POJO    306
12.6.9  编写注册的业务逻辑接口
12.6.9  Regedit.java    308
12.6.10  编写注册的业务逻辑类
12.6.10  RegeditImpl.java    309
12.6.11  编写登录的业务逻辑接口
12.6.10  Login.java    310
12.6.12  编写登录的业务逻辑类
12.6.10  LoginImpl.java    311
12.6.13  编写用户接口UserDAO.java    312
12.6.14  编写用户实现类
12.6.10  UserDAOImpl.java    314
12.6.15  编写Struts的配置文件
12.6.10  struts-config.xml    316
12.6.16  编写Spring和Hibernate的配置
12.6.10  文件spring-config.xml    317
12.6.17  编写web.xml    318
12.6.18  验证示例    319
12.7  小结    321
第13章  网上调查系统    322
13.1  系统概述    323
13.2  需求分析    324
13.2.1  系统用例图    324
13.2.2  需求规格说明书    324
13.3  系统设计    329
13.3.1  设计视图层    329
13.3.2  设计持久层    348
13.3.3  设计业务逻辑层    359
13.3.4  设计控制层    360
13.4  架构设计和环境搭配    361
13.4.1  网上调查系统采用的架构    361
13.4.2  在Eclipse下建立项目mySurvey    361
13.4.3  编写本项目的Ant build文件    366
13.4.4  配置本项目的web.xml文件    367
13.5  编写网上调查系统的JSP页面    368
13.5.1  用户注册页面regedit.jsp    368
13.5.2  用户登录页面login.jsp    369
13.5.3  设定调查题目的页面
13.5.3  surveyName.jsp    370
13.5.4  设定调查项目的页面
13.5.3  surveyOption.jsp    372
13.5.5  设定调查子项目的页面
13.5.3  surveyChildOption.jsp    373
13.5.6  填写调查的页面survey.jsp    375
13.5.7  查看调查结果的页面surveyOK.jsp    376
13.6  根据数据库表生成XML和POJO    377
13.6.1  生成对应的XML    378
13.6.2  生成POJO    392
13.7  编写网上调查系统的DAO    400
13.7.1  用户DAO接口UserDAO.java    400
13.7.2  调查题目DAO接口
13.5.3  SurveyDAO.java    401
13.7.3  调查项目DAO接口
13.5.3  SurveyOptionDAO.java    401
13.7.4  调查子项目DAO接口
13.5.3  SurveyChildDAO.java    401
13.7.5  调查结果DAO接口
13.5.3  SurveyChildCountDAO.java    402
13.7.6  用户DAO实现类
13.5.3  UserDAOImpl.java    402
13.7.7  调查题目DAO实现类
13.5.3  SurveyDAOImpl.java    403
13.7.8  调查项目DAO实现类
13.5.3  SurveyOptionDAOImpl.java    404
13.7.9  调查子项目DAO实现类
13.5.3  SurveyChildDAOImpl.java    405
13.7.10  调查结果DAO实现类
13.7.10  SurveyChildCountDAOImpl.java    406
13.8  编写网上调查系统的业务逻辑类    407
13.8.1  注册接口Regedit.java    407
13.8.2  登录接口Login.java    407
13.8.3  设定调查题目接口SetSurvey.java    407
13.8.4  设定调查项目接口
13.8.4  SetSurveyOption.java    408
13.8.5  设定调查子项目接口
13.8.4  SetSurveyChild.java    408
13.8.6  统计调查结果接口
13.8.4  SetSurveyChildCount.java    409
13.8.7  注册实现类RegeditImpl.java    409
13.8.8  登录实现类LoginImpl.java    410
13.8.9  设定调查题目实现类
13.8.4  SetSurveyImpl.java    411
13.8.10  设定调查项目实现类
13.8.10  SetSurveyOptionImpl.java    412
13.8.11  设定调查子项目实现类
13.8.10  SetSurveyChildImpl.java    413
13.8.12  统计调查结果实现类
13.8.10  SetSurveyChildCountImpl.java    413
13.9  编写网上调查系统的控制器类    414
13.9.1  登录控制器类LoginAction.java    414
13.9.2  注册控制器类RegeditAction.java    416
13.9.3  设定调查题目控制器类
13.9.3  SurveyAction.java    417
13.9.4  设定调查项目控制器类
13.9.3  SetSurveyAction.java    418
13.10  编写配置文件
13.10  dispatcherServlet-servlet.xml    427
13.11  运行验证程序    433
13.12  小结    437
第14章  内容管理系统    438
14.1  系统概述    439
14.2  需求分析    440
14.2.1  系统用例图    440
14.2.2  需求规格说明书    440
14.3  系统设计    444
14.3.1  设计视图层    444
14.3.2  设计持久层    451
14.3.3  设计业务逻辑层    459
14.3.4  设计控制层    459
14.4  架构设计和环境搭配    460
14.4.1  内容管理系统采用的架构    460
14.4.2  在Eclipse下建立项目myEdition    460
14.4.3  编写本项目的Ant build文件    464
14.4.4  配置本项目的web.xml文件    465
14.5  编写内容管理系统的JSP页面    465
14.5.1  用户注册页面regedit.jsp    466
14.5.2  用户登录页面login.jsp    466
14.5.3  设定内容类别的页面type.jsp    467
14.5.4  发布内容页面edit.jsp    468
14.5.5  浏览内容页面index.jsp    470
14.6  根据数据库表生成XML和POJO    471
14.6.1  生成对应的XML    471
14.6.2  生成POJO    482
14.7  编写内容管理系统的DAO    487
14.7.1  用户DAO接口UserDAO.java    487
14.7.2  内容类别DAO接口
14.7.4  ContentTypeDAO.java    488
14.7.3  内容DAO接口ContentDAO.java    488
14.7.4  用户DAO实现类
14.7.4  UserDAOImpl.java    489
14.7.5  内容类别DAO实现类
14.7.4  ContentTypeDAOImpl.java    489
14.7.6  内容DAO实现类
14.7.4  ContentDAOImpl.java    490
14.8  编写内容管理系统的业务逻辑类    491
14.8.1  注册接口Regedit.java    491
14.8.2  登录接口Login.java    492
14.8.3  设定内容类别的接口
14.7.4  SetContentType.java    492
14.8.4  发布接口Edit.java    492
14.8.5  注册实现类RegeditImpl.java    493
14.8.6  登录实现类LoginImpl.java    494
14.8.7  设定内容类别的实现类
14.8.7  SetContentTypeImpl.java    494
14.8.8  发布实现类EditImpl.java    495
14.9  编写内容管理系统的控制器类    496
14.9.1  登录控制器类LoginAction.java    496
14.9.2  注册控制器类RegeditAction.java    498
14.9.3  设定内容类别的控制器类
14.8.7  ContentTypeAction.java    498
14.9.4  发布控制器类EditAction.java    499
14.9.5  内容控制器类ContentAction.java    501
14.9.6  浏览内容的控制器类
14.8.7  IndexAction.java    501
14.10  编写Struts的配置文件
14.10  struts-config.xml    503
14.11  编写Spring和Hibernate的配置文件
14.10  spring-config.xml    504
14.12  解决Struts的中文乱码问题    507
14.13  运行验证程序    509
14.14  小结    512
第15章  在线考试系统    513
15.1  系统概述    514
15.2  需求分析    515
15.2.1  系统用例图    515
15.2.2  需求规格说明书    515
15.3  系统设计    520
15.3.1  设计视图层    520
15.3.2  设计持久层    531
15.3.3  设计业务逻辑层    540
15.3.4  设计控制层    541
15.4  架构设计和环境搭配    541
15.4.1  在线考试系统采用的架构    542
15.4.2  在Eclipse下建立项目myExam    542
15.4.3  编写本项目的Ant build文件    545
15.4.4  配置本项目的web.xml文件    546
15.5  编写在线考试系统的JSP页面    548
15.5.1  用户注册页面regedit.jsp    548
15.5.2  用户登录页面login.jsp    549
15.5.3  设定试题种类的页面shitiType.jsp    549
15.5.4  设定试题基本信息的页面shiti.jsp    550
15.5.5  设定试题项目的页面shitiOption.jsp    552
15.5.6  组织试卷的页面examInfo.jsp    554
15.5.7  参加考试的页面exam.jsp    555
15.5.8  考试成绩的页面examChengji.jsp    557
15.6  根据数据库表生成XML和POJO    558
15.6.1  生成对应的XML    558
15.6.2  生成POJO    571
15.7  编写在线考试系统的DAO    580
15.7.1  用户DAO接口UserDAO.java    580
15.7.2  试题种类DAO接口
15.7.2  ShitiTypeDAO.java    581
15.7.3  试题题目DAO接口
15.7.2  ShitiDAO.java    581
15.7.4  试题项目DAO接口
15.7.2  ShitiOptionDAO.java    582
15.7.5  试卷DAO接口ExamDAO.java    582
15.7.6  用户DAO实现类
15.7.2  UserDAOImpl.java    582
15.7.7  试题种类DAO实现类
15.7.2  ShitiTypeDAOImpl.java    583
15.7.8  试题题目DAO实现类
15.7.2  ShitiDAOImpl.java    584
15.7.9  试题项目DAO实现类
15.7.2  ShitiOptionDAOImpl.java    585
15.7.10  试卷DAO实现类
15.7.10  ExamDAOImpl.java    586
15.8  编写在线考试系统的业务逻辑类    587
15.8.1  注册接口Regedit.java    587
15.8.2  登录接口Login.java    588
15.8.3  设定试题种类接口
15.8.3  SetShitiType.java    588
15.8.4  设定试题题目接口SetShiti.java    588
15.8.5  设定试题项目接口
15.8.3  SetShitiOption.java    589
15.8.6  设定试卷接口SetExam.java    589
15.8.7  注册实现类RegeditImpl.java    590
15.8.8  登录实现类LoginImpl.java    591
15.8.9  设定试题种类实现类
15.8.9  SetShitiTypeImpl.java    591
15.8.10  设定试题题目实现类
15.8.10  SetShitiImpl.java    592
15.8.11  设定试题项目实现类
15.8.10  SetShitiOptionImpl.java    593
15.8.12  设定试卷实现类SetExamImpl.java    594
15.9  编写在线考试系统的控制器类    595
15.9.1  登录控制器类LoginAction.java    595
15.9.2  注册控制器类RegeditAction.java    597
15.9.3  设定试题种类控制器类
15.9.3  ShitiTypeAction.java    598
15.9.4  设定试题题目控制器类
15.9.3  ShitiAction.java    598
15.9.5  设定试题项目控制器类
15.9.3  ShitiOptionAction.java    600
15.9.6  试卷控制器类ExamAction.java    602
15.10  编写配置文件
15.10  dispatcherServlet-servlet.xml    606
15.11  解决Spring的中文乱码问题    613
15.12  运行验证程序    615
15.13  小结    620
第16章  信息发布系统    621
16.1  系统概述    622
16.2  需求分析    622
16.2.1  系统功能模块划分    622
16.2.2  系统流程分析    623
16.2.3  系统设计    623
16.3  建立项目    624
16.3.1  在MyEclipse下建立项目    624
16.3.2  编写Ant文件    628
16.3.3  配置Web.xml文件    629
16.4  建立数据库表    630
16.4.1  存放用户信息的数据库表    631
16.4.2  存放信息的数据库表    632
16.4.3  存放信息类别的数据库表    634
16.4.4  存放用户权限的数据库表    636
16.4.5  建立表之间的关系    637
16.5  设计信息发布系统    640
16.5.1  生成对应的Hibernate映射文件    640
16.5.2  生成持久化POJO文件    650
16.5.3  设计值对象类VO对象    658
16.5.4  信息发布系统在持久层的整体
16.5.4  UML图    662
16.5.5  初步设计原型静态页面    662
16.6  显示层设计    669
16.6.1  显示信息的页面show.jsp    669
16.6.2  发布信息页面release.jsp    671
16.6.3  用户注册页面regedit.jsp    672
16.6.4  登录页面login.jsp    673
16.6.5  错误处理的页面error.jsp    673
16.7  编写值对象VO和DAO层    674
16.7.1  用户类    675
16.7.2  用户权限类    676
16.7.3  信息类    676
16.7.4  信息类别类    678
16.7.5  开发用户DAO接口    678
16.7.6  开发信息DAO接口    678
16.7.7  信息类别DAO接口    679
16.7.8  实现用户DAO接口    679
16.7.9  实现信息DAO接口    680
16.7.10  实现信息类别DAO接口    681
16.8  开发业务逻辑层    682
16.8.1  开发登录接口    682
16.8.2  开发注册用户接口    683
16.8.3  开发发布接口    683
16.8.4  开发登录实现类    683
16.8.5  开发注册实现类    684
16.8.6  开发发布实现类    685
16.9  开发控制器层    686
16.9.1  开发用户登录控制器类    687
16.9.2  开发用户注册控制器类    688
16.9.3  开发信息发布控制器类    689
16.9.4  开发显示信息控制器类    691
16.10  编写辅助工具类    692
16.11  编写Spring配置文件    699
16.12  测试本项目程序    703
16.13  小结    708

本目录推荐