`
paulwong
  • 浏览: 74326 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

JSP + Jndi + Spring + Hibernate 心得筆記

阅读更多
這几天小試了一下JSP +Jndi + Spring + Hibernate組合的功能,想讓JSP網頁可以秀出Database裡的資料。試了老半天,發現要讓這組合成功運作,還真的是很麻煩,很多細節要注意。而且很多設定找不到文件,很讓人...DeadDeadDead


以下是這個組合成功運作所需注意的地方。


1.系統建置環境如下
AP Server : Tomcat 5.5.x
Database : Oracle 10g
Framework : Spring 1.2.x + Hibernate 3.x


2.相關重要修改設定如下
2.1 首先,我要利用Tomcat的DBCP Connection pool功能,所以必需先改Tomcat裡面的Server.xml設定檔,加入下面藍字所示的相關設定

<Host>
  
  中略
  
  
<Context 中略>
    
    
<!-- Tomcat5.5的DBCP設定方式寫法與之前版本完全不同 -->
    
<Resource 
      
name="jdbc/scott"
      auth
="Container"
      factory
="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"             
      type
="javax.sql.DataSource"
      driverClassName
="oracle.jdbc.driver.OracleDriver"            
      url
="jdbc:oracle:thin:@localhost:1521:orcl"              
      username
="scott"            
      password
="tiger"
      maxIdle
="10"
      maxWait
="1000"              
      maxActive
="100"/>    
      
  
</Context>
</Host>


2.2 接下來修改web.xml設定檔藍字所示內容

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4"
  xmlns
="http://java.sun.com/xml/ns/j2ee"
  xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation
="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
 
  
<!-- 指定log4j設定檔位置 -->
  
<context-param>
    
<param-name>log4jConfigLocation</param-name>
    
<param-value>/WEB-INF/log4j.properties</param-value>
  
</context-param>
      
  
<!-- 指定spring設定檔位置 -->
  
<context-param>
    
<param-name>contextConfigLocation</param-name>
    
<param-value>/WEB-INF/beans-config.xml</param-value>
  
</context-param> 
  
  
<!-- 一定要在ContextLoaderListener設定之前加上Log4jConfigListener設定,如此一來ContextLoaderListener才可以正常運作 -->
  
<listener>
    
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
  
</listener>
 
  
<listener>
    
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  
</listener>  
 
  
<!-- 指定此項Filter可使Spring取回的DomainObject在JSP(View層)作完所有的事情後,才將Hiberante Session給Close -->
  
<filter>
      
<filter-name>hibernateFilter</filter-name>
      
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
  
</filter> 
  
  
<filter-mapping>
      
<filter-name>hibernateFilter</filter-name>
       
<url-pattern>/*</url-pattern>
  
</filter-mapping>
  
  
<!-- 指定JNDI JDBC DataSource -->
  
<resource-ref>
    
<description>JNDI JDBC DataSource</description>
    
<res-ref-name>jdbc/scott</res-ref-name>
    
<res-type>javax.sql.DataSource</res-type>
    
<res-auth>Container</res-auth>
  
</resource-ref>
  
  中略

</web-app>


2.3 在/WEB-INF目錄裡面,增加beans-config.xml這個Srping設定檔,修改藍字所示內容


<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" 
 "http://www.springframework.org/dtd/spring-beans.dtd"
> 
<beans> 
    中略
     
    
<!-- 利用JNDI的方式連結到DataSource -->
    
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> 
        
<property name="jndiName">  
            
<!-- 不可省略"java:comp/env/"字串,否則會出現異常 -->
            
<value>java:comp/env/jdbc/scott</value> 
        
</property>  
    
</bean>         
    
    中略
</beans>


2.4 在/WEB-INF目錄裡面,增加log4j.properties這個log4j設定檔

#這是我用的設定檔,請自行修改成以符合實務上需求
log4j.rootLogger=info,consoleAppender
log4j.appender.consoleAppender=org.apache.log4j.ConsoleAppender
log4j.appender.consoleAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.consoleAppender.layout.ConversionPattern=%d [%t] %-5p %c - %m%n


3.大功告成...寫個測試的JSP網頁試試看吧...Big SmileBig SmileBig Smile...以下是我測試用的JSP,請自行修改以符合實務上需求

<%@ page language="java" contentType="text/html; charset=utf-8"  pageEncoding="utf-8"%>
<%@ page import="org.springframework.web.context.WebApplicationContext"%>
<%@ page import="org.springframework.web.context.support.WebApplicationContextUtils"%>
<%@ page import="com.db.table.Emp"%>
<%@ page import="com.db.dao.IEmpDAO;"%>
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Spring Test</title>
</head>
<body>
<%
  WebApplicationContext context 
= WebApplicationContextUtils.getRequiredWebApplicationContext(getServletContext());  
  IEmpDAO empDAO 
= (IEmpDAO)context.getBean("empDAOImpl");
  Emp emp 
= empDAO.find(new Short((short)7369));
  out.println(
"Ename: " + emp.getEname() + "<br>");
  out.println(
"Dname: " + emp.getDept().getDname() + "<br>");
%>
</body>
</html>

分享到:
评论

相关推荐

    javaweb笔记+狂神+知识总结

    7. **JNDI(Java Naming and Directory Interface)**:JNDI提供了一种标准的方式来查找和访问各种命名和目录服务,常用于在JavaWeb应用中查找数据库连接池、邮件服务器配置等资源。 8. **DAO(Data Access Object...

    韩顺平servlet与jsp_笔记与心得

    ### 韩顺平servlet与jsp_笔记与心得 #### JavaEE概述 JavaEE(Java Platform, Enterprise Edition)是一个开放式的平台标准,为开发者提供了丰富的API和工具集,以便构建高质量的企业级应用。JavaEE的核心是围绕着...

    全套达内学习笔记(java)

    【Hibernate.zip】:Hibernate是一个持久层框架,用于简化Java应用与数据库之间的交互。可能包括实体映射、查询语言HQL、 Criteria API、事务处理、缓存策略等内容。 【interview.zip】:这个压缩包可能包含了Java...

    魔乐科技 J2EE详细笔记 很经典的

    (3)Struts、Spring、Hibernate框架: - Struts:早期的MVC框架,负责控制流程,提供Action类处理请求,基于Model-View-Controller模式。 - Spring:全面的轻量级框架,包括IoC(Inversion of Control,依赖注入...

    java web 笔记整理

    这份"java web 笔记整理"涵盖了该领域的关键概念和技术,包括Servlet、JSP、MVC模式、JNDI、JTA以及EJB等核心内容。以下是根据笔记内容整理出的知识点详解: 1. **Servlet**:Servlet是Java平台上的服务器端组件,...

    JAVAWEB开发实战经典(课堂笔记)

    8. **开发工具与框架**:可能还会涵盖Eclipse、IntelliJ IDEA等IDE的使用,以及Spring、Struts、Hibernate等流行框架的简介,帮助读者提升开发效率。 9. **部署与服务器**:笔记可能包括Tomcat、Jetty等Web服务器的...

    达内java笔记,精挑细选(达内助教整理)

    - **进阶篇**:MVC设计模式、Spring框架、MyBatis、Hibernate等ORM工具、Struts、JSF等Web框架。 - **J2EE核心技术**:Servlet与JSP的使用、EJB的生命周期与调用、JMS的实现、JTA的事务管理。 - **实战篇**:基于...

    JavaWeb笔记整理(全面)

    11. **Struts、Hibernate和MyBatis**:这些是JavaWeb中的其他流行框架,Struts专注于MVC架构,Hibernate是对象关系映射(ORM)工具,MyBatis则是轻量级的SQL映射框架。 12. **Web服务**:包括SOAP(简单对象访问...

    J2EE框架---笔记

    **J2EE框架详解** ...从Servlet和JSP的基础,到Spring和Hibernate的高级应用,每一个环节都值得深入研究和实践。通过学习和使用这些框架,不仅可以提高开发效率,还能为项目带来更高的质量和稳定性。

    javaweb 崔希凡全套笔记

    【JavaWeb崔希凡全套笔记】是一份全面深入学习JavaWeb和JavaEE技术的重要资源,由知名讲师崔希凡精心编撰。这份笔记总计涵盖了28天的学习内容,旨在帮助学员系统地掌握JavaWeb和JavaEE的核心知识。下面将详细阐述...

    51CTO下载-java笔记2

    Spring是一个全面的企业级应用框架,它支持依赖注入、AOP(面向切面编程)、事务管理、Web MVC、JDBC模板和ORM集成(如Hibernate)。学习Spring需要理解IoC容器、Bean配置、Spring MVC、Spring Data访问层以及Spring...

    太原理工大学javawebusic-mai开发笔记

    以上是根据“太原理工大学javawebusic-mai开发笔记”项目可能涵盖的一些关键知识点,实际项目中可能还包括其他如Spring、Hibernate等框架的使用,以及Maven或Gradle的构建工具,以及测试、调试、部署等多方面的内容...

    struts1学习笔记.doc

    - **可扩展性**:Struts1框架易于集成其他技术,如Spring和Hibernate,增强应用功能。 - **社区支持**:拥有庞大的开发者社区和丰富的资源,便于问题解决和技能提升。 #### 六、总结 本学习笔记详细介绍了如何使用...

    《IT学习资料2》-Java 学习笔记.zip

    - `javaee` 文件夹可能包含Java企业版的相关教程,涵盖了Servlet、JSP、JavaMail、EJB、JMS、JNDI、JPA、Spring框架、Hibernate等企业级应用开发技术。 4. **Web前端资源**: - `index.html` 和 `README.md` 可能...

    j2ee学习笔记很好的

    在学习过程中,不仅要关注理论知识,还要关注最佳实践、设计模式以及如何利用开源框架(如Spring、Hibernate等)简化开发。同时,及时查阅官方文档、参加在线课程、阅读相关书籍和博客,将有助于深化理解和提高技能...

    J2EE框架_笔记.rar

    本笔记主要涵盖了J2EE框架的核心概念、组件以及实际应用。 J2EE框架主要包括以下几个核心部分: 1. **Servlet与JSP**:Servlet是Java编写的服务器端程序,处理HTTP请求,而JSP(JavaServer Pages)则是一种动态...

    j2ee精华学习笔记

    **J2EE精华学习笔记** J2EE,全称为Java 2 Platform, Enterprise Edition,是Java平台上用于构建企业级分布式应用程序的框架。本学习笔记旨在深入解析J2EE的核心概念和技术,帮助读者全面掌握J2EE开发的关键知识。 ...

    JavaEE学习笔记

    其次,笔记中可能会讲解JNDI(Java Naming and Directory Interface),这是JavaEE中的服务,用于查找和管理资源,如数据库连接池。JMS(Java Message Service)也可能被提及,它是Java平台中消息传递的标准,用于...

    J2EE学习笔记 by dream

    【J2EE学习笔记 by dream】是一份详细记录了作者dream在J2EE技术领域学习过程和经验的文档集合。J2EE(Java 2 Platform, Enterprise Edition)是Oracle公司提供的一个用于构建企业级分布式应用的平台,它包含了多种...

Global site tag (gtag.js) - Google Analytics