Struts2访问Servlet的API方式二:原生方式

和解耦合的方式不同,原生方式既可以拿到域对象,也可以调用域对象中的方法

前端jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

<h1>Struts2访问Servlet的PAI</h1>
<h3>方式二:使用原生方式访问</h3>
<form action="${pageContext.request.contextPath }/requestDemo2.action" method="post">
   姓名:<input type="text" name="name" /><br/>
   密码:<input type="password" name="password"/><br/>
      <input type="submit" value="提交" >
</form>
</body>
</html>

Action类:

package com.itheima.struts2.demo1;

import java.util.Arrays;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;
/**
 * 访问Setvlet方式2:原生方式(推荐)
 *
 */
public class RequestDemo2 extends ActionSupport {
    //一、接受数据
    public String execute() throws Exception{
        //直接获取request对象:ServletActionContext
        HttpServletRequest request = ServletActionContext.getRequest();
        Map<String,String[]> map = request.getParameterMap();
        for (String key : map.keySet()) {
            String[] values = map.get(key);
            System.out.println(key+"  "+Arrays.toString(values));
        }
        //向域对象保存数据,向request,session,application保存数据
        request.setAttribute("reqName", "reqValue");
        request.getSession().setAttribute("sessName", "sessValue");
        ServletActionContext.getServletContext().setAttribute("appName", "appValue");
        return SUCCESS;
      }
}

配置文件:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
         <package name="demo1" extends="struts-default" namespace="/">
         <action name="requestDemo2" class="com.itheima.struts2.demo1.RequestDemo2" method="">
         <result name="success">/demo1/demo2.jsp</result>
         </action>

         </package> 

</struts>

成功跳转页面:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>显示数据</title>
</head>
<body>
<h1>显示数据</h1>
${reqName }
${sessName }
${appName }
</body>
</html>

最新文章

  1. 【POJ2482】Stars in Your Window(线段树,扫描线)
  2. svn报错
  3. SqlBulkCopy 批量复制数据到数据表
  4. React高级特性
  5. 食物链 poj 1182
  6. Careercup - Facebook面试题 - 23594662
  7. python解决汉诺塔问题
  8. 最近买了个Mac Pro,用起来感觉是去年买了个表
  9. 转 git操作小结
  10. 基于visual Studio2013解决面试题之0201二叉树转链表
  11. 为什么你应该抛弃Express的视图渲染引擎
  12. Selenium自动化测试-unittest单元测试框架使用
  13. HTML5 — 地理定位
  14. zookeeper入门及使用(二)- 状态查看
  15. web socket RFC6455 frame 打包、解包
  16. AtomicInteger和count++的比较
  17. 取代iframe框架
  18. mysql引擎事物支持
  19. 五、springboot(二)配置数据源oracle
  20. Python Try Except

热门文章

  1. Go_random
  2. 2017年陕西省网络空间安全技术大赛——一维码——Writeup
  3. 时间戳,日期,string互转
  4. HashMap知识初探
  5. awk函数实现将简化IPV6地址补全
  6. tensorflow之tensorboard
  7. Python学习(一)——开发语言和Python的安装
  8. leetcode929 Unique Email Addresses
  9. MySQL双机热备环境搭建
  10. 分布式一致性协议 --- Paxos