SSH流程图

根据流程图我们可以相应的看出我们的程序从最初的浏览器到最后的页面回显的过程,有什么不明白的地方请留言提示。


Hibernate层

主要负责映射文件和Action和Service的注入,负责后台服务3层之间调用**


JSP

相当于我们asp.net 中的html页面是一样,如果跟我们html页面大同一样的话,那么他也是可以可以写ajax的,并且可以触发我们的事件,通过他触发事件是通过action属性来触发,在这个属性里面会有一个地址,是专门用于与我们后台建立连接

<form id="loginForm" action="${ pageContext.request.contextPath }/user_login.action"  method="post" novalidate="novalidate">

Struts配置

根据Strust的配置我们可以找到我们要到方法,前台界面找后台提供的方法,根据name=login,User_*表示我们所有以user开头的地址都放到了userAction类里面。


result的意思是返回的结果,我们既然可以找到userAction类,那么当执行完userAction等一些列的功能之后我们肯定要返回结果给我的前台页面,为什么result后面会有一个name的属性呢??大家都写过3层的代码我们通过想要后台给我传过来一个参数,都是方法给予的,没有是类的把,我们只能说类里面包含了方法
所以在我们userAction类中我们有很多的方法,而name=login的方法结果我们可以跳转到/WEB-INF/jsp/login.jsp这个路径下面

<action name="user_*" class="userAction" method="{1}">
<result name="login">/WEB-INF/jsp/login.jsp</result>

Action

Action是我们行动层,这个是我跟他起的名字,为什么这么说呢。因为jsp触发事件之后跑到后台的第一个地方就是Action。来执行相应的方法,他一般是用ActionSupport,并且引入ModelDriven。来使用模型驱动对象,其实就是我们的实体,其实Action可以看做是我们3层中的u层,然后Action调用service


