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之间传递数据 的相关文章

随机推荐

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

    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