Servlet之间传递数据

2023-11-06

转自:http://jallay.iteye.com/blog/256004

1:如何让用户的请求数据从一个Servlet传递给另一个Servlet 


    第一种方式:通过超链接传递数据 
    第二种方式:通过表传递取参数。 
    第三种方式:通过setAttribute("name",value)与getAttribute(name value)传递参数 

  1)通过超链接获得参数: 
    需要在超链接后面给定要传递参数的值。但长度有限制 

Java代码   收藏代码
  1. package testParameter;  
  2.   
  3. import java.io.IOException;  
  4. import java.io.PrintWriter;  
  5. import javax.servlet.ServletException;  
  6. import javax.servlet.http.HttpServlet;  
  7. import javax.servlet.http.HttpServletRequest;  
  8. import javax.servlet.http.HttpServletResponse;  
  9.   
  10. public class TestA extends HttpServlet{  
  11.   
  12.     @Override  
  13.     protected void service(HttpServletRequest request, HttpServletResponse response)  
  14.             throws ServletException, IOException {  
  15.       
  16.         response.setContentType("text/html");  
  17.         PrintWriter out=response.getWriter();  
  18.         String name="hello,everyone";  
  19.         out.println("<html>");  
  20.         out.println("<body>");  
  21.         out.println("<a href='/JSP/test?id="+name+"'>this is a test</a>");  
  22.         out.println("<body>");  
  23.         out.println("</html>");  
  24.                 out.flush();  
  25.           
  26.     }  
  27. }  


通过request.getParameter("id")获得参数的值: 

Java代码   收藏代码
  1. package testParameter;  
  2.   
  3. import java.io.IOException;  
  4. import java.io.PrintWriter;  
  5.   
  6. import javax.servlet.ServletException;  
  7. import javax.servlet.http.HttpServlet;  
  8. import javax.servlet.http.HttpServletRequest;  
  9. import javax.servlet.http.HttpServletResponse;  
  10.   
  11. public class Test extends HttpServlet {  
  12.   
  13.     @Override  
  14.     protected void service(HttpServletRequest request, HttpServletResponse response)  
  15.             throws ServletException, IOException {  
  16.           
  17.         String name=request.getParameter("id");  
  18.         response.setContentType("text/html;charset=gb2312");  
  19.         PrintWriter out=response.getWriter();  
  20.           
  21.         out.println("<html>");  
  22.         out.println("<body>");  
  23.         out.println(name);  
  24.         out.println("</body>");  
  25.         out.println("</html>");  
  26.                 out.flush();  
  27.     }  
  28. }  

