一条线 理解SSH登录前因后果
2019独角兽企业重金招聘Python工程师标准>>>
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的一条线掌控的差不多了,如果有问题的可以随时跟我联系
原文来自:https://www.linuxprobe.com/ssh-login-resion.html
转载于:https://my.oschina.net/ssdlinux/blog/1621731
一条线 理解SSH登录前因后果相关推荐
- SSH登录一条线理解前因后果
SSH流程图 根据流程图我们可以相应的看出我们的程序从最初的浏览器到最后的页面回显的过程,有什么不明白的地方请留言提示. Hibernate层 主要负责映射文件和Action和Service的注入,负 ...
- 如何理解 ssh 三大框架
作者:meepo 链接:https://www.zhihu.com/question/30525693/answer/199488905 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商 ...
- 华为交换机ssh登录
亲测有效 注意,当你是telnet登录后,在新增ssh user这个的时后不可以telnet 是的用户,要使用 rsa local-key-pair creat后的新增用户ssh user **** ...
- Python访问街区10个点,并俩俩绘制一条线,得到5条线,求最短的距离和?
Python访问街区10个点,并俩俩绘制一条线,得到5条线,求最短的距离和? 1. 效果图 2. 源码 参考 上一篇博客介绍了Python访问街区所有节点最短路径问题,并结合matplotlib可视化 ...
- 自动ssh登录的几种方法
自动ssh登录的几种方法 1. 自动ssh/scp方法== A为本地主机(即用于控制其他主机的机器) ; B为远程主机(即被控制的机器Server), 假如ip为192.168.60.110; A和B ...
- 由Linux内核bug引起SSH登录缓慢问题的排查与解决
快杰云主机是UCloud推出的具备优秀性能与极高性价比的新一代主机,网络最高可达 1000 万 PPS,存储最高可达 120 万 IOPS.为了提升产品综合表现,Host内核.KVM和Guest内核等 ...
- centos查看历史指令记录_CentOS清除SSH登录记录、历史命令及日志缓存
清除 SSH 登录记录 SSH 登录日志以二进制方式存储在以下文件内,需要使用对应命令查看,不然会显示乱码. 日志文件 查看命令 日志内容 /var/log/wtmp last 登录成功日志,包含用户 ...
- 怎么把echarts中折线里面的其中两点连接成一条线_新手怎么写好一个策划案?三个小捣蛋,一个策划案!...
怎么写好一个营销策划方案?懂得人轻车熟路,不懂的人一筹莫展,你以为新手和老司机之间差的无非是时间和经历,但之于策划,其中发挥关键作用的其实是对策划这件事的基本认知. 三个小捣蛋,一个策划案! 小僧以为 ...
- 解决ssh登录慢,等待时间长的问题
时候在ssh远程登录到其他主机上时发现登录时间太长,经过亲自测试,发现主要有两个问题会导致ssh登录慢: 1.使用了dns反查,这样的话当ssh某个IP时,系统会试图通过DNS反查相对应的域名,如果D ...
最新文章
- 常用数据结构讲解与案例分析
- 为什么说BCH是最安全的数字货币之一?
- python网络爬虫权威指南 百度云-Python网络爬虫权威指南(第2版)
- Ansible自动化运维基础-------ploybook
- Altium Designer中将FPGA引脚定义导出成文件
- C/Cpp / 参数传递时如何防止数组退化为指针
- python msp_Python 练习实例71
- javascript规范以及设计原则
- 安卓移动应用开发实例_移动应用开发协会纳新 ||掌握信息,赢得未来
- 南京林业大学计算机专业分数线,2021南京林业大学录取分数线_历年各专业分数线(2017-2020),各省投档线_一品高考网...
- wpp助手怎么连接服务器,aewpp.com
- 【编程语言之Python】之plt画图尺寸、去白边
- 浅谈Netty中ServerBootstrap服务端源码(含bind全流程)
- php ZipArchive 压缩整个文件夹 - 自带ZipArchive类 - PHP递归创建目录压缩包
- ArcGIS模型构建器计算几何的方法
- 悉尼大学计算机科学gpa,悉尼大学计算机gpa
- nacos做配置中心读取不到配置报错:Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder ‘cou
- 【Tools】位、字节、机器字、储存单元、主存等概念剖析
- SyntaxError: Invalid regular expression: invalid group specifier name
- 单条视频播放量破2000w,一首《孤勇者》就能盘活一个账号?
热门文章
- TIN的构建、Delaunay三角网、Voronoi图
- vscode 文件格式化
- 计算机教室灭火器配置标准,学校灭火器配置标准参考
- 计算机小学数学辅助教学缺点及对策 论文,小学计算机辅助教学论文
- 考试反思计算机专业,期中考试总结反思
- realy-made and tailor-made
- 衡水二中2021年高考成绩查询,2020衡水二中高考喜报
- 「镁客早报」屠呦呦入选“20世纪最伟大人物”;四部门联合治理APP违法收集使用个人信息...
- 移动网络运营商显示无服务器,无线路由器忽然拨不上号,显示网络运营商远端无响应怎么处理...
- 如何设计一个积分领取系统