前后台页面参数互传

2024-09-06 10:18
文章标签 参数 页面 互传

本文主要是介绍前后台页面参数互传,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前台提交Action及请求参数------------->struts截获------------->类中处理,将参数放入request或session中(内置对象)-------------------->接受返回值后struts控制跳转页面------------->页面用EL表达式获取request或session中的参数

第一步

前台提交Action及请求参数

<form action="login1.action" method="post">
<input type="text" id="username" name="username">
<button type="submit" >提交</button>

第二步

struts截获,去testAction类中的testx方法处理,若返回aaa将跳转到test.jsp页面

<action name="login1" class="com.jy.web.action.TestAction" method="testx"><result name="aaa">test.jsp</result></action>

第三步

类中处理,将参数放入request或session中(内置对象)

package com.jy.web.action;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import org.springframework.web.context.request.SessionScope;
import jdk.nashorn.internal.ir.RuntimeNode.Request;
import com.jy.web.action.common.BaseAction;
public class TestAction extends BaseAction {/*** */private static final long serialVersionUID = 2059656961593054570L;public String testx(){HttpServletRequest request = ServletActionContext.getRequest();String result="aaa";String aa=request.getParameter("username");put2Request("aa", aa);/* 前一个是变量名,后一个也是,把后一个附给前一个,这样以后用request.getAttribute("aa")得到指定的值,这里aa是前一个aa,注意前一个一定要加双引号,(吃亏是福)*/put2Session("aa", aa);String bb=(String) getSession().getAttribute(aa);System.out.println("页面传来的"+aa+"Session的"+bb);return result;}/*-----------------------------------------*/}

第四步

接受返回值后struts控制跳转页面

<action name="login1" class="com.jy.web.action.TestAction" method="testx"><result name="aaa">test.jsp</result></action>

第五步

页面用EL表达式获取request或session中的参数

成功
${requestScope.aa}
<div>${sessionScope.aa}</div>

注意:

这里的put2Request及put2Session是封装好的在BaseAction中

package com.jy.web.action.common;import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;/*** Struts2中的Action基类*/
public class BaseAction extends ActionSupport {private static final long serialVersionUID = 1018499094241813786L;// 提供一些工具方法// //常用方法的封装public HttpServletRequest getRequest() {return ServletActionContext.getRequest();}public HttpSession getSession() {return getRequest().getSession();}public HttpSession getSession(boolean flag) {return getRequest().getSession(flag);}public ServletContext getServletContext() {return ServletActionContext.getServletContext();}/*** 往request作用域存放数据* @param key* @param value*/public void put2Request(String key, Object value) {getRequest().setAttribute(key, value);}/*** 往Session作用域存放数据* @param key* @param value*/public void put2Session(String key, Object value) {getSession().setAttribute(key, value);}/*** 往ServletContext作用域存放数据* @param key* @param value*/public void put2Application(String key, Object value) {getServletContext().setAttribute(key, value);}
}

如果不用封装的put2Request,则放入request内置对象中需要用到

	HttpServletRequest request = ServletActionContext.getRequest();//获取当前请求的对象String result="aaa";String aa=request.getParameter("username");request.setAttribute("aa", aa);
如果不用封装的put2Session,则放入session内置对象中需要用到, session的初始化

 HttpSession session=request.getSession();//获取当前的session信息session.setAttribute("aa", aa);

put2Request("aa", aa);/* 前一个是变量名,后一个也是,把后一个附给前一个,这样以后用request.getAttribute("aa")得到指定的值,这里aa是前一个aa,注意前一个一定要加双引号,(吃亏是福)*/

 put2Session("aa", aa);雷同


用<%%>在前台获取后台数据

<div>输出<%String par=request.getParameter("username");
String att=(String)request.getAttribute("aa");
String ses=(String)request.getSession().getAttribute("aa");
out.print("getParameter获取的值"+"\r"+par+"<br>");
out.print("getAttribute获取的值"+att+"<br>");
out.print("getSession().getAttribute获取的值"+ses+"<br>");//注这里换行要用<br>
%>输出完成</div>
<div>${requestScope.aa}</div>
<div>${sessionScope.aa}</div>


