El表达式之传统数据流转的缺点

数据流转

request获取作用域在jsp中,数据流转的常用方式用传统方式进行总结:
有普通字符串和对象两种形式

传统方式获取作用域数据

缺点一:导入包
缺点二:需要强转数据类型
缺点三:获取数据的代码过于麻烦

<b><%=request.getParameter("uname")%></b><br />
<b><%=request.getAttribute("str") %></b><br />
<b><%=((User)request.getAttribute("user")).getAddr().getTown() %></b><br />
<b><%=((ArrayList)request.getAttribute("list")).get(2)%></b><br />
<b><%=((User)(((ArrayList)request.getAttribute("list2")).get(0))).getAddr().getPre() %></b><br />
<b><%=((HashMap)request.getAttribute("map")).get("c") %></b><br />
<b><%=((User)(((HashMap)request.getAttribute("map2")).get("a1"))).getAddr().getCity() %></b><br />
package com.youdian.servlet;

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

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

import com.youdian.pojo.Address;
import com.youdian.pojo.User;
/**
 * 问题:
 * 	在servlet进行请求处理后,使用作用域对象作为数据流转的载体。将数据流转给对应的jsp文件。
 * 	那么怎么在jsp中获取作用域中的数据呢?
 * 使用:
 * 	传统方式:在jsp页面中使用java脚本段语句。

 */
public class ElServlet extends HttpServlet {
	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		//设置请求编码格式
		req.setCharacterEncoding("utf-8");
		//设置响应编码格式
		resp.setContentType("text/html;charset=utf-8");
		//获取请求信息
		String uname=req.getParameter("uname");
		String pwd=req.getParameter("pwd");
		//处理请求信息
		System.out.println(uname+":"+pwd);
		//响应处理结果
			//使用request作用域进行数据流转
				//普通字符串
				req.setAttribute("str","今天的天气很清爽,适合学习");
				//对象类型
				User u=new User(1, "柳岩","拍电影",new Address("河南","商丘", "虞城县"));
				req.setAttribute("user", u);
				//集合类型
					//List集合
						//存储普通字符
						List<String> list=new ArrayList<String>();
						list.add("代红1");
						list.add("代红2");
						list.add("代红3");
						req.setAttribute("list",list);
						//存储对象
						User u2=new User(2, "代红4","拍电影",new Address("北京","自动","时代"));
						List<User> list2=new ArrayList<User>();
						list2.add(u2);
						req.setAttribute("list2",list2);
					//Map集合
						//存储普通字符
						Map<String,String> map=new HashMap<String,String>();
						map.put("a", "北京");
						map.put("b", "上海");
						map.put("c", "商丘");
						req.setAttribute("map",map);
						//存储对象
						Map<String,User> map2=new HashMap<String,User>();
						map2.put("a1", new User(3, "代红5","拍电影",new Address("北京","自动","时代")));
						req.setAttribute("map2",map2);
					//空值判断
						req.set Attribute("s","");
						req.setAttribute("s1",new User());
						req.setAttribute("s2",new ArrayList());
						req.setAttribute("s3",new HashMap());
						
						
						
			//请求转发
			req.getRequestDispatcher("/el.jsp").forward(req, resp);	
			return;
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值