`
jallay
  • 浏览: 43943 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

Servlet之间传递程数据的方式

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

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

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

package testParameter;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class TestA extends HttpServlet{

	@Override
	protected void service(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
	
		response.setContentType("text/html");
		PrintWriter out=response.getWriter();
		String name="hello,everyone";
		out.println("<html>");
		out.println("<body>");
		out.println("<a href='/JSP/test?id="+name+"'>this is a test</a>");
		out.println("<body>");
		out.println("</html>");
                out.flush();
		
	}
}


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

package testParameter;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Test extends HttpServlet {

	@Override
	protected void service(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		
		String name=request.getParameter("id");
		response.setContentType("text/html;charset=gb2312");
		PrintWriter out=response.getWriter();
		
		out.println("<html>");
		out.println("<body>");
		out.println(name);
		out.println("</body>");
		out.println("</html>");
                out.flush();
	}
}

通过表单获得参数:
package testParameter;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class TableP extends HttpServlet{

	@Override
	protected void service(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		response.setContentType("text/html;charset=gb2312");
		PrintWriter out=response.getWriter();
		out.println("<html>");
		out.println("<body>");
		out.println("<form action='/JSP/tabletest' method='post'>");
		out.println("<table align='center'>");
		
		out.println("<tr>");
		out.println("<td>");
		out.println("username:");
		out.println("</td>");
		out.println("<td>");
		out.println("<input type='text' name='name'>");
		out.println("</td>");
		out.println("</tr>");
		
		out.println("<tr>");
		out.println("<td>");
		out.println("password:");
		out.println("</td>");
		out.println("<td>");
		out.println("<input type='text' name='pwd'>");
		out.println("</td>");
		out.println("</tr>");
		
		out.println("<tr >");
		out.println("<td colspan='2'>");
		out.println("<input type='submit' value='提交'>");
		out.println("</td>");
		out.println("</tr>");
		
		out.println("</table>");
		out.println("</form>");
		out.println("</body>");
		out.println("</html>");	
                out.flush();
	}
}

package testParameter;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class GetTableP extends HttpServlet{

	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		
		resp.setContentType("text/html;charset=gb2312");
		PrintWriter out=resp.getWriter();
		
		String name=req.getParameter("name");
		String pwd=req.getParameter("pwd");
		
		out.println("<html>");
		out.println("<body>");
		out.println(name);
		out.println("<hr>");
		out.println(pwd);
		out.println("</body>");
		out.println("</html>");
                out.flush();
		
	}
	
	

}

3:通过setAttribute("name",data)和getAttribute("name");
其中data可以是任何数据类型,另一个servlet通过名字获取该对象getAttribute("name");
注:setAttriute可以被request,session,ServletContext等对象使用。以下以request为例:
package testParameter;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class AttributeA extends  HttpServlet{

	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		
		String data="this is just a test,wo need more test for this";
		req.setAttribute("name", data);
		req.getRequestDispatcher("/attributeb").forward(req, resp);
	}

}
package testParameter;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class AttributeB extends HttpServlet{

	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
	 
		 String name=(String)req.getAttribute("name");
		 
		 resp.setContentType("text/html;charset=gb2312");
		 PrintWriter out=resp.getWriter();
		 
		 out.println("<html>");
		 out.println("<body>");
		 out.println(name);
		 out.println("</body>");
		 out.println("</html>");
                 out.flush();
	}
	
	

}


分享到:
评论
1 楼 dayang2001911 2008-10-21  
继续努力吧

相关推荐

    swing与servlet通信

    为了方便数据的序列化和反序列化,Swing和Servlet之间常使用JSON或XML作为数据交换格式。例如,使用Jackson库在Swing中解析JSON,以及使用JAXB或DOM在Servlet中处理XML。 6. **安全考虑** 在实际应用中,必须考虑...

    数据库课程作业,基于jsp + jdbc + servlet + javabean的学生管理系统.zip

    JavaBeans可以在JSP和Servlet之间传递数据,使得代码更加模块化和可维护。 4. **JDBC (Java Database Connectivity)**:JDBC是Java访问数据库的标准API,用于连接、查询和操作数据库。在这个项目中,JDBC用于建立...

    基于Servlet和Jsp实现的教务管理系统.zip

    然后,Servlet可能将控制权传递给JSP页面,JSP根据Servlet提供的数据生成动态内容并返回给用户。整个过程中,Servlet和JSP相互协作,共同完成了教务管理系统的各项功能。 总之,基于Servlet和JSP的教务管理系统是一...

    基于jsp、javaBean、servlet的论坛系统.zip

    7. **会话管理**:为了保持用户的登录状态,论坛系统会使用session进行会话管理,将用户信息保存在服务器端,通过session ID在客户端和服务器之间传递。 8. **错误和异常处理**:良好的错误处理机制是系统稳定性的...

    基于servlet+jsp+mysql+jdbc网上书店系统.zip

    用户通过浏览器发送请求到Web服务器,服务器加载对应的Servlet,Servlet执行业务逻辑,可能包括通过JDBC与MySQL交互,然后将结果传递给JSP页面,JSP渲染HTML并返回给用户。此外,可能会有session和cookie用于用户...

    基于servlet+jsp的电影购票系统客户端+服务端.zip

    通过使用Servlet和JSP技术,开发者能够实现动态网页与服务器之间的交互,提供用户友好的界面和高效的数据处理能力。 **Servlet技术详解:** Servlet是Java编程语言中的一个接口,用于扩展服务器的功能。在Web应用中...

    servlet 3.0 聊天室 推送

    在这个项目中,我们将深入探讨如何利用Servlet 3.0的特性实现一个简单的聊天室,并通过推送技术实现实时的消息传递。 首先,Servlet 3.0引入了注解配置,这极大地简化了Servlet的部署和管理。在之前的版本中,我们...

    基于JSP+layui+mysql+servlet+javabean实现的图书馆管理系统.zip

    在图书馆管理系统中,javabean常用于封装数据库中的实体对象,如Book、User等,方便在servlet和JSP之间传递数据。 6. **项目结构与运行流程** 项目通常包含以下几个主要部分:Web-INF目录下存放servlet配置文件web...

    基于jsp+servlet+c++的图像拼接系统.zip

    在这个项目中,JSP页面可能包含了用户界面元素,如图片上传按钮、参数设置区域等,并且通过内置的Java表达式和脚本来处理用户的输入,将数据传递到后台。 2. **Servlet**:Servlet是JavaEE中用于扩展服务器功能的...

    四川省科技创新苗子程资助项目申请书(基于android的移动场景响应及应用) 2.doc

    系统利用JSP技术在J2EE环境中为用户提供数据,通过Servlet与Android应用进行通信,支持GET和POST两种传输方式。 在这个项目中,Android应用与Servlet的通信是一个关键环节。GET方式下,参数通过URL传递;POST方式则...

    基于CXF的webService本地数据交互----PC端与Android端(三)

    在本篇博文中,我们将深入探讨如何利用Apache CXF实现Web Service进行本地数据交互,特别是在PC端和Android端之间的通信。Apache CXF是一个开源框架,它允许开发人员创建和消费各种Web服务,包括SOAP和RESTful。这个...

    android访问网络服务器

    在Android应用开发中,访问网络服务器是常见的需求,通常用于获取、发送数据。在这个场景下,我们主要涉及三个关键技术:JSON、Android的...理解并掌握这些技术,能够有效地实现Android应用与服务器之间的数据交互。

    设计任意两个复数实现4则运算(复数加法、减法、乘法、除法)的Web程序。

    同时,这也是一个很好的机会去实践MVC(Model-View-Controller)架构,即使在这个简单的例子中,模型(JavaBean)负责处理数据,视图(JSP)负责展示结果,控制器(Servlet或JSP动作)负责协调两者之间的交互。

    中南大学仿“滴滴物流”移动应用开发报告.pdf

    - **Fragment 与 Activity 之间传递信息**:讨论了如何在 Fragment 与 Activity 之间传递数据,以及解决相关问题的方法。 - **RecyclerView 初始化时空指针问题**:探讨了解决 RecyclerView 在初始化时可能出现的...

    Android&Tomcat服务器Http协议通信

    2. POST请求:数据放在请求体中,适用于传递大量或复杂数据。 五、服务器响应 1. 状态码:如200表示成功,404表示未找到,500表示服务器错误等。 2. 响应头:包含服务器信息、响应附加信息等。 3. 响应体:返回的...

    JavaBean_Javabean增删改查_audiencevu9_

    JavaBean是Java编程中的一种重要概念,主要用于封装数据和业务逻辑,它遵循一定的规范,使得Java对象能够被方便地在Web应用中使用,特别是在Servlet和JSP之间传递数据。在这个项目"JavaBean_Javabean增删改查_...

    优化Android与服务器高效率交互,无转义问题

    2. **数据库查询优化**:通过索引、预编译SQL、合理设计数据结构等方式,提高数据库查询效率。 3. **响应格式统一**:使用JSON作为数据交换格式,易于解析且跨平台兼容性好。注意避免转义问题,确保数据的正确传递...

    基于JSP+MVC+MySQL+Apache Tomcat的学生管理系统.zip

    在这个学生管理系统中,JSP主要负责展示用户界面,接收用户输入,并将这些数据传递给后台处理。 2. **MVC(Model-View-Controller)模式**:这是一种软件设计模式,用于分离应用程序的数据模型、视图和控制器。模型...

    在线聊天室

    在线聊天室通常采用WebSocket协议,它提供了一种持久连接的方式,允许服务器和客户端之间进行双向通信,实现消息的即时推送。 3. **MVC设计模式**:在JavaWeb开发中,Model-View-Controller(模型-视图-控制器)是...

    android客户端实现与服务器交互的用户登录功能

    2. **JSON数据格式**:在Android和服务器之间传递的数据通常采用JSON(JavaScript Object Notation)格式,因为JSON轻量级、易于解析,并且跨平台兼容性好。例如,登录请求可能包含一个JSON对象:`{"username": ...

Global site tag (gtag.js) - Google Analytics