1、首先建立几个包名:如图
2、struts.xml中配置如下:(其中action的name必须与jsp页面表单的action名一样,class为与applicationContext.xml中action注入的id值一致,method为将在LoginAction中写的方法名,result那么input为空提交指定的返回,success为LoginAction中将要指定的返回)
<package name="default" extends="struts-default" namespace="/">
<action name="Login" class="loginAction" method="login">
<result name="input">/index.jsp</result>
<result name="Success">/main.jsp</result>
</action>
</package>
3、分别新建接口LoginService.java和LoginDAO.java
里面添加方法boolean login(String username,String password);
分别对上述2个方法写实现类:LoginServiceImpl.java和LoginDAOImpl.java。注意实现“implements 接口”。注意还要继承“extends HibernateDaoSupport”。
其中,LoginDAOImpl.java中添加如下代码,查询用户名、密码。
public class LoginDAOImpl extends HibernateDaoSupport implements LoginDAO{
public boolean login(String username, String password) {
User a=new User();
a.setPassword(password);
a.setUsername(username);
List<User> u = this.getHibernateTemplate().findByExample(a);
boolean flag = false;
if(u.size() > 0){
flag = true;
}
return flag;
}
}
4、LoginServiceImpl.java中添加如下代码,调用上述方法。
public class LoginServiceImpl extends HibernateDaoSupport implements LoginService{
private LoginDAO logindao;
public void setLogindao(LoginDAOImpl logindao) {
this.logindao = logindao;
}
public boolean login(String username, String password) {
return logindao.login(username, password);
}
}
5、LoginAction中添加login方法
public class LoginAction extends ActionSupport{
private LoginService loginservice;
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public LoginService getLoginservice() {
return loginservice;
}
public void setLoginservice(LoginService loginservice) {
this.loginservice = loginservice;
}
public String login(){
boolean flag = loginservice.login(username, password);//调用数据库查询方法,验证用户名、密码
if(flag){
return "Success";
}else{
return "input";
}
}
}
6、applicationContext.xml中配置 注入
<!--登陆的配置 -->
<!-- DAO注入sessionFactory -->
<bean id="logind" class="com.dao.LoginDAOImpl">
<!-- 注入持久化操作所需的SessionFactory -->
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<!--service注入dao id为下面的ref class为 service实现类 name="service实现类中声明的dao"-->
<bean id="logins" class="com.service.LoginServiceImpl" >
<property name="logindao" ref="logind"/>
</bean>
<!-- Action注入 service id="" 注入 class="action路径" name="loginservice"与LoginAction中声明的要保持一致 ref随便取-->
<bean id="com.action.LoginAction" class="com.action.LoginAction" scope="prototype">
<property name="loginservice" ref="logins"/>
</bean>
7、登陆页面index.jsp中添加表单表单action名为login,设置两个文本框用户名为username,密码password。
<form method="post" action="Login.action">
用户名:<input name="username" type="text" />
密码:<input name="password" type="password" />
<input name="Submits" type="submit" value="登录" /> <input name="ReSet" type="reset" value="重置" />
</form>
到这里登陆注册已经基本完成了。
说说这次所遇到的问题吧,在写这个简单的实例中,首先是就是写配置注入的时候需要加入default-autowire=”byName (一定要有):
其次就是在注入里面需要添加mysql的驱动程序:
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
***<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>***
<property name="url" value="jdbc:mysql://localhost:3306/tsz"></property>
<property name="username" value="root"></property>
<property name="password" value="123456"></property>
</bean>
到这里已经完成了,对于才学习的你,希望可以受用。感谢!