package request;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//请求转发,以及使用request域对象把数据带给转发资源
/*
* 请求转发的特点:
* 1.客户端只发一次请求,而服务器端有多个资源调用
* 2.客户端浏览地址栏没有变化
*
*/
public class RequestDemo5 extends HttpServlet {
//mvc (model javabean v view(jsp) c cotroller(servlet) )
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String data = "aaaaa";
request.setAttribute("data", data);
//request也可以实现转发s
request.getRequestDispatcher("/message.jsp").forward(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
jsp取出数据
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'message.jsp' starting page</title>
</head>
<body>
<%
String message = (String)application.getAttribute("message");
out.write(message);
%>
</body>
</html>
application:全局作用范围,整个应用程序共享,就是在部署文件中的同一个webApp共享,生命周期为:应用程序启动到停止。
getAttribute():返回由name指定的名字的application对象的属性的值.
服务器启动后就产生了这个application对象,当客户再所访问的网站的各个页面之间浏览时,这个application对象都是同一个,直到服务 器关闭。但是与session不同的是,所有客户的application对象都是同一个,即所有客户共享这个内置的application对象。