ssh整合注意点

Googel 标签: ssh ; 整合 ; struts ; 配置文件 ; 注意 ; 总结 ; spring ; hibernate

ssh整合注意点<?xml:namespace prefix = o />

   <wbr>V0.1<p></p></wbr>

1) <wbr><span style="color: #2a2a2a; font-size: 10.5pt">整合<span lang="EN-US">SSH</span>后,写了一个程序,后面发布(<span lang="EN-US">tomcat</span>)的话,就会报下面的错。解决办法是移除<span lang="EN-US">Spring2.0 AOP Libraries</span>中的“<span lang="EN-US">asm-2.2.3.jar</span>”即可”,我看了一下,确实有<span lang="EN-US"><p></p></span></span></wbr>

这两个包,删除asm-2.2.3.jar,发布成功。

2) <wbr><span style="color: #2a2a2a; font-size: 10.5pt">由于本程序要用到<span lang="EN-US">DAO</span>,在用户管理类中我一开始使用<span lang="EN-US"><p></p></span></span></wbr>

UserDAO dao = new UserDAO();

 <wbr>public void addUser(User user)<br> <wbr>{<br> <wbr> <wbr>dao.save(user);<br> <wbr>}<br> </wbr></wbr></wbr></wbr></wbr><wbr><span style="color: #2a2a2a; font-size: 10.5pt">后面一直会报一个空指针异常的错误(<span lang="EN-US">java.lang.NullPointerException</span>),后来也是在网上找了好久,才发现一个我不小心的地方,就是我已经使用了<span lang="EN-US">Spring</span>进行依赖注入,不<span lang="EN-US"><p></p></span></span></wbr>

过上面的语句根本就没有注入,所以会报空指针异常的错误,改为下面的语句,使用Spring进行注入,也就是使用set方法就行注入即可(初学者经常犯的错误吧)。

 <wbr>private UserDAO dao; <p></p></wbr><wbr></wbr>

 <wbr>public void setDao(UserDAO dao)<br> <wbr>{<br> <wbr> <wbr>this.dao = dao;<br> <wbr>}<p></p></wbr></wbr></wbr></wbr></wbr>


 <wbr>public void addUser(User user)<br> <wbr>{<br> <wbr> <wbr>dao.save(user);<br> <wbr>}<p></p></wbr></wbr></wbr></wbr></wbr>

<bean id="userManager" class="com.usc.manager.userManagerImpl">
 <wbr> <wbr>&lt;property name="dao" ref="UserDAO"/&gt;<br> <wbr>&lt;/bean&gt;<p></p></wbr></wbr></wbr>

3) <wbr><span style="color: #2a2a2a; font-size: 10.5pt">用<span lang="EN-US">Struts</span>生成<span lang="EN-US">jsp</span>文件的时候,会出现一个<span lang="EN-US">Cancel</span>按钮,如果不处理的话,单击会报<span lang="EN-US">org.apache.struts.action.InvalidCancelException</span>异常,网上说的话:<span lang="EN-US">Cancel</span>按钮<span lang="EN-US"><p></p></span></span></wbr>

的机制和submit机制是一样的,没有处理,如果要解决的话,在Struts配置文件中的每个action里面加上cancellable="true",虽然这样能够解决异常,但是治标不治本,此时如

果点击Cancel按钮会当一个submit按钮来进行提交,我觉得真有点违背常理,所以我的解决方案就是1.删除cancel按钮,2.修改为reset按钮(我觉得是最好的解决方案)

4) <wbr><span style="color: #2a2a2a; font-size: 10.5pt">配置文件<span lang="EN-US"><br>Spring</span>的配置文件<span lang="EN-US"><br>Spring</span>的配置文件主要是对<span lang="EN-US">Spring</span>的一些机制进行配置,如:配置<span lang="EN-US">sessionFactory</span>、配置<span lang="EN-US">sessionFactory</span>、配置事务的传播特性、配置那些类的哪些方法参与事务、配置<span lang="EN-US">action</span>,<span lang="EN-US"><p></p></span></span></wbr>

配置一些bean
Struts
的配置文件
主要是修改actiontype属性,设置为spring管理,修改为
type="org.springframework.web.struts.DelegatingActionProxy">