request.getParameter()获取的是用来接收来自get方法或post方法的参数

只能接收java.lang.String

String par=request.getParameter("username");

request.getAttribute()用来接收servlet的变量或Action(其实Action就是特殊的Servlet)

只能接收java.lang.Object

但可以强转为String类型

String att=(String)request.getAttribute("aa");

request.getSession().getAttribute() 先获取session容器,再获取session中的Object

用来接收servlet的变量或Action(其实Action就是特殊的Servlet)

只能接收java.lang.Object

但可以强转为String类型

String ses=(String)request.getSession().getAttribute("aa");



这篇关于前后台页面参数互传的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1141742

相关文章

Python结合Free Spire.PDF for Python实现PDF页面旋转

《Python结合FreeSpire.PDFforPython实现PDF页面旋转》在日常办公或文档处理中,我们经常会遇到PDF页面方向错误的问题,本文将分享如何用Python结合FreeSpir... 目录基础实现:单页PDF精准旋转完整代码代码解析进阶操作:覆盖多场景旋转需求1. 旋转指定角度(90/27

使用Python实现在PDF中添加、导入、复制、移动与删除页面

《使用Python实现在PDF中添加、导入、复制、移动与删除页面》在日常办公和自动化任务中,我们经常需要对PDF文件进行页面级的编辑,使用Python,你可以轻松实现这些操作,而无需依赖AdobeAc... 目录1. 向 PDF 添加空白页2. 从另一个 PDF 导入页面3. 删除 PDF 中的页面4. 在

Java JAR 启动内存参数配置指南(从基础设置到性能优化)

《JavaJAR启动内存参数配置指南(从基础设置到性能优化)》在启动Java可执行JAR文件时,合理配置JVM内存参数是保障应用稳定性和性能的关键,本文将系统讲解如何通过命令行参数、环境变量等方式... 目录一、核心内存参数详解1.1 堆内存配置1.2 元空间配置(MetASPace)1.3 线程栈配置1.

SpringMVC配置、映射与参数处理​入门案例详解

《SpringMVC配置、映射与参数处理​入门案例详解》文章介绍了SpringMVC框架的基本概念和使用方法,包括如何配置和编写Controller、设置请求映射规则、使用RestFul风格、获取请求... 目录1.SpringMVC概述2.入门案例①导入相关依赖②配置web.XML③配置SpringMVC

通过React实现页面的无限滚动效果

《通过React实现页面的无限滚动效果》今天我们来聊聊无限滚动这个现代Web开发中不可或缺的技术,无论你是刷微博、逛知乎还是看脚本,无限滚动都已经渗透到我们日常的浏览体验中,那么,如何优雅地实现它呢?... 目录1. 早期的解决方案2. 交叉观察者:IntersectionObserver2.1 Inter

C#自动化实现检测并删除PDF文件中的空白页面

《C#自动化实现检测并删除PDF文件中的空白页面》PDF文档在日常工作和生活中扮演着重要的角色,本文将深入探讨如何使用C#编程语言,结合强大的PDF处理库,自动化地检测并删除PDF文件中的空白页面,感... 目录理解PDF空白页的定义与挑战引入Spire.PDF for .NET库核心实现:检测并删除空白页

C#中通过Response.Headers设置自定义参数的代码示例

《C#中通过Response.Headers设置自定义参数的代码示例》:本文主要介绍C#中通过Response.Headers设置自定义响应头的方法,涵盖基础添加、安全校验、生产实践及调试技巧,强... 目录一、基础设置方法1. 直接添加自定义头2. 批量设置模式二、高级配置技巧1. 安全校验机制2. 类型

SpringBoot 获取请求参数的常用注解及用法

《SpringBoot获取请求参数的常用注解及用法》SpringBoot通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C... 目录SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数以下是主要的注解及其用法:1

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty

python中的显式声明类型参数使用方式

《python中的显式声明类型参数使用方式》文章探讨了Python3.10+版本中类型注解的使用,指出FastAPI官方示例强调显式声明参数类型,通过|操作符替代Union/Optional,可提升代... 目录背景python函数显式声明的类型汇总基本类型集合类型Optional and Union(py