手动整合实现SSH项目开发01
内容简介:本文主要介绍SSH项目开发的配置以及简单登录功能的实现。
1. 新建一个Dynamic Web Project。
2.导入需要 的Jar包,此项目是Struts、Hibernate、Spring三个框架的混合开发,因此需要用到的Jar包会比较多。
在WebContent下面的WEB_INF下的lib中导入需要的38个jar包:
antlr-2.7.7.jar
c3p0-0.9.5.2.jar
classmate-1.3.0.jar
com.springsource.com.mchange.v2.c3p0-0.9.1.2.jar
com.springsource.org.aopalliance-1.0.0.jar
com.springsource.org.apache.commons.dbcp-1.2.2.osgi.jar
com.springsource.org.apache.commons.logging-1.1.1.jar
com.springsource.org.apache.commons.pool-1.5.3.jar
com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar
commons-fileupload-1.3.2.jar
commons-io-2.4.jar
commons-lang3-3.4.jar
dom4j-1.6.1.jar
freemarker-2.3.23.jar
hibernate-c3p0-5.2.10.Final.jar
hibernate-commons-annotations-5.0.1.Final.jar
hibernate-core-5.2.10.Final.jar
hibernate-jpa-2.1-api-1.0.0.Final.jar
jandex-2.0.3.Final.jar
javassist-3.20.0-GA.jar
jboss-logging-3.3.0.Final.jar
jboss-transaction-api_1.2_spec-1.0.1.Final.jar
log4j-api-2.7.jar
mchange-commons-java-0.2.11.jar
mysql-connector-java-5.1.7-bin.jar
ognl-3.1.12.jar
spring-aop-4.3.6.RELEASE.jar
spring-aspects-4.3.6.RELEASE.jar
spring-beans-4.3.6.RELEASE.jar
spring-context-4.3.6.RELEASE.jar
spring-core-4.3.6.RELEASE.jar
spring-expression-4.3.6.RELEASE.jar
spring-jdbc-4.3.6.RELEASE.jar
spring-orm-4.3.6.RELEASE.jar
spring-tx-4.3.6.RELEASE.jar
spring-web-4.3.6.RELEASE.jar
struts2-core-2.5.10.1.jar
struts2-spring-plugin-2.5.10.1.jar
3. 在web.xml中配置Struts的过滤器、上下文参数以及Spring的监听
1 <context-param> 2 <param-name>contextConfigLocation</param-name> 3 <param-value>classpath:applicationContext.xml</param-value> 4 </context-param> 5 <listener> 6 <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 7 </listener> 8 9 10 <filter> 11 <filter-name>struts2</filter-name> 12 <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter- class> 13 </filter> 14 15 <filter-mapping> 16 <filter-name>struts2</filter-name> 17 <url-pattern>/*</url-pattern> 18 </filter-mapping>
4.写一个Jsp页面。作为登陆页面,页面中只需要一个表单就好,action的值与UserLoginAction中的URL对应
1 <body> 2 <form action="login" method="post"> 3 username:<input name="username" /><br /> 4 password:<input name="password" type="password" /><br /> 5 <input type="submit" value="login"> 6 </form> 7 </body>
5.在src的根目录下新建一个struts.xml文件
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" "http://struts.apache.org/dtds/struts-2.5.dtd"> <struts> <constant name="struts.devMode" value="true" /> <package extends="struts-default" name="myStruts" namespace="/">
<!-- 此处name与登陆form表单中的action对应,class的值与applicationContext.xml中相关出对应,不在写全路径,具体如何对应,在后面会介绍--> <action name="login" class="LoginAction"> <result>/success.jsp</result> <result name="input">/index.jsp</result> </action> </package> </struts>
6. 根据分层原理,建立相应的Dao接口,dao的实现类,service接口,service的实现类,UserBean等相关的Java类。
在IUSerDao接口中提供一个根据姓名和密码查询的方法,在UserDaoImpl的实现类中通过继承HibernateTemplate来获得Session从而实现查询功能。
通过Spring的注入对象可使用父类的getSessionFactory得到SessionFactory。
package com.whl.daoimpl; import org.springframework.orm.hibernate5.HibernateTemplate; import com.whl.bean.User; import com.whl.dao.IUserDao; public class UserDaoImpl extends HibernateTemplate implements IUserDao { @Override public User getUserByNamePass(String name, String pass) { User user = (User) getSessionFactory().openSession() .createQuery(String.format("from User u where u.username='%s' and u.userpass='%s'", name,pass)) .getResultList().get(0); return user; } }
IUSerServicer接口跟IUserDao接口一样,只需要有一个getUserByNamePass()方法就好。UserServicerImpl类如下:】
package com.whl.serviceimpl; import com.whl.bean.User; import com.whl.dao.IUserDao; import com.whl.service.IUserService; public class UserServiceImpl implements IUserService { //使用了Spring框架后通过依赖注入的方式注入对象。 private IUserDao userDao; public void setUserDao(IUserDao userDao) { this.userDao = userDao; } @Override public User getUserByNamePass(String name, String pass) { return userDao.getUserByNamePass(name, pass); } }
posted on 2017-06-23 19:59 注定要成为攻城狮的男人 阅读(520) 评论(0) 编辑 收藏 举报