j2ee(SSH)项目开发中的代码小结(一)

 第一次用java开发j2ee轻量级架构的项目(结合SSH),碰到的问题不少,也用到了点小技巧,在此处列出,供大家学习,也给自己总结一下,日后可能会用到。

1)把JSP放到WEB-INF目录下是不能通过地址栏访问的,智能通过对应的action来访问,action与jsp的映射配置在struts-config.xml中。struts-config.xml是struts MVC框架默认读取的配置文件,如果一个项目比较大,需要分模块或子系统来配置,可在web.xml中配置如下:

 <servlet>
  <servlet-name>action</servlet-name>
  <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
  <init-param>
   <param-name>config</param-name>
   <param-value> /WEB-INF/struts-config.xml,
    /WEB-INF/conf/main-struts-config.xml,......
   </param-value>
  </init-param>
  <init-param>
   <param-name>debug</param-name>
   <param-value>2</param-value>
  </init-param>
  <init-param>
   <param-name>detail</param-name>
   <param-value>2</param-value>
  </init-param>
  <load-on-startup>2</load-on-startup>
 </servlet>

2)在使用Hibernate的过程中会碰到取某个实体类的属性时,此属性是lazy的集合,会出现莫名其妙的错误(此错误由hibernate抛出,具体错误描述忘记了),通过google,在web.xml中加入以下filter即可解决:

 <filter>
  <filter-name>HibernateFilter</filter-name>
  <filter-class>
   org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
  <init-param>
   <param-name>singleSession</param-name>
   <param-value>true</param-value>
  </init-param>
  <init-param>
   <param-name>sessionFactoryBeanName</param-name>
   <param-value>sessionFactory</param-value>
  </init-param>
 </filter>
 
 <filter-mapping>
  <filter-name>HibernateFilter</filter-name>
  <url-pattern>*.do</url-pattern>
 </filter-mapping>

3)当用Hibernate连接oracle9i数据库时,使用oracle9i自带的Jdbc驱动:ojdbc14.jar,ojdbc14_g.jar,ocrs12.zip,如果连接sql server2005,ms官方网站有下。现提供连接以上两种数据库的配置:

 <bean id="sqlDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
  <property name="driverClassName">
   <value>com.microsoft.sqlserver.jdbc.SQLServerDriver</value>
  </property>
  <property name="url">
   <value>jdbc:sqlserver://serv001:1433;database=DEMODB</value>
  </property>
  <property name="username">
   <value>sa</value>
  </property>
  <property name="password">
   <value>111111</value>
  </property>
 </bean>
 
 <bean id="oracleDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
  <property name="driverClassName">
   <value>oracle.jdbc.driver.OracleDriver</value>
  </property>
  <property name="url">
   <value>jdbc:oracle:thin:@serv001:1521:ORCL</value>   
  </property>
  <property name="username">
   <value>tiger</value>
  </property>
  <property name="password">
   <value>1234</value>
  </property>
 </bean>
这里要特别注意的是在连接ORACLE9I数据库时,连接的URL中的ORCL是数据库在安装时填写的SID,并不是我们在net manage里配置的别名,在这里也无需在net manage里配置。这点与在VS2005中开发不同,在VS2005中配置oracle9i的连接串时填写的是在web程序所在服务器的net manage中配置的别名。还有就是配置时,由于数据库之间的语法不同,在<prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop>片断中配置的对应数据库语法也不同。前面的这个是oracle语法,后面这个是sql server的<!prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>

4)贴出用SSH开发J2EE项目时会用到的jar图(包含连接SQL SERVER2005/ORACLE9I的数据库驱动包):

待续......

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值