2020 11.9曾宇欣
心得体会:
最近学习的知识有变难了,很多地方不理解,还需要多练习。
知识点:
Jsp
-
jsp
三种标签- <% 代码%>
- <%= 表达式%> 输出语句
- <%! 变量 %> 定义 声明
- <%-- jsp注释 --%>
- <%@include file="页面路径"%> 页面拼接
-
内置对象appliction
application 是JSP的内置对象,它是 javax.servlet.ServletContext 接口的对象。所以所有的用
户都可以访问application中存放的对象,所以application对象对于所有用户来说相当于是一个公共的存
储区域。application对象的生命周期从Web应用程序启动开始一直到Web容器关闭为止。
-
常用方法
void setAttribute(String, String) // 向application内存储对象 Object getAttribute(String name) // 根据name向application中获取存储的对象
void removeAttribute(String name) // 根据name从application中删除存储对象
String getRealPath(String path) // 返回当前应用程序在服务器文件系统中的绝对路径
-
-
四大作用域
所谓“作用域”就是“信息共享的范围”,也就是说一个信息能够在多大的范围内有效,也称为四大存储范围。
-
application 服务器启动到停止这段时间
-
session HTTP会话开始到结束这段时间
-
request HTTP请求开始到结束这段时间
-
page 当前页面从打开到关闭这段时间
四大作用域范围从上到下依次递减,即从大到小是 application > session > request > page
page
存储在page 作用域的数据,仅限于在用户请求的当前页面中被获取,离开当前JSP页面,则page中的所有属性就会丢失。操作page作用域使用pageContext内置对象。
request
存储在request作用域中的数据,在请求开始到结束这段时间内的任何页面都可以被获取。操作request作用域使用request内置对象。
session
存储在application作用域中的数据,在服务器启动到停止这段时间内都可以被获取。会话失
效,则session中的数据也随之丢失。操作session作用域使用session内置对象。
application
存储在application作用域中的数据,在服务器启动到停止这段时间内的任务页面中都可以被获取。操作
application作用域使用application内置对象。
-
-
JSP九大内置对象
JSP中共有九个内置对象,分别是request、response、session、out、exception、page、
pageContext、application和confifig。
-
page内置对象
page对象有点类似于Java编程中的this。page的定义如下
Object page = this;
-
pageContext内置对象
pageContext是javax.servlet.jsp.PageContext的实例,该对象代表该JSP页面上下文,使用该对象可以
访问页面中的共享数据。
常用方法
getOut() // 返回当前客户端响应被使用的JspWriter流(out) getSession() // 返回当前页中的HttpSession对象(session)
getPage() // 返回当前页的Object对象(page)
getRequest() // 返回当前页的ServletRequest对象(request)
getResponse() // 返回当前页的ServletResponse对象(response)
getServletConfig() // 返回当前页的ServletConfig对象(config)
getServletContext() // 返回当前页的ServletContext对象(application)
setAttribute(key,value) // 设置属性及属性值
getAttribute(key) // 在指定范围内取属性的值
-
-
EL表达式
EL表达式又称为表达式语言(Expression Language),它是JSP中一个很重要的组成部分。在JSP页面
中使用EL表达式,可以简化对变量和对象的访问。
EL表达式的语法非常的简单,所有的EL表达式都是以“\({”开始,以“}”结束,比如\){name}。EL表达式会
将表达式中的结果在页面上输出,就像使用JSP的表达式结构或使用out内置对象进行输出一样。代替
jsp中脚本表达式的功能,简化对java代码的操作
<% request.setAttribute("name1",10);
request.setAttribute("name2",10);
request.setAttribute("name3",10);
%>
<%= (Integer)request.getAttribute("name1") + (Integer)request.getAttribute("name2")%>
使用EL表达式 ${name1 + name2 + name3}-
EL获取和解析复杂数据
数组
public class TestJsp extends HttpServlet { @Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
int[] arr = {1,2,3,4,5,6};
req.setAttribute("arr",arr);
req.getRequestDispatcher("jsp.jsp").forward(req,resp);
}${arr[2]}
集合
List<String> list = new ArrayList(); list.add("name");
list.add("name2");
list.add("name3");
list.add("name4");
list.add("name5");
Map<Integer,String> map = new HashMap();
map.put(1,"age");
map.put(2,"age");
map.put(3,"age");
map.put(4,"age");
map.put(5,"age");
req.setAttribute("list",list);
req.setAttribute("map",map);
req.getRequestDispatcher("jsp.jsp").forward(req,resp);${list[2]} ${list[0]}
${map}
${map["1"]}
-
评论留言