Struts2学习笔记(五) 访问servlet的api的三种方式

方法1:完全解耦和的方式访问

简介:解耦和也就是说在action中,没有像servlet那样,传递过来的参数中有request和response这两个对象可以直接使用,action中没有任何参数。但很多时候我们又需要使用这两个对象,所以我们需要学习在action如何使用这两个对象。这时我们可以使用action中的ActionContext对象,但是它也有局限性就是只能对域中的数据进行操作,而不能获取到真正的对象。例如它可以向session中存值取值,但是它不能使用session的方法,如getSessionID()等。

使用方法如下所示:

  1. 首先我们创建一个类继承ActionSupport,其他的代码如下图所示
    在这里插入图片描述
  2. 我们编写两个jsp页面进行验证,一个页面为表单用来验证是否可以取出提交的参数,另一个为成功后跳转的页面,使用jstl标签来展示从域中取到的值。
    在这里插入图片描述
    在这里插入图片描述
  3. 运行程序,进行验证。这里对于struts的配置就不再讲解,如果对于struts的配置不清楚可以去看我前面的博客。可以看到控制台已经成功打印出了我输入的内容,并且成功页面中也显示出了我存在域中的值。
    在这里插入图片描述
    在这里插入图片描述

方法2:使用原生方法

简介:和servlet中一样,前较于第一种方法它既可以操作数据,又可以使用对象的方法。

使用方法如下所示:

  1. 首先我们创建一个类继承ActionSupport,其他的代码如下图所示
    在这里插入图片描述
  2. 我们编写两个jsp页面进行验证,一个页面为表单用来验证是否可以取出提交的参数,另一个为成功后跳转的页面,使用jstl标签来展示从域中取到的值。这两个页面和之前的一样。
  3. 运行程序,进行验证。可以看到控制台已经成功打印出了我输入的内容,并且成功页面中也显示出了我存在域中的值。
    在这里插入图片描述
    在这里插入图片描述

方法3:通过接口注入的方式

简介:我们只需要实现要求的接口就可以获取到request对象和servletContext对象。后面的存值取值方法就和前面是一样的了。

使用方法如下所示:

  1. 首先我们创建一个类实现接口ServletRequestAware,ServletContextAware,其他的代码如下图所示
    在这里插入图片描述
    在这里插入图片描述
  2. 我们编写两个jsp页面进行验证,一个页面为表单用来验证是否可以取出提交的参数,另一个为成功后跳转的页面,使用jstl标签来展示从域中取到的值。这两个页面和之前的一样。
  3. 运行程序,进行验证。可以看到控制台已经成功打印出了我输入的内容,并且成功页面中也显示出了我存在域中的值。
    在这里插入图片描述在这里插入图片描述
发布了26 篇原创文章 · 获赞 24 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/showadwalker/article/details/89788951
今日推荐