SSH流程图
根据流程图我们可以相应的看出我们的程序从最初的浏览器到最后的页面回显的过程,有什么不明白的地方请留言提示。
主要负责映射文件和action和service的注入,负责后台服务3层之间调用**
JSP相当于我们asp.net 中的html页面是一样,如果跟我们html页面大同一样的话,那么他也是可以可以写ajax的,并且可以触发我们的事件,通过他触发事件是通过action属性来触发,在这个属性里面会有一个地址,是专门用于与我们后台建立连接
登录后复制 "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这个路径下面
name="user_*" class="userAction" method="{1}">
result name="login">/WEB-INF/jsp/login.jspresult>
登录后复制
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 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、本网站名称:慧达安全导航
2、本站永久网址:https//www.huida178.com/
3、本站所有资源来源于网友投稿和高价购买,所有资源仅对编程人员及源代码爱好者开放下载做参考和研究及学习,本站不提供任何技术服务!
4、本站所有资源的属示图片和信息不代表本站的立场!本站只是储蓄平台及搬运
5、下载者禁止在服务器和虚拟机下进行搭建运营,本站所有资源不支持联网运行!只允许调试,参考和研究!!!!
6、未经原版权作者许可禁止用于任何商业环境,任何人不得擅作它用,下载者不得用于违反国家法律,否则发生的一切法律后果自行承担!
7、为尊重作者版权,请在下载24小时内删除!请购买原版授权作品,支持你喜欢的作者,谢谢!
8.若资源侵犯了您的合法权益,请持 您的版权证书和相关原作品信息来信通知我们!QQ:1247526623我们会及时删除,给您带来的不便,我们深表歉意!
9、如下载链接失效、广告或者压缩包问题请联系站长处理
10、如果你也有好源码或者教程,可以发布到网站,分享有金币奖励和额外收入!
11、本站资源售价只是赞助,收取费用仅维持本站的日常运营所需
12、因源码具有可复制性,一经赞助,不得以任何形式退款。
13、本文内容由网友自发贡献和站长收集,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系1247526623@qq.com
转载请注明出处: 慧达安全导航 » 一条线 理解SSH登录前因后果
发表评论 取消回复