Action访问Servlet API的三种方法
一、为什么要访问Servlet API ?
Struts2的Action并未与Servlet API进行耦合,这是Struts2 的一个改良,从而方便了单独对Action进行测试。但是对于Web控制器而言,不访问action是不行的,Struts提供了一种比较简单的方式来访问Servlet API 。
二、通常我们需要访问的Servlet API 是 HttpSession、HttpservletRequest、ServletContext,分别对应了JSP内置对象 session,request,application。
三、Action访问Servlet API的三种方法
1、使用ActionContext类访问Servlet API。将HttpSession、HttpservletRequest、ServletContext封装成了Map,用put方法赋值,用EL表达式取。
写在Action类中代码:
public String execute() throws Exception {ActionContext context=ActionContext.getContext();Map request = (Map)context.get("request");Map session = (Map)context.getSession();Map application = (Map)context.getApplication();if("admin".equals(username) && "123".equals(password)){request.put("uesrname",username);return SUCCESS;}else{session.put("username", username);session.put("errorMsg", "您的用户名或密码有误!");return ERROR;}}
写在success.jsp中代码:
<body>登陆成功!!!欢迎您! ${param.username}</body>
写在error.jsp中代码:
<body>对不起, 登录失败!!!<br/><font color="red">${sessionScope.errorMsg}</font></body>
2、ServletActionContext类提供了3个方法,可直接得到HttpSession、HttpservletRequest、ServletContext对象。
写在Action类中代码:
public String execute() throws Exception {HttpServletRequest request = ServletActionContext.getRequest();HttpSession session = request.getSession();if("admin".equals(username) && "123".equals(password)){request.setAttribute("username", username);return SUCCESS;}else{session.setAttribute("errorMsg", "您输错了用户名或密码!");return ERROR;}}
jsp文件中代码不变。
3、实现***Aware接口直接访问Servlet API
为了使Struts2能够直接访问到Servlet API的实例,Struts2提供了ServletContextAware接口、 ServletRequest接口、 ServletResponsetAware接口。
转载于:https://www.cnblogs.com/iqingchen-vic/p/6964497.html
Action访问Servlet API的三种方法相关推荐
- Struts2中Action访问Servlet API的三种方法
Struts2的Action并未直接与任何Servlet API耦合,这是Struts2的一个改良之处,因为Action类不再与Servlet API耦合,能更轻松的测试该Action.但如何访问? ...
- Opencv3编程入门学习笔记(三)之访问图像像素的三种方法
访问图像像素的三种方法:指针访问,迭代器访问,动态地址访问.访问最快的为指针访问,以下算法在几毫秒,但指针访问容易造成内存泄漏:其次为迭代器访问:最后为动态地址访问. 以下程序是根据<OpenC ...
- Action访问Servlet API的对象
1,Action访问ActionContext的方式:(request session application) Struts2中的Action与Servlet API完全分离,但是在实现业务逻辑处理 ...
- Servlet实现的三种方法
(1)方法一: //这是第一个实现servlet的方法.使用时限servlet接口的方法来实现,使用的时候须要引用servlet-api.jar package com.lc;import javax ...
- 获取打气筒API的三种方法
private class MyListadpater extends BaseAdapter {@Overridepublic int getCount() {return 1000;//返回是几, ...
- php获取打开网页文件名,php取得当前访问url文件名的几种方法
php下获取当前访问的文件名的几种方法. 推荐函数: 一是PHP获取当前页面的网址: dedecms用的也是这个哦. //获得当前的脚本网址 function GetCurUrl() { if(!em ...
- 前端js调用后端API获取数据的三种方法(2022.7.25)
前端js调用后台API获取数据的三种方法(2022.7.25) 前言 需求分析 一个Get实例 浏览器请求 SoapUI软件请求 一个Post实例 浏览器请求 SoapUI软件请求 1.Http简介( ...
- Struts(八)Strits2访问servlet API
1.获得servlet API的两种方法 (1).ServletActionContext类(基本都是静态方法) public static HttpServletRequet getRequest( ...
- 关于Struts2三种访问Servlet API方式的总结
在开发j2ee过程中,通常我们需要访问的Servlet API是:HttpSession,HttpservletRequest,ServletContext,这三者分别对应于JSP的内置对象:sess ...
最新文章
- HDU2648(map的应用)
- Mysql 索引原理及优化
- Shell编程进阶篇(完结)
- 虚拟机的性能监控与故障处理——jps,jstat,jinfo,jmap,jhat,jstack
- 线程:CountDownLatch同步工具
- oracle误删数据的解决方法
- 分组取最新记录的SQL
- 【Python3网络爬虫开发实战】 1.7-App爬取相关库的安装
- react 16 对外暴露function_【第 25 期】React 架构的演变 从同步到异步(一)
- Exchange Server 2016体验
- 如何为java添加日历控件_laydate日历控件使用方法详解
- SQL经典50查询语句案例_5(查询没学过“叶平”老师课的同学的学号、姓名)
- springboot 入门详细教程 源码
- php.c drcom,成功 将校园客户端drcom搞进openwrt
- UEBA架构设计之路3:复杂事件处理引擎
- 初中物理60个重要知识点
- ICP 问题之 SVD
- StoneDB 团队成员与 MySQL 之父 Monty 会面,共话未来数据库形态
- 酿酒知识-年会喝酒?你打算如何安排你的酒桌呢?
- idea如何配置显示多行tab标签