zoukankan      html  css  js  c++  java
  • struts2的简单执行过程

    Struts2本身是一个挺简单的框架,我们通过写一个登陆的过程来具体描述下其执行过程

    1.首先我们创建一个Model-User

    其中Model里面包含所需字段,构造函数(有参无参都要有),get和set方法,tostring(没有的话打印出来的数据都是数据所在的地址)

    2.我们来创建一个pojo userAction   

    然后写出具体的实现功能(因为只是描述一下执行流程所以没有连接数据库)

    我们在登录成功后可以提取一个数据username到session里面并设为um,这样当需要验证用户是否登录的时候只需要验证um的值是否和username相等就可以了。

    重写父类中的方法

    3.再写一个pojo  里面充当一个select的功能(简化版)

    我们可以把用户信息直接存进ValueStack里面,这样在jsp页面就可以直接获取到了

    4.因为Struts2是基于filter的所以我们来写一个拦截器

    拦截器想要发挥作用就需要知道拦截哪一类信息,我们先前把username的值放进session里面了并设为um,这时候直接获取um

    写一个简单的判断,如果um和username的值相等那就放行arg0.invoke();

    不等于的话就返回登录界面

    5.pojo写完了  这时候我们来配置Struts.xml

    首先是约束文件

    这些都不需要记住,需要用的时候查一下就行了

    下面我们来配置拦截器

    name:拦截器的名字,class:拦截器的位置   excludeMethods(不拦截的方法名 一个action)与之对应的是 includeMethods

    然后我们来配置方法的路径和页面跳转

    <action name="这个是随意起的,不过最好与method保持一致,用的时候不容易出错" class =“方法的具体位置” method=“固定为方法名,系统跟着这个来找要执行的方法”>

     <result name="返回值" ty=“chain”(action跳action的固定写法,不同的跳法都需要写不同的type)>/跳转的页面</result>   根据得到的返回值跳转页面

     6.后台程序以及写完了  我们来写两个简单的jsp页面

    登录界面  login.jsp

    加一个简单的表单验证

    在写一个登录成功之后的查询界面

    需要注意的是我们使用遍历的话要先加上上面这句话

    7.好了  所有工作都做完了  我们来看下运行结果

    登录界面

    表单验证错误的时候

    密码错误的时候

    登录成功的时候

    拦截器生效的时候  没有登录但是直接跳转查询方法的时候

    8.总结

    通过上面七步我们已经知道了怎么用Struts2写一个登录功能

    现在让我们来总结一下具体的执行流程

    1、客户端浏览器发出HTTP请求。

    2、根据web.xml配置,该请求被FilterDispatcher接收。

    3、根据struts.xml配置,找到需要调用的Action类和方法,根据filter判断是否需要拦截器验证。

    4、Action调用业务逻辑组件处理业务逻辑,这一步包含表单验证。

    5、Action执行完毕,根据struts.xml中的配置找到对应的返回结果result,并跳转到相应页面。

    6、返回HTTP响应到客户端浏览器

  • 相关阅读:
    【docker报错】starting container process caused "exec: "-P8080:8080": executable file not found in $PATH".
    java调用openoffice踩坑集
    SWERC 2019-2020 题解(全)
    【GYM102091】2018-2019 ACM-ICPC, Asia Nakhon Pathom Regional Contest F
    UVA10615 Rooks 二分图的边着色
    2020.07.20 牛客多校第四场
    2020.07.27 牛客多校第六场
    2020.07.18 牛客多校第三场
    Deepfake Video Detection Using Recurrent Neural Networks 阅读笔记
    网易互娱 8.7笔试 代码记录
  • 原文地址:https://www.cnblogs.com/blogsofmy/p/7435717.html
Copyright © 2011-2022 走看看