您的位置:首页 > 编程语言 > Java开发

简单搭建的SSH框架实现简单的登陆

2016-12-12 13:56 483 查看
由于本人自学的,所以借鉴于以下的博客和错误修改的博客: 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);
List<UserInfo> list=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里添加以下代码:

<!-- 注入dao的session持久化对象 -->
<bean id="logind" class="com.loginSSH.dao.daoImpl.LoginDaoImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<!--service注入 dao id为下面的 ref class为 service实现类 name="service实现类中声明的 dao" -->
<bean id="logins" class="com.loginSSH.service.serviceImpl.LoginServiceImpl">
<property name="loginDao" ref="logind"></property>

</bean>
<!-- action注入service -->
<bean id="logina" class="com.loginSSH.action.LoginAction" scope="prototype">
<property name="loginService" ref="logins"></property>

</bean>
并在 web.xml配置spring监听器的实现:

<!-- Spring配置 -->
<!-- spring监听器 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener>
<!-- 实现监听器 -->
<context-param>
<param-name>contextConfigListener</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
在strut.xml中配置from逼到提交上来的userName和password:

<package name="default" extends="struts-default" namespace="/">
<action name="Login" class="logina" method="login">
<result name="input">/index.jsp</result>
<result name="Success">/main.jsp</result>
</action>
</package>
编写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 + "/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>

<body>
<form method="post" action="Login">
用户名:<input name="userName" type="text" /> 密码:<input name="pwd"
type="password" /> <input name="Submits" type="submit" value="登录" />
<input name="ReSet" type="reset" value=" 重置" />
</form>
</body>
</html>
在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。
该文章只作为本博主的个人经历和记录,如有侵权,请联系博主修改或删除。谢谢。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  博客 SSH javaweb