内容简介:本文主要介绍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的监听

 <context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener> <filter>
<filter-name>struts2</filter-name>
12 <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter- class>
</filter> <filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

4.写一个Jsp页面。作为登陆页面,页面中只需要一个表单就好,action的值与UserLoginAction中的URL对应

 <body>
<form action="login" method="post">
username:<input name="username" /><br />
password:<input name="password" type="password" /><br />
<input type="submit" value="login">
</form>
</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);
} }

手动整合实现SSH项目开发01的更多相关文章

  1. 手动整合实现SSH项目开发02

    在bean包下建立User类和User.hbm.xml文件,实现User类和数据库表User的映射关系,具体User类不多说,User.hbm.xml如下: <?xml version=&quo ...

  2. JAVAEE——SSH项目实战01:SVN介绍、安装和使用方法

    1 学习目标 1.掌握svn服务端.svn客户端.svn eclipse插件安装方法 2.掌握svn的基本使用方法 2 svn介绍 2.1 项目管理中的版本控制问题 通常软件开发由多人协作开发,如果对 ...

  3. JAVAEE——SSH项目实战01:SVN介绍、eclipse插件安装和使用方法

    1 学习目标 1.掌握svn服务端.svn客户端.svn eclipse插件安装方法 2.掌握svn的基本使用方法 2 svn介绍 2.1 项目管理中的版本控制问题 通常软件开发由多人协作开发,如果对 ...

  4. SSH实战 · SSH项目开发环境搭建

    一:SSH整合 创建一个新的WEB项目 引入struts2.3.15.3: jar包:                 struts-2.3.15.3\apps\struts2-blank.war\W ...

  5. ActiveMQ整合spring结合项目开发流程(生产者和消费者)总结

    一:生产者代码编写: 1.配置pom.xml引入相关坐标 <dependencies> <!-- spring开发测试 --> <dependency> <g ...

  6. ssh项目问题01,为创建数据库抛出的异常

    框架什么都搭建好了,但是一直抛出如图问题,网上资料很多让你设置时间之类的,也设置了还是继续抛异常,最后带我的师傅说没有创建数据库,我都要郁闷死了,网上那么多,很多写的都不能解决问题,还乱写,浪费别人时 ...

  7. spring(四) 手动整合web项目(SSH)

    清楚了spring的IOC 和 AOP,最后一篇就来整合SSH框架把,记录下来,以后应该会用的到. --WH 一.web项目中如何使用spring? 当tomcat启动时,就应该加载spring的配置 ...

  8. SSH项目整合教学Eclipse搭建SSH(Struts2+Spring3+Hibernate3)

    这篇博文的目的 尝试搭建一个完整的SSH框架项目. 给以后的自己,也给别人一个参考. 读博文前应该注意: 本文提纲:本文通过一个用户注册的实例讲解SSH的整合.创建Struts项目,整合Hiberna ...

  9. FreeMarker与SSH项目整合流程

    FreeMarker与SSH项目整合流程 学习了SSH之后,一般为了减少数据库的压力,会使用FreeMarker来生成静态HTML页面.下面简单说一下FreeMarker与SSH项目的整合全过程~ 前 ...

随机推荐

  1. sql注入基础(原理)

    一.注入的分类 按数据库分类:1.整形 2.字符型(需要考虑单引号闭合的问题,还有注释不必要的语句  #  ) eag:  id='admin'  id='admin and1=1'这样会报错  所以 ...

  2. Oracle正则表达式之匹配邮箱

    利于正则表达式匹配出符合电子邮箱的数据 --1 表准备create table test_regexp( object varchar2(50)); --2 数据准备 insert into test ...

  3. Linux文件查看与查找命令

    cat  查看一个文件 -E: 显示行结束符$ -n: 对显示出的每一行进行编号 -A:显示所有控制符 -b:非空行编号 -s:压缩连续的空行成一行 -T:显示制表符 常用:cat -An /etc/ ...

  4. OBS实现直播解决方案【html实现直播】

    项目的需要,要整一个视频直播,但又不想在其他平台那种直播室盗链展示,那我就直接用播放器来实现rtmp流媒体服务器推流吧!没废话,走起 1.你要有一个媒体服务器,暂时用[盘古云],这个还好,算是不错的平 ...

  5. 使用Html5下WebSocket搭建简易聊天室

    一.Html5WebSocket介绍 WebSocket protocol 是HTML5一种新的协议(protocol).它是实现了浏览器与服务器全双工通信(full-duplex). 现在,很多网站 ...

  6. Norm 数据库操作竟然可以如此简单

    github地址,https://github.com/xcr1234/norm/欢迎各位大神fork&交流! Norm Norm是一套微型的JAVA数据库ORM库,提供了简单高效的 API, ...

  7. 实时语音视频技术webrtc的编译总结

    webrtc编译教程 一.安装depot_tools工具 首先你的电脑上安装了git 1)    下载depot_tools cd到下载的目录下 git clone https://chromium. ...

  8. 1254 Flip and Shift

    这题是目的是把黑球和白球分开连续放,事实上只要把其中一种颜色分好在一边就可以,可以绕一个球转即是第n个球可以放在n-2或者n+2上,因为这是个环,所以只需要把黑球或者白球连续放好就可以,当一共有奇数个 ...

  9. JSONObject简介(2)

    JSONObject简介 本节摘要:之前对JSON做了一次简单的介 绍,并把JSON和XML做了一个简单的比较:那么,我就在想,如果是一个json格式的字符串传到后台,需要怎么对其处理?如果前台页面需 ...

  10. DATA VISUALIZATION – PART 1

    Introduction to Data Visualization – Theory, R & ggplot2 The topic of data visualization is very ...