【SSH】通过登录看代码逻辑

一、数据库

1.连接数据库(jdbc.properties)

这里写图片描述

2.添加配置文件的基本信息(applicationContext)

这里写图片描述

3.添加实体内容(vo)

这里写图片描述

4.将实体与数据表联系起来(*.hbm.xml)

这里写图片描述

二、具体文件

1.jsp:

全名为Java Server Pages,是一种动态网页,它是在html的基础上添加了java程序段和jsp标记(tag),实现了html与java的结合。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
2.applicationContext

applicationContext是spring中较高级的容器。和BeanFactory类似,它可以加载配置文件中定义的bean,将所有的bean集中在一起,当有请求的时候分配 bean。用于定义文件间的关系。

<!-- action的配置 -->
<bean id="userAction" class="cn.itcast.shop.user.action.UserAction" scope="prototype">
    <!-- 注入Service -->
    <property name="userService" ref="userService"/> 
</bean>

<!-- service的配置 -->
<bean id="userService" class="cn.itcast.shop.user.service.UserService">
    <property name="userDao" ref="userDao"/>
</bean>

<!-- Dao的配置 -->
<bean id="userDao" class="cn.itcast.shop.user.dao.UserDao">
    <property name="sessionFactory" ref="sessionFactory"/>
</bean>

这里写图片描述

3.action

类似于mvc中的controller,action需要注入service,引用实体,负责页面跳转。

public class UserAction extends ActionSupport implements ModelDriven<User> {
    //模型驱动使用的对象
    private User user=new User();

    public User getModel(){
        return user;
    }

    //注入UserService
    private UserService userService;

    public void setUserService(UserService userService) {
        this.userService = userService;
    }

    /**
     *  登录的方法
     */
    public String login(){
        User existUser=userService.login(user);
        if (existUser==null){
            this.addActionError("登录失败,用户名或密码错误或用户未激活");
            return LOGIN;
        }else{
            //登录成功
            //将用户的信息存到session中
            ServletActionContext.getRequest().getSession().setAttribute("existUser",existUser);
            //页面跳转
            return "loginSuccess";
        } 
    }
}
4.service

对于action和dao起到连接的作用,service需要注入dao

public class UserService {
    //注入UserDao
    private UserDao userDao;

    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }

    //用户登录的方法
    public User login(User user) {
        return userDao.login(user);
    }
}
5.dao

负责与持久化对象交互,dao封装了数据的增、删、改、查的操作。

public class UserDao extends HibernateDaoSupport {
    //1.增加
    public void save (User user){
        this.getHibernateTemplate().save(user);
    }

    //2.删除
    public void delete(User user) {
        this.getHibernateTemplate().delete(user);
    } 

    //3.修改
    public void update(User User){
        this.getHibernateTemplate().update(User);
    }

    //4.查询
    public User findByCode(String code){
        String hql="from User where code=?";
        List<User> list=this.getHibernateTemplate().find(hql,code);
        if(list!=null && list.size()>0){
            return list.get(0);
        }
        return null;
    }
}
6.vo

持久化对象(相当于实体层),通过实体关系映射工具将关系数据库的数据映射成对象。主要包括两种类型的文件,一是实体,二是hibernate的映射文件。

7.struts

负责进行页面跳转的配置,当action给出页面跳转的配置后,在struts文件中找相应的jsp页面。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

    <constant name="struts.devMode" value="false" />

    <package name="shop" extends="struts-default" namespace="/">
        <!-- 配置自定义拦截器 -->
        <interceptors>
            <interceptor name="privilegeInterceptor" class="cn.itcast.shop.interceptor.PrivilegeInterceptor"/>      
        </interceptors>

        <global-results>
            <result name="msg">/WEB-INF/jsp/msg.jsp</result>
            <result name="login">/WEB-INF/jsp/login.jsp</result>
        </global-results>


        <!-- 配置用户模块的Action -->
        <action name="user_*" class="userAction" method="{1}">      
            <result name="loginSuccess" type="redirectAction">index</result>
        </action>
    </package>
</struts>

小结

  ssh很重要的一点是他们之间的调用关系,具体的其他细节内容也还有很多值得学习研究。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 21
    评论
以下是基于SSH框架实现登录功能的代码: 1. 创建一个名为User的实体类,包含id、用户名和密码三个属性。 ```java public class User { private Integer id; private String username; private String password; // 以下省略getter和setter方法 } ``` 2. 创建一个名为UserDao的数据访问对象接口,定义一个根据用户名和密码查询用户的方法。 ```java public interface UserDao { User findUserByUsernameAndPassword(String username, String password); } ``` 3. 创建一个名为UserDaoImpl的数据访问对象实现类,实现UserDao接口的方法。 ```java public class UserDaoImpl extends HibernateDaoSupport implements UserDao { public User findUserByUsernameAndPassword(String username, String password) { String hql = "from User where username = ? and password = ?"; List<User> list = (List<User>) this.getHibernateTemplate().find(hql, username, password); return list.size() > 0 ? list.get(0) : null; } } ``` 4. 创建一个名为UserService的业务逻辑处理类,包含一个登录方法。 ```java public class UserService { private UserDao userDao; public void setUserDao(UserDao userDao) { this.userDao = userDao; } public User login(String username, String password) { return userDao.findUserByUsernameAndPassword(username, password); } } ``` 5. 创建一个名为UserAction的Action类,包含一个execute方法和两个属性username和password,用于接收前台传递的用户名和密码。 ```java public class UserAction extends ActionSupport { private String username; private String password; private UserService userService; public void setUserService(UserService userService) { this.userService = userService; } public String execute() throws Exception { User user = userService.login(username, password); if (user != null) { return SUCCESS; } else { return ERROR; } } // 以下省略getter和setter方法 } ``` 6. 在struts.xml中配置UserAction。 ```xml <struts> <package name="default" extends="struts-default"> <action name="login" class="com.example.UserAction"> <result name="success">/success.jsp</result> <result name="error">/error.jsp</result> </action> </package> </struts> ``` 以上就是基于SSH框架实现登录功能的代码

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值