由于本人自学的,所以借鉴于以下的博客和错误修改的博客:
http://blog.csdn.net/lylyyg/article/details/46932493
http://blog.csdn.net/zongzhankui/article/details/6099552
http://wenku.baidu.com/link?url=lVKV4WNu1VjzoBksNh1fCOjDhlV3R25UBb90R4jgRjRkd5fRMbKClU9mHIHNwVxBR4UjE_rYRBzP1yt1VTXMJpTj0p29jxD7qo1K04clpHu
作为一个初学javaweb的人,要弄懂SSH框架是不容易的,所以只有从简单的登录开始做起,才能更好的更好的理解SSH框架基本搭建和实现功能的步骤。
准备的工具:
1.Myeclipse 10
2.struts2-spring-plugin-2.1.2.jar包(不添加这个包,strut.xml不能访问到applicationContext.xml里bean注入的类名的id)
3.tomcat 7.X或其他的tomcat版本
4.Mysql 5.5或以上
5.navicat(mysql数据库的可视化工具)
第一步:
先建立数据库:
第二步:
搭建SSH框架的步骤:
1.建立web工程:
2.添加SSH框架(在工程名上右击->选中Myeclipse->add strut2..[其他的类似]):
添加的顺序为:strut2->spring->hibernate
参照百度的即可或上文给出的百度链接;
第三步:
建立登陆的功能实现模块:
1.先用hibernate逆向工程创建持久化类和*.hbm.xml文件。
2.编写IALoginDao接口类和LoginDAoImpl类implement Dao类
IALoginDao.java 代码如下:
package com.loginSSH.dao; public interface IALoginDao { boolean login(String userName,String pwd); }
LoginDaoImpl.java 代码如下:
package com.loginSSH.dao.daoImpl; import java.util.List; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import com.loginSSH.dao.IALoginDao; import com.loginSSH.model.UserInfo; public class LoginDaoImpl extends HibernateDaoSupport implements IALoginDao { @SuppressWarnings("unchecked") public boolean login(String userName, String pwd) { System.out.println(userName+"dao"+pwd); Listlist=this.getHibernateTemplate().find("from UserInfo where userName=? and userPwd=?",userName,pwd); boolean flag=false; System.out.println("list长度:"+list.size()); if(list.size()>0){ flag=true; } return flag; } }
编写IALoginService接口类和UserServiceImpl类implement UserService接口类:
IALoginService.java 代码如下:
package com.loginSSH.service; public interface IALoginService { boolean login(String userName,String pwd); }
LoginServiceImpl.java 代码如下:
package com.loginSSH.service.serviceImpl; import com.loginSSH.dao.IALoginDao; import com.loginSSH.service.IALoginService; public class LoginServiceImpl implements IALoginService { private IALoginDao loginDao; public void setLoginDao(IALoginDao loginDao){ this.loginDao=loginDao; } public IALoginDao getLoginDao(){ return this.loginDao; } public boolean login(String userName, String pwd) { System.out.println(userName+"service"+pwd); return loginDao.login(userName, pwd); } }
编写LoginAction:
LoginAction.java 代码如下:
package com.loginSSH.action; import com.loginSSH.service.IALoginService; import com.opensymphony.xwork2.ActionSupport; public class LoginAction extends ActionSupport { private IALoginService loginService; private String userName; private String pwd; public IALoginService getLoginService() { return loginService; } public void setLoginService(IALoginService loginService) { this.loginService = loginService; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } public String login(){ System.out.println(getUserName()+"惊喜"+getPwd()); boolean flag=loginService.login(this.getUserName(),this.getPwd()); System.out.println(flag); if(flag){ return "Success"; }else{ return "input"; } } }
往applicationContext.xml里添加以下代码:
并在 web.xml配置spring监听器的实现:
org.springframework.web.context.ContextLoaderListener contextConfigListener /WEB-INF/applicationContext.xml
在strut.xml中配置from逼到提交上来的userName和password:
/index.jsp /main.jsp
编写index.jsp页面:
index.jsp 代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; %>"> My JSP 'index.jsp' starting page
在webRoot下随便建立一个main.jsp文件:
main.jsp 代码默认即可;
最后一步部署工程到tomcat:
测试登录出现:
表示成功。
注意事项:
1.可能出现在strut.xml中找不到在applicationContext.xml中注入的bean的ID名,添加struts2-spring-plugin-2.1.2.jar到WEB-INF/lib文件夹下即可。
2.可能出现java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I异常,该异常是因为Struts自带的antlr-2.7.2.jar,比Hibernate3.3自带的antlr-2.7.6.jar的版本要低,故要删除前一个低版本的,, struts1.3 和2.1都带有antlr-2.7.2.jar,具体操作如下:在MyEclipse 下,windows-->preferences-->在文本框中搜索struts2-->选择 antlr2.7.2-->remove,如果已经运行过的工程则还要删除tomcat目录lib的antlr-2.7.2.jar。
该文章只作为本博主的个人经历和记录,如有侵权,请联系博主修改或删除。谢谢。