Eclipse用SSH框架实现登陆注册功能
第一次写博文,写的不好的地方还请多多指教。
关于SSH搭建大家可以看这篇博文,讲的很详细,是搭建SSH框架具有注册功能的例子http://blog.csdn.net/lpftobetheone/article/details/17783791
我也是第一次搭SSH框架参考这篇博文成功搭起来后也可以运行,但是其中的具体逻辑我还是不太懂,所以自己决定在此基础上增加登录的功能来进行摸索学习。
我先说一下每个类的功能:
dao是提供与数据库交互读取数据的接口
daoimpl是实现dao接口的
service是提供具体业务服务的接口
serviceimpl同样是实现接口的
service接口里提供了业务逻辑,serviceimpl具体实现这些业务逻辑,通过调用dao接口里的方法来读取数据库中的数据。最后在action中调用service接口里的业务逻辑,然后把从数据库中取出的数据赋给action中的属性。这样,struts2框架就能从页面中接受后台传来的数据,显示出来了。
下面来说具体过程:
大概流程:Login.jsp—->LoginAction.java—>UserManager.java中的logUser方法—>BaseDao.java中的queryObject方法
最后登录的用户名和密码是否正确是根据queryObject方法的返回值在LoginAction.java中判断的
- 先定义Login.jsp页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<s:form action="login" >
<s:textfield name="user.username" label="用户名" class="txt"></s:textfield>
<s:password name="user.password" label="密码" class="txt"></s:password>
<s:submit value="登录" lass="btn"></s:submit>
</s:form>
</body>
</html>
- 然后新建LoginAction.java
package com.ynwi.ssh.action;
import com.opensymphony.xwork2.ActionSupport;
import com.ynwi.ssh.forms.UserForm;
import com.ynwi.ssh.service.UserManager;
public class LoginAction extends ActionSupport{
private static final long serialVersionUID=1L;
private UserForm user;
private UserManager userManager;
public UserForm getUser() {
return user;
}
public void setUser(UserForm user) {
this.user = user;
}
public void setUserManager(UserManager userManager) {
this.userManager = userManager;
}
public String execute()
{
try {
//this.setUserManager(new UserManagerImpl());
boolean a=userManager.logUser(user);
if(a==true) return SUCCESS;
else return ERROR;
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
return ERROR;
}
}
}
- 在struct2.xml中添加action
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundati