LoginForm.java代码:
package com.xy6.form;
import org.apache.struts.action.ActionForm;
public class LoginForm extends ActionForm{
private Integer id;
private String username;
private String password;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public void reset(){
this.id = 0;
this.username = "";
this.password = "";
}
}
LoginAction.java代码:
package com.xy6.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.springframework.beans.factory.annotation.Autowired;
import com.xy6.form.LoginForm;
import com.xy6.service.ILoginService;
public class LoginAction extends Action{
/*
* 在action中注入service接口,
* 省去在spring中配置文件中配置action的属性
*/
@Autowired
private ILoginService loginService;
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception {
LoginForm loginForm = (LoginForm)form;
ActionForward forward = new ActionForward();
String username = loginForm.getUsername();
String password = loginForm.getPassword();
// 验证用户名、密码,如果通过,跳转到success页面,
// 否则跳转到failure页面
if(username == null && password == null){
forward = mapping.findForward("login");
} else{
if(loginService.login(username, password)){
forward = mapping.findForward("success");
} else{
forward = mapping.findForward("failure");
}
}
return forward;
}
}
ILoginService.java代码:
package com.xy6.service;
public interface ILoginService {
public boolean login(String username, String password);
}
LoginServiceImpl.java代码:
package com.xy6.service.impl;
import org.springframework.beans.factory.annotation.Autowired;
import com.xy6.dao.LoginDAO;
import com.xy6.service.ILoginService;
public class LoginServiceImpl implements ILoginService{
@Autowired
private LoginDAO loginDAO;
public boolean login(String username, String password){
return loginDAO.login(username, password);
}
}
LoginDAO.java代码:
package com.xy6.dao;
public interface LoginDAO {
public boolean login(String username, String password);
}
LoginDaoImpl.java代码:
package com.xy6.dao.impl;
import java.util.List;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.xy6.dao.LoginDAO;
public class LoginDaoImpl extends HibernateDaoSupport implements LoginDAO {
/*
* 查询用户名-密码在数据库中是否存在
*/
public boolean login(String username, String password){
try{
String hql = "from LoginForm as p where p.username = ? and p.password = ?";
List list = this.getHibernateTemplate().find(hql,new Object[]{username,password});
if(list != null && list.size() > 0){
return true;
}
} catch(Exception ex){
ex.printStackTrace();
}
return false;
}
}
注:LoginDaoImpl sql中from后跟不一定为表名,此处应写表对于的实体类名。在该demo中表userinfo对于LoginForm类。