通过表单获得参数: 
Java代码   收藏代码
  1. package testParameter;  
  2.   
  3. import java.io.IOException;  
  4. import java.io.PrintWriter;  
  5.   
  6. import javax.servlet.ServletException;  
  7. import javax.servlet.http.HttpServlet;  
  8. import javax.servlet.http.HttpServletRequest;  
  9. import javax.servlet.http.HttpServletResponse;  
  10.   
  11. public class TableP extends HttpServlet{  
  12.   
  13.     @Override  
  14.     protected void service(HttpServletRequest request, HttpServletResponse response)  
  15.             throws ServletException, IOException {  
  16.         response.setContentType("text/html;charset=gb2312");  
  17.         PrintWriter out=response.getWriter();  
  18.         out.println("<html>");  
  19.         out.println("<body>");  
  20.         out.println("<form action='/JSP/tabletest' method='post'>");  
  21.         out.println("<table align='center'>");  
  22.           
  23.         out.println("<tr>");  
  24.         out.println("<td>");  
  25.         out.println("username:");  
  26.         out.println("</td>");  
  27.         out.println("<td>");  
  28.         out.println("<input type='text' name='name'>");  
  29.         out.println("</td>");  
  30.         out.println("</tr>");  
  31.           
  32.         out.println("<tr>");  
  33.         out.println("<td>");  
  34.         out.println("password:");  
  35.         out.println("</td>");  
  36.         out.println("<td>");  
  37.         out.println("<input type='text' name='pwd'>");  
  38.         out.println("</td>");  
  39.         out.println("</tr>");  
  40.           
  41.         out.println("<tr >");  
  42.         out.println("<td colspan='2'>");  
  43.         out.println("<input type='submit' value='提交'>");  
  44.         out.println("</td>");  
  45.         out.println("</tr>");  
  46.           
  47.         out.println("</table>");  
  48.         out.println("</form>");  
  49.         out.println("</body>");  
  50.         out.println("</html>");     
  51.                 out.flush();  
  52.     }  
  53. }  
  54.   
  55. package testParameter;  
  56.   
  57. import java.io.IOException;  
  58. import java.io.PrintWriter;  
  59.   
  60. import javax.servlet.ServletException;  
  61. import javax.servlet.http.HttpServlet;  
  62. import javax.servlet.http.HttpServletRequest;  
  63. import javax.servlet.http.HttpServletResponse;  
  64.   
  65. public class GetTableP extends HttpServlet{  
  66.   
  67.     @Override  
  68.     protected void service(HttpServletRequest req, HttpServletResponse resp)  
  69.             throws ServletException, IOException {  
  70.           
  71.         resp.setContentType("text/html;charset=gb2312");  
  72.         PrintWriter out=resp.getWriter();  
  73.           
  74.         String name=req.getParameter("name");  
  75.         String pwd=req.getParameter("pwd");  
  76.           
  77.         out.println("<html>");  
  78.         out.println("<body>");  
  79.         out.println(name);  
  80.         out.println("<hr>");  
  81.         out.println(pwd);  
  82.         out.println("</body>");  
  83.         out.println("</html>");  
  84.                 out.flush();  
  85.           
  86.     }  
  87.       
  88.       
  89.   
  90. }  