5web的配置加上

 <wbr>&lt;context-param&gt;<br> <span class="apple-converted-space"><wbr> </wbr></span>&lt;param-name&gt;contextConfigLocation&lt;/param-name&gt;<br> <span class="apple-converted-space"><wbr> </wbr></span>&lt;param-value&gt;classpath*:applicationContext-*.xml&lt;/param-value&gt;<br> <wbr>&lt;/context-param&gt;<br> <wbr>&lt;listener&gt;<br> <span class="apple-converted-space"><wbr> </wbr></span>&lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener&lt;/listener-class&gt;<br> <wbr>&lt;/listener&gt;<br> <wbr>&lt;filter&gt;<br> <span class="apple-converted-space"><wbr> </wbr></span>&lt;filter-name&gt;Spring character encoding filter&lt;/filter-name&gt;<br> <span class="apple-converted-space"><wbr> </wbr></span>&lt;filter-class&gt;org.springframework.web.filter.CharacterEncodingFilter&lt;/filter-class&gt;<br> <span class="apple-converted-space"><wbr> </wbr></span>&lt;init-param&gt;<br> <wbr> <span class="apple-converted-space"><wbr> </wbr></span>&lt;param-name&gt;encoding&lt;/param-name&gt;<br> <wbr> <span class="apple-converted-space"><wbr> </wbr></span>&lt;param-value&gt;utf8&lt;/param-value&gt;<br> <span class="apple-converted-space"><wbr> </wbr></span>&lt;/init-param&gt;<br> <wbr>&lt;/filter&gt;<br> <wbr>&lt;filter-mapping&gt;<br> <span class="apple-converted-space"><wbr> </wbr></span>&lt;filter-name&gt;Spring character encoding filter&lt;/filter-name&gt;<br> <span class="apple-converted-space"><wbr> </wbr></span>&lt;url-pattern&gt;/*&lt;/url-pattern&gt;<br> <wbr>&lt;/filter-mapping&gt;<p></p></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

6)适当的时候加入一些过滤器,比较好

以上都是sStruts1.Xsh,下面的是sStruts2.0sh

-----------------------------------------------------------------
1.Struts.xml
中的actionclass并不是actionclass而是自己通过spring注入的action
2.Hibernate
的配置文件中加入
<property name="connection.autocommit">true</property>
默认是没有的,不然对数据库的添加...操作都不可以
3.
spring的配置action中,必须加入scope="prototype"
4.web
的配置文件中加入
 <wbr>&lt;listener&gt;<br> <wbr> <wbr>&lt;listener-class&gt;<br> <wbr> <wbr> <wbr>org.springframework.web.context.ContextLoaderListener<br> <wbr> <wbr>&lt;/listener-class&gt;<br> <wbr>&lt;/listener&gt;<br>5.</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
同上面的(1)(2
6.
注意JSTL和迭代的使用(非常有用)
7.actionForm
不能通过spring注入,一般改为静态注入,或者在业务逻辑中进行注入(这个时候一般是准备进行验证的)
8.JSTL
真的很强大,但是要注意一点就是一定要记得引入标签库,不然他不报错,但是就是不能用。(切记,切记,已经很多次吃亏了)
9.
数据库连接池技术实现如下(通过spring注入)
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
 <wbr>&lt;property name="driverClassName" value="com.mysql.jdbc.Driver"&gt;&lt;/property&gt;<br> <wbr>&lt;property name="url" value="jdbc:mysql://localhost:3306/mytest?useUnicode=true&amp;amp;characterEncoding=utf8"&gt;&lt;/property&gt;<br> <wbr>&lt;property name="username" value="root"&gt;&lt;/property&gt;<br> <wbr>&lt;property name="password" value="lishunli"&gt;&lt;/property&gt;<br> <wbr>&lt;property name="maxActive" value="100"&gt;&lt;/property&gt;<br> <wbr>&lt;property name="maxIdle" value="30"&gt;&lt;/property&gt;<br> <wbr>&lt;property name="maxWait" value="500"&gt;&lt;/property&gt;<br> <wbr>&lt;property name="defaultAutoCommit" value="true"&gt;&lt;/property&gt;<br>&lt;/bean&gt;<p></p></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
 <wbr>&lt;property name="dataSource" ref="dataSource"&gt;&lt;/property&gt;<br> <wbr>&lt;property name="hibernateProperties"&gt;<br> <wbr> <wbr>&lt;props&gt;<br> <wbr> <wbr> <wbr>&lt;prop key="hibernate.dialect"&gt;org.hibernate.dialect.MySQLDialect&lt;/prop&gt;<br> <wbr> <wbr> <wbr>&lt;prop key="hibernate.show_sql"&gt;true&lt;/prop&gt;<br> <wbr> <wbr>&lt;/props&gt;<br> <wbr>&lt;/property&gt;<br> <wbr>&lt;property name="mappingResources"&gt;<br> <wbr> <wbr>&lt;list&gt;<br> <wbr> <wbr> <wbr>&lt;value&gt;com/test/bean/User.hbm.xml&lt;/value&gt;<br> <wbr> <wbr>&lt;/list&gt;<br> <wbr>&lt;/property&gt;<br>&lt;/bean&gt;<p></p></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

10.javax.servlet.UnavailableException: Cannot load a validator resource from '/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml'

<!DOCTYPE form-validation PUBLIC

          "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN"

          "http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd">

 

查看上述内容和你的TOMCAT是不是符合

10.解决中文乱码问题,思路如下

    //解决中文乱码问题的方法1,页面端发出的数据作一次encodeURI,服务器段使用new String(old.getBytes("iso8859-1"),"UTF-8");

    //解决中文乱码问题的方法2,页面端发出的数据作两次encodeURI,服务器段使用URLDecoder.decode(old,"UTF-8")

11.表单的method方法一般都设置为post,设置为get有的时候会出现中文乱码问题

12.

 <wbr><span style="color: #2a2a2a; font-size: 10.5pt">提供一个用<span lang="EN-US">SSH</span>整合的一个小的简单的学生管理系统给大家,希望一起学习,有什么好的意见请联系我,<span lang="EN-US">QQ</span>:<span lang="EN-US">506817493(E-mail:<a href="mailto:leeshunli@qq.com">leeshunli@qq.com</a></span>)<span lang="EN-US"><p></p></span></span></wbr>

学生管理系统.rar

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值