struts2的简单执行过程

struts2是最近刚学的一个框架,想通过写篇文章来加深下印象,这也是本篇博文产生的由来,下面进入正题

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

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

struts2的简单执行过程

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

2.我们来创建一个pojo userAction

struts2的简单执行过程

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

struts2的简单执行过程

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

struts2的简单执行过程

重写父类中的方法

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

struts2的简单执行过程

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

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

struts2的简单执行过程

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

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

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

struts2的简单执行过程

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

首先是约束文件

struts2的简单执行过程

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

下面我们来配置拦截器

struts2的简单执行过程

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

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

struts2的简单执行过程

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

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

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

登录界面  login.jsp

struts2的简单执行过程

加一个简单的表单验证

struts2的简单执行过程

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

struts2的简单执行过程

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

struts2的简单执行过程

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

登录界面

struts2的简单执行过程

表单验证错误的时候

struts2的简单执行过程

struts2的简单执行过程

密码错误的时候

struts2的简单执行过程

登录成功的时候

struts2的简单执行过程

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

struts2的简单执行过程

8.总结

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

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

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

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

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

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

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

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

上一篇:PHP函数篇详解十进制、二进制、八进制和十六进制转换函数说明


下一篇:hive函数参考手册