`
jallay
  • 浏览: 43007 次
  • 性别: 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  
继续努力吧

相关推荐

    Java面试宝典2010版

    56、子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序。 57、介绍Collection框架的结构 58、Collection框架中实现比较要实现什么接口 59、...

    最新Java面试宝典pdf版

    56、子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序。 38 57、介绍Collection框架的结构 43 58、Collection框架中实现比较要实现什么接口 43 ...

    Java面试笔试资料大全

    56、子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序。 38 57、介绍Collection框架的结构 43 58、Collection框架中实现比较要实现什么接口 43 ...

    JAVA面试宝典2010

    56、子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序。 38 57、介绍Collection框架的结构 43 58、Collection框架中实现比较要实现什么接口 43 ...

    Java面试宝典-经典

    56、子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序。 38 57、介绍Collection框架的结构 43 58、Collection框架中实现比较要实现什么接口 43 ...

    java面试题大全(2012版)

    56、子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序。 38 57、介绍Collection框架的结构 43 58、Collection框架中实现比较要实现什么接口 43 ...

    Java面试宝典2012版

    56、子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序。 38 57、介绍Collection框架的结构 43 58、Collection框架中实现比较要实现什么接口 ...

    java面试宝典2012

    56、子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序。 42 57、介绍Collection框架的结构 47 58、Collection框架中实现比较要实现什么接口 47 ...

    Java面试宝典2012新版

    56、子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序。 38 57、介绍Collection框架的结构 43 58、Collection框架中实现比较要实现什么接口 43...

    Java 面试宝典

    30、String 是最基本的数据类型吗? ............................................................................ 22 31、String s = "Hello";s = s + " world!";这两行代码执行后,原始的 String 对象中的 内容...

Global site tag (gtag.js) - Google Analytics