3:通过setAttribute("name",data)和getAttribute("name"); 
其中data可以是任何数据类型,另一个servlet通过名字获取该对象getAttribute("name"); 
注:setAttriute可以被request,session,ServletContext等对象使用。以下以request为例: 
Java代码   收藏代码
  1. package testParameter;  
  2.   
  3. import java.io.IOException;  
  4.   
  5. import javax.servlet.ServletException;  
  6. import javax.servlet.http.HttpServlet;  
  7. import javax.servlet.http.HttpServletRequest;  
  8. import javax.servlet.http.HttpServletResponse;  
  9.   
  10. public class AttributeA extends  HttpServlet{  
  11.   
  12.     @Override  
  13.     protected void service(HttpServletRequest req, HttpServletResponse resp)  
  14.             throws ServletException, IOException {  
  15.           
  16.         String data="this is just a test,wo need more test for this";  
  17.         req.setAttribute("name", data);  
  18.         req.getRequestDispatcher("/attributeb").forward(req, resp);  
  19.     }  
  20.   
  21. }  
  22. package testParameter;  
  23.   
  24. import java.io.IOException;  
  25. import java.io.PrintWriter;  
  26.   
  27. import javax.servlet.ServletException;  
  28. import javax.servlet.http.HttpServlet;  
  29. import javax.servlet.http.HttpServletRequest;  
  30. import javax.servlet.http.HttpServletResponse;  
  31.   
  32. public class AttributeB extends HttpServlet{  
  33.   
  34.     @Override  
  35.     protected void service(HttpServletRequest req, HttpServletResponse resp)  
  36.             throws ServletException, IOException {  
  37.        
  38.          String name=(String)req.getAttribute("name");  
  39.            
  40.          resp.setContentType("text/html;charset=gb2312");  
  41.          PrintWriter out=resp.getWriter();  
  42.            
  43.          out.println("<html>");  
  44.          out.println("<body>");  
  45.          out.println(name);  
  46.          out.println("</body>");  
  47.          out.println("</html>");  
  48.                  out.flush();  
  49.     }  
  50.       
  51.       
  52.   
  53. }  

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Servlet之间传递数据 的相关文章

  • 如何在 QueryDSL 中选择文字

    我目前正在开发一个使用 queryDSL 和 hibernate 的项目 其中它需要一个选择文字 按照发布的示例here https stackoverflow com questions 18691317 querydsl how to
  • 在 java 8 下使用泛型出现类型错误,但在 java 7 下则不然

    我有一段代码可以在 java 7 下编译良好 但不能在 java 8 下编译 这是一个独立的重现示例 我已经采用了显示此问题的真实代码并删除了所有实现 import java util Iterator class ASTNode
  • Java ArrayList 和 HashMap 动态

    有人可以提供一个创建Java的例子吗ArrayList and HashMap在飞行中 所以而不是做一个add or put 实际上在类实例化时为数组 哈希提供种子数据 举个例子 类似于 PHP 的例子 array array 3 1 2
  • Facebook 好友请求 - 失踪好友

    我请求从我正在开发的 Android 应用程序中获取用户好友 从 Facebook Api V2 0 开始 我知道我应该只获取已经通过我的应用程序登录的用户好友 但是 尽管我知道用户的某些朋友已通过我的应用程序登录 但在请求该用户的朋友时
  • java中永远不会出现的异常

    我为点和向量编写一个类 我想用它们来计算向量的点和范数 这些是点类和向量类 public class Point public float x y public class MyVector public Point start end 我
  • 安卓浮动键盘

    是否可以通过编程方式更改键盘的位置 我正在开发一个图腾应用程序 如果键盘停靠在底部 则很难使用 我尝试创建一个扩展 InputMethodService 的自定义键盘 并且我能够更改按键的布局 但我无法更改键盘的视图位置 快捷键 https
  • python 和 android 中通过 AES 算法加密和解密

    我有用于 AES 加密的 python 和 android 代码 当我在android中加密文本时 它在python上成功解密 但无法在android端解密 有人有想法吗 Python代码 import base64 import hash
  • 如何在表格的 tbody/thead 部分周围创建边框?

    我正在尝试创建一个包含表格数据的页面 该页面必须显示为多个表格 然而 我有两个相互冲突的要求需要解决 每个表格周围都必须有边框 每个表格的列宽必须能够根据内容重新调整大小 但是 所有表中的列宽必须一致 即列的大小基于所有表中该列中最大的单元
  • Jersey 和 Spring 中的全局异常处理?

    我正在使用 Jersey 和 Spring 3 2 以及 Open CMIS 开发 RESTful Web 服务 我没有使用 Spring 的 MVC 模式 它只是 Spring IOC 和 Jersey SpringServlet 控制器
  • SQlite 获取最近的位置(带有纬度和经度)

    我的 SQLite 数据库中存储有纬度和经度的数据 我想获取距我输入的参数最近的位置 例如我当前的位置 纬度 经度等 我知道这在 MySQL 中是可能的 并且我已经做了相当多的研究 SQLite 需要一个自定义外部函数来实现半正弦公式 计算
  • Android Lollipop:将应用程序小部件添加到主屏幕时启动器崩溃

    添加小部件时 启动器在 Android Lollipop 上崩溃 并显示以下消息 在以前的 Android 版本上运行良好 编辑 这只发生在横向方向 12 16 12 35 10 208 E AndroidRuntime 960 java
  • 删除

    好的 我有一个小菜单栏 菜单内的三个元素还有更多的子菜单 但是菜单栏中的元素之间有不必要的间距 而且我创建的子菜单有不必要的背景宽度 我在代码中将其涂成白色以使读者理解 由于这种不必要的宽度 即使鼠标悬停在不可见的宽度上 在本例中为白色 本
  • 为什么我不能在 TCPDF 表中使用 č,ć,đ 图表?

    我正在为我的网站构建一个 tcpdf 文件 该 tcpdf 文件中有一个包含一些数据的表格 但我无法使该章程正常工作 对于编码 我使用 windows 1250 宪章女巫不起作用 我已经尝试过 utf 8 但仍然没有得到这个章程 tcpdf
  • 未捕获的引用错误:cordova 未定义

    这是我的 HelloPlugin js 文件 var HelloPlugin callNativeFunction function success fail resultType return cordova exec success f
  • 如何从 Sublime Text 编辑器调试 Java 应用程序

    有时我正在对相当大的 Java 应用程序进行简单的修复 但我不想打开 Eclipse 来执行此任务 Eclipse 启动时间很长 并且由于该项目是由大量子项目构建的 而这些子项目无论如何都是由 Maven 构建的 因此需要很长时间才能使用
  • 如何找出每个包含的库的最低 api 级别

    我的项目中包含了很多库 Android Studio 2 0 Preview 4 我想找出它们每个的最低 Android SDK 级别 是否可以不用谷歌搜索每个图书馆的信息 如果您有源形式的库 例如 作为项目中的库模块 请查看其清单 如果您
  • 没有运算符与给定名称和参数类型匹配。您可能需要添加显式类型转换。 -- Netbeans、Postgresql 8.4 和 Glassfish

    我正在尝试使用 EclipseLink 在 Glassfish 中使用 JPA 编辑 Postgresql 中的表 当我插入一个实体时 它运行良好 但是 当我尝试编辑或删除同一实体时 它失败并出现以下错误 任何想法 Caused by Ex
  • 如何在ListView中标记视图?

    我有一个带有列表视图的应用程序 列表视图工作正常 当我希望列表以标记的某些行开始时 问题就开始了 如果我按下它 我可以标记一行 但是 似乎没有找到一种方法来在初始化时标记任何行 这是我的代码 listViewOfBluetooth getL
  • 更改javascript nodejs中所有页面的href url

    我已经实现了具有多种语言下拉菜单的引导导航栏 当我选择语言时 它将翻译页面 如何更改其他页面的 url 和按钮文本 当我选择french 将所有网址更改为 fr about and fr contact 如何使用 JavaScript 进行
  • 如何解决此错误:属性 rel 的原始源值错误

    我正在尝试使用 w3c 验证我的网站 但出现错误 Bad value original source for attribute rel on element link The string original source is not a

