j2ee(SSH)项目开发中的代码小结(一)
2008-04-06 14:51
369 查看
第一次用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的数据库驱动包):
![](http://p.blog.csdn.net/images/p_blog_csdn_net/aquadp/SSH_jarlist.JPG)
待续......
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的数据库驱动包):
待续......
相关文章推荐
- j2ee(SSH)项目开发中的代码小结(四)
- j2ee(SSH)项目开发中的代码小结(二)
- j2ee(SSH)项目开发中的代码小结(三)
- JavaEE项目开发--基础篇-1--JavaEE开发之SSH+maven开发规范小结(规范就是标准,不容小视)
- Java源码 JavaWeb开发框架 代码 SSH SSM OA ERP CRM Java项目[Java通用框架源码及开发视频教程]
- J2EE项目:整合SSH开发『新闻发布系统』
- SSH 项目开发中的代码逻辑实现
- JavaEE项目开发--基础篇-1--JavaEE开发之SSH+maven开发规范小结(规范就是标准,不容小视)
- 项目开发J2EE框架开发原型技术要点
- 软件项目开发过程中主要遇到的核心问题小结
- ssh开发的一个小项目
- J2EE开发之常用开源项目介绍
- iOS项目开发经验:【常用代码6】
- J2EE开发之常用开源项目介绍
- J2EE开发中减少编写代码工作量的几种方法
- eclipse一个项目中同时开发flex和j2ee的环境配置
- J2EE项目中开发团队的组建
- J2EE开发的框架或开源项目介绍(转)
- 在开发项目中有些常用的的实用代码(ps:平时看着无关紧要的,却很容易忘记)
- J2EE开发常用开源项目名词解释(转)—总结的很好