【J2EE学习】(二)Servlet向JSP传值

 Servlet向JSP传值有两种方式:(1)通过session传值(2)通过RequestDispatcher重新分配资源

(服务器端的重定向可以有两种方式,一是使用HttpServletResponse的sendRedirect(),二是使用RequestDispatcher的forward()方法)

1.通过session传值

   
 HttpRequest对象有两种形式的getSession方法调用:
     一个是getSession(),
     另一个是getSession(boolean isNew)
     前者会检测当前是否有session存在,如果不存在则创建一个,如果存在就返回当前的。
     getSession()相当于getSession(true),
     参数为true时,若存在会话则返回该会话,否则新建一个会话。
     参数为false时,若存在会话则返回该会话,否则应该返回一个NULL
JSP代码片段
使用 EL 表达式
<span id="span">${value}</span>
EL 表达式 EL (Expression Language)。主要作用:获取数据、执行运算、获取 Web 开发常用对象。
或者直接通过 表达式获取后台Servlet传的值
<%=session.getAttribute("value")%>
SERVLET代码片段(doPost方法:
request.getSession().setAttribute("value","Hello World!!");//获取session 添加变量value
 response.sendRedirect("index.jsp");//通过response重定向

2.通过RequestDispatcher

将 当前的request和response重定向到该RequestDispacher指定的资源。一个RequestDispatcher对象可以把请求发送到任意一个服务器资源,而不仅仅是另 外一个Servlet。RequestDispacher有两个方法include()方法与forward()方法,两个方法很类似.
利用include()方法将HTTP请求转送给其他Servlet 后,被调用的Servlet如果产生任何 HTTP回应,将会并入原来的HttpResponse对象,继续执行原来 Servlet的操作。
  • <1>在HTTP回应被“确认”(即已经成功返回给客户端信息)以前才能调用forward()方法,否则将拋出IllegalStateException异常。
  • <2>调用forward()方法后,原先存放在HttpResponse对象中的内容会自动被清除.
JSP代码片段:
<span id="span"><%=request.getAttribute("value")%></span>
Servlet代码片段(doPost方法):
protected void doPost(HttpServletRequest request,HttpServletResponse response) throws                                                                                            javax.servlet.ServletException, IOException{
    request.setAttribute("value", "Hello World!!I am smith Sun");
    //这句代码就是说将当前servlet的数据转发到目的地(index.jsp)里
    RequestDispatcher requestDispatcher = request.getRequestDispatcher("index.jsp");
    //它是服务器端转发,一般还要把request和response传过去
    requestDispatcher.forward(request, response);
}
-------------------------------------------------------------------------------------------------------------------------------------
关于JSP与EL表达式的详细介绍,可以点击下面的链接



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值