基于SSH框架的登陆的简单实例

来源:互联网 发布:蝙蝠侠致命玩笑知乎 编辑:程序博客网 时间:2024/06/05 08:52

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>

到这里已经完成了,对于才学习的你,希望可以受用。感谢!