根据我们的Struts我们可以找到我们的存放在userAction类中的login方法,在方法中可以看出来有一个是return,他就是通过这个返回到了我们Struts中的result属性中,然后找到了我们的jsp页面显示

  public String login(){User existUser = userService.login(user);//      判断返回会来的数据是否为空if(existUser == null){this.addActionError("登录失败:用户名或者密码或用户没有激活");return LOGIN;}else{//保存到共享变量中  ServletActionContext.getRequest().getSession().setAttribute("existUser", existUser);// 页面跳转return "loginSuccess";}   }

Service

主要实现的事物还有就是调用Dao,其实在这里实现了解耦合的作用,也减轻了Action的工作量,根据代码看出只是简单的调用了dao持久层的方法

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

Dao

这个是持久化层,其实就是与进行数据库语句,进行增删改查,一般都使用的是getHibernateTemplate.XX来实现,实现过程是传入执行mysql的语句和参数就可以了,根究代码看出我们实现的查找方法,并且改变我们的状态值,如果成功则返回我们的用户名

/***  登录功能*/ public  User login(User user) {String hql = "from User where username = ? and password = ? and state = ?";List<User> list = this.getHibernateTemplate().find(hql,user.getUsername(),user.getPassword(),1);if(list != null && list.size() > 0){return list.get(0);}return null;}

Vo

vo他就是实体层,其实与我们MVC中EF映射是一样的,其实在vo里面我们有一个是实体层,有一个xml,我们通过xml来进行实体的映射

<hibernate-mapping>--表示根元素,包含一些属性<!-- 找到我们的包User,然后映射的表是user表 --><class name="cn.itcast.shop.user.vo.User" table="user"><!--id主键,用native  --><id name="uid"><generator class="native"/></id><!-- 字段属性进行映射,实体与数据库的字段要保持一直性,否则报错 --><property name="username"/><property name="password"/><property name="name"/><property name="email"/><property name="phone"/><property name="addr"/><property name="state"/><property name="code"/></class>   </hibernate-mapping>   

总结

通过这几天的学习,对于ssh的一条线掌控的差不多了,如果有问题的可以随时跟我联系

SSH登录一条线理解前因后果相关推荐

  1. 一条线 理解SSH登录前因后果

    2019独角兽企业重金招聘Python工程师标准>>> SSH流程图 根据流程图我们可以相应的看出我们的程序从最初的浏览器到最后的页面回显的过程,有什么不明白的地方请留言提示. Hi ...

  2. 华为交换机ssh登录

    亲测有效 注意,当你是telnet登录后,在新增ssh user这个的时后不可以telnet 是的用户,要使用 rsa local-key-pair creat后的新增用户ssh user **** ...

  3. Python访问街区10个点,并俩俩绘制一条线,得到5条线,求最短的距离和?

    Python访问街区10个点,并俩俩绘制一条线,得到5条线,求最短的距离和? 1. 效果图 2. 源码 参考 上一篇博客介绍了Python访问街区所有节点最短路径问题,并结合matplotlib可视化 ...

  4. 自动ssh登录的几种方法

    自动ssh登录的几种方法 1. 自动ssh/scp方法== A为本地主机(即用于控制其他主机的机器) ; B为远程主机(即被控制的机器Server), 假如ip为192.168.60.110; A和B ...

  5. 由Linux内核bug引起SSH登录缓慢问题的排查与解决

    快杰云主机是UCloud推出的具备优秀性能与极高性价比的新一代主机,网络最高可达 1000 万 PPS,存储最高可达 120 万 IOPS.为了提升产品综合表现,Host内核.KVM和Guest内核等 ...

  6. centos查看历史指令记录_CentOS清除SSH登录记录、历史命令及日志缓存

    清除 SSH 登录记录 SSH 登录日志以二进制方式存储在以下文件内,需要使用对应命令查看,不然会显示乱码. 日志文件 查看命令 日志内容 /var/log/wtmp last 登录成功日志,包含用户 ...

  7. 怎么把echarts中折线里面的其中两点连接成一条线_新手怎么写好一个策划案?三个小捣蛋,一个策划案!...

    怎么写好一个营销策划方案?懂得人轻车熟路,不懂的人一筹莫展,你以为新手和老司机之间差的无非是时间和经历,但之于策划,其中发挥关键作用的其实是对策划这件事的基本认知. 三个小捣蛋,一个策划案! 小僧以为 ...

  8. 解决ssh登录慢,等待时间长的问题

    时候在ssh远程登录到其他主机上时发现登录时间太长,经过亲自测试,发现主要有两个问题会导致ssh登录慢: 1.使用了dns反查,这样的话当ssh某个IP时,系统会试图通过DNS反查相对应的域名,如果D ...

  9. qchart 怎么点击一下 出一条线_疏通身上一条线,很多难缠病,不知不觉消失了!...

    点↑上方"健康饮水"关注 看更多微信公众号:syqk68小编微信:qiaoyan780214 经常关注中医的都知道,经络对人体有很重要的作用,经络通,百病消,经络不通,百病生.我们 ...

最新文章

  1. 从SeekFree的Gitee开源库建立通用MM32开发模板
  2. CloudStack部署运维手册V2 --- 新鲜出炉
  3. 软件开发定律系列之布鲁克斯定律有感
  4. thinkphp 在接口开发或者接入三方时解决跨域
  5. DSAPI多功能组件编程应用-HTTP监听服务端与客户端
  6. 采用Spring实现AOP功能
  7. 【主机】计算机缓存机制
  8. mysql定义语言_MySQL基础(一)--数据定义语言DDL
  9. Android子线程进度条不显示的问题
  10. 卡巴斯基KEY文件的类型选择
  11. 智能浪潮:增强时代来临
  12. PDM系统的结构设计
  13. 【乌拉喵.教程】PCtoLCD2002作为LCD5110字模提取软件的使用方法
  14. UiPath PDF拆分与合并
  15. mac 显示及隐藏文件的方法
  16. PS怎么把图片处理的更清晰
  17. js中的Image对象
  18. html文件设置成mac屏保,如何将视频设置为Mac上的屏幕保护程序 | MOS86
  19. CSAPP实验四:性能优化实验(Perflab)
  20. input输入框无法输入值的解决方案

热门文章

  1. mikumikudance[MMD]快捷键使用
  2. SuperMap GIS的TIN地形数据优化
  3. 2019尚硅谷大数据Javaweb篇三 Ajax、JSTL、会话技术、过滤器、监听器、xml、json
  4. java游戏武状元苏乞儿_武状元苏乞儿演员表
  5. VulnStack-ATTCK-3(红日靶场三)
  6. Android之SharedPreferences使用
  7. 2022-2028全球与中国角膜矫正术市场现状及未来发展趋势
  8. PMP 11.27 考试倒计时37天!来提分啦!
  9. linux udt 源码,UDT linux下关闭链接耗时过长
  10. 利用C语言打印杨辉三角