方法1:完全解耦和的方式访问
简介:解耦和也就是说在action中,没有像servlet那样,传递过来的参数中有request和response这两个对象可以直接使用,action中没有任何参数。但很多时候我们又需要使用这两个对象,所以我们需要学习在action如何使用这两个对象。这时我们可以使用action中的ActionContext对象,但是它也有局限性就是只能对域中的数据进行操作,而不能获取到真正的对象。例如它可以向session中存值取值,但是它不能使用session的方法,如getSessionID()等。
使用方法如下所示:
- 首先我们创建一个类继承ActionSupport,其他的代码如下图所示
- 我们编写两个jsp页面进行验证,一个页面为表单用来验证是否可以取出提交的参数,另一个为成功后跳转的页面,使用jstl标签来展示从域中取到的值。
- 运行程序,进行验证。这里对于struts的配置就不再讲解,如果对于struts的配置不清楚可以去看我前面的博客。可以看到控制台已经成功打印出了我输入的内容,并且成功页面中也显示出了我存在域中的值。
方法2:使用原生方法
简介:和servlet中一样,前较于第一种方法它既可以操作数据,又可以使用对象的方法。
使用方法如下所示:
- 首先我们创建一个类继承ActionSupport,其他的代码如下图所示
- 我们编写两个jsp页面进行验证,一个页面为表单用来验证是否可以取出提交的参数,另一个为成功后跳转的页面,使用jstl标签来展示从域中取到的值。这两个页面和之前的一样。
- 运行程序,进行验证。可以看到控制台已经成功打印出了我输入的内容,并且成功页面中也显示出了我存在域中的值。
方法3:通过接口注入的方式
简介:我们只需要实现要求的接口就可以获取到request对象和servletContext对象。后面的存值取值方法就和前面是一样的了。
使用方法如下所示:
- 首先我们创建一个类实现接口ServletRequestAware,ServletContextAware,其他的代码如下图所示
- 我们编写两个jsp页面进行验证,一个页面为表单用来验证是否可以取出提交的参数,另一个为成功后跳转的页面,使用jstl标签来展示从域中取到的值。这两个页面和之前的一样。
- 运行程序,进行验证。可以看到控制台已经成功打印出了我输入的内容,并且成功页面中也显示出了我存在域中的值。