暂且总结了5种方式
Servlet共享数据的方法
一.重定向
1.发送数据
request.setAttribute("request_name", "request_value");
response.sendRedirect("接受的url?request_name=request_value ");
2.接收数据
String request_name=(String)request.getAttribute("request_name");
二.请求转发
1.发送数据
request.getRequestDispatcher("接受的url").forward(request, response);
2.接收数据
String request_name=(String)request.getAttribute("request_name");
三.Servlet-Context技术
1.在web.xml中配置
<context-param>
<param-name>request_name</param-name>
<param-value>request_value </param-value>
</context-param>
2.获取数据
String value=this.getServletContext().getInitParameter("request_name");
四.Servlet-Init技术
(与第三种相区别:context 为全局变量,而init是两个servlet间的共享)
A.共享单个数据
1.在web.xml中配置
<init-param>
<param-name>request_name</param-name>
<param-value>request_value</param-value>
</init-param>
2.获取数据
ServletConfig servletConfig =this.getServletConfig();
String value=servletConfig.getInitParameter("request_name");
B.共享多个数据
1.在web.xml中配置
配置多组<init-param></init-param>键值对
2.获取数据
Enumeration params=this.getServletConfig().getInitParameterNames();
while(params.hasMoreElements()) {
String name=params.nextElement().toString();
String value=this.getServletConfig().getInitParameter(name);
五.获取参数(用户在登录界面输入的信息实现共享)
1.传输数据
PrintWriter out=response.getWriter();
out.println("<form action='url' method='post'>");
out.println("用户名:<input type=text name=username ><br />");
out.println("密码: <input type=password name=password ><br />");
out.println("<input type=submit value=登录><br /><br />");
2.接收数据
String username=request.getParameter("username");