Servlet之间传递数据

10 篇文章 0 订阅

转自: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. }  

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值