随机推荐

  • 我的机器学习--线性回归

    1 最小二乘法 上述方法可以直接得到线性回归方程 import numpy as np import matplotlib pyplot as plt x 2 np random rand 100 1 y 4 3 x np random r
  • C语言指针转换为intptr_t类型

    随笔 155 文章 2 评论 342 C语言指针转换为intptr t类型 1 前言 今天在看代码时 发现将之一个指针赋值给一个intptr t类型的变量 由于之前没有见过intptr t这样数据类型 凭感觉认为intptr t是int类型
  • 一个五位数判断他是否为回文数。

    一个五位数判断他是否是回文数 代码 num int input munber n flag True while True if 10000 lt num lt 100000 print input number num break els
  • 腾讯三面被问到有没有参加过CTF?我反手就是一套军体拳打得面试官哑口无言!

    目录 前言 正文 什么是CTF 什么是PWN 为什么要学CTF CTF竞赛模式 CTF各大题型简介 学之前的思考 分析赛题情况 常规做法 CTF比赛需要的知识储备 CTF比赛的神器 恶补基础知识 信息安全专业知识推荐图书 前言 这是一场紧张
  • Typora字体颜色修改

    Typora字体颜色修改 typora中不能直接修改字体颜色 但有三种方法可以实现修改Typora中颜色 第一种 安装AutoHotKey 较简单 安装AutoHotKey windows系统快捷键设置软件 从而通过设置快捷键来达到修改字体
  • macbook brew install 经常遇见 No such file or directory @ rb_sysopen

    安装php brew install php 在执行过程中经常报错 比如以下 gt Installing php dependency openldap gt Pouring openldap 2 5 8 arm64 monterey bo
  • Docker介绍

    目录 docker定义 docker解决了什么问题 docker技术边界 docker给我们带来了哪些改变 docker和虚拟机的区别 docker基本架构 基本架构图 RootFs Linux Namespace 进程命名空间 查看元祖进
  • 动态规划快速入门

    更多内容 欢迎关注微信公众号 全菜工程师小辉 公众号回复关键词 领取免费学习资料 动态规划算法一直是面试手撕算法中比较有挑战的一种类型 很多的分配问题或者调度问题实际上都可能用动态规划进行解决 当然 如果问题的规模较大 有时候会抽象模型使用
  • 【CV】第 14 章:用最少的数据点训练

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • 情人节-动态爱心背景(html5+css+js)

    一 效果图 二 源代码
  • GDAL对TIF创建内建金字塔一个问题

    gdalwarp输出tif图像的时候 默认如果没有使用BIGTIFF YES选项 则会根据输出影像的大小进行判断 低于4G则不适用bigtiff格式 对于非bigtiff图像 如果这时候使用gdaladdo创建金字塔 内建模式 如果出现了文
  • SQL——游标

    非原创 东拼西凑来的 游标 cursor 是一个存储在MySQL服务器上的数据库查询 它不是一条SELECT语句 而是被该语句检索出来的结果集 在存储了游标之后 应用程序可以根据需要滚动或浏览其中的数据 游标主要用于交互式应用 其中用户需要
  • 业务安全及实战案例

    业务安全 关于漏洞 注入 业务逻辑 信息泄露 A04 2021 Insecure Design 在线靶场PortSwigger 1 概述 1 1 业务安全现状 1 1 1 业务逻辑漏洞 近年来 随着信息化技术的迅速发展和全球一体化进程的不断
  • php读写excel文件

    1 引入包 有不少提供读写excel文件的包 这里选择比较常用的一个 加到自己的项目里就好了 phpoffice phpspreadsheet 1 8 2 2 读取文件
  • Android中的USB中的UsbAccessory和UsbDevice的区别

    转载自 http www crifan com android usb usbaccessory vs usbdevice utm source tuicool utm medium referral UsbAccessory和UsbDev
  • MySQL更新表的记录详解

    目录 前言 前言 一 更新数据记录 1 特定数据记录 2 所有数据记录 总结 前言 更新数据记录是数据操作中常见的操作 可以更新表中已经存在数据记录中的值 在MySQL中可以通过UPDATE语句来实现更新数据记录 该SQL语句可以通过如下几
  • 5个炫酷登录页面,拿去就能用(附源码)

    5个炫酷登录页面 拿去就能用 附源码 登录页面 觉得显示效果很好 借鉴其他博主的 喜欢的可以收藏关注 不商用 只为学习传播 目录 1 炫酷星空登录 2 动态云层登录 3 深海灯光水母登录 4 炫酷蛛网登录 5 彩色气泡登录 1 炫酷星空登录
  • 响应式网页设计(Responsive Web Design)的核心原理

    聚沙成塔 每天进步一点点 专栏简介 响应式网页设计的核心原理 优点和缺点 优点 缺点 写在最后 专栏简介 前端入门之旅 探索Web开发的奇妙世界 欢迎来到前端入门之旅 感兴趣的可以订阅本专栏哦 这个专栏是为那些对Web开发感兴趣 刚刚踏入前
  • CVE-2022-26134 Confluence OGNL RCE 复现

    一 漏洞概述 Atlassian Confluence 是一款各企业广泛使用的 wiki 系统 在Atlassian Confluence Server and Data Center上存在OGNL 注入漏洞 远程攻击者在未经身份验证的情况
  • Servlet之间传递数据

    转自 http jallay iteye com blog 256004 1 如何让用户的请求数据从一个Servlet传递给另一个Servlet 第一种方式 通过超链接传递数据 第二种方式 通过表传递取参数 第三种方式 通过setAttri