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>
到這裏已經完成了,對於才學習的你,希望可以受用。感謝!