一、以网页来总结【查阅时根据el.jsp列出的知识点进行查看学习,思考,后续如有更新,再在后文续写】:
1、el.jsp:
<%@page import="java.util.ArrayList"%> <%@page import="java.util.List"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>el表达式</title> </head> <body> <% int x = 10011; pageContext.setAttribute("ax", x); Cookie c = new Cookie("uemail","wwww@qq.com"); response.addCookie(c); request.setAttribute("uemail", "123@qq.com"); request.removeAttribute("uemail"); List<String> list = new ArrayList<String>(); list.add("a"); list.add("b"); list.add("c"); pageContext.setAttribute("culist", list); %> 知识点一:<br/> 输出变量/取出session的值:${ax}<br/> 重点:取得用户请求的值通常使用request.getParameter(string name);request.getParameterValues(string name);<br/> 但el只需要${param.name},${paramValues.name}即可<hr> -------------------------------------------------------------------------------------------------------- <br/> 知识点二、输出cookie的值:<br/> ${cookie.uemail.value} <hr/>领悟:当从其他页面挑战来此页面时,无法获取cookie。<br/> 猜想一:相当于本页面没有提请求,而是其他页面提请求,其实并非如此。<br/> 猜想二:页面已经提取请求,此时服务器已经响应,但页面并未提取到值,再刷新,页面获取cookie里面的值。即先编译代码,运行将cookie加入--->还未响应,便已加载前端代码-->再刷新,则加载。<br/> 为了验证,改变cookie的值,刷新一次,如改变,则猜想错误,如第一次未改变,第二次改变了,则猜想正确。根据实验结果,猜想二正确。 ---------------------------------------------------------------<br/> 从以上大概猜想,java代码在页面时,如值或者代码改变,会先编译或者赋值一次,然后再运行才能得到想要的结果。<br/> 再次根据实验,得到只有cookie会出现这种情况。应该是请求---》响应机制造成的,类似于需要tcp协议握手。<br/> 首先,第一次,jsp发起请求,服务器接收到请求,做出代码编译等动作,但并没有及时响应给客户端;第二次,发起请求,服务器做出响应并将值返回给客户端。 <br/> 知识点三、读取initParam【通过java代码读取的省略】<br/> 1、首先在web.xml中配置定义全局参数:(参考web.xml)<br/> ${initParam.url }<br/> 注意:web.xml改了之后,一定要重启服务器;这里的访问initParam.url中,url是web.xml中param-value标签的值。<br/> 知识点四:el表达式<br/> 2+3=${2+3}<br/> 判断的值是boolean值:${2>3}<br/> 知识点四:输出javaBean的值:<br/> 这里就不做测试,因为el表达式一般不写错都能运行,重点在于深入利旧机制。以及使用语法。<br/> 加载bean类,并以id创建对象:<br/> <jsp:useBean id="user' class="报名.bean类名"></jsp:useBean>(<表示<,>表示>)<br/> 输出javaBean的属性值:${user.name}<br/> 知识点五、输出集合元素:<br/> ${culist[0]}<br/> ${culist[2]}<br/> <p color="red">注意:</p> 对于javaBean的数据,取值则可以culist.属性。 </body> </html>
2、web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmls:xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <display-name>elJstl</display-name> <welcome-file-list> <welcome-file>toel.jsp</welcome-file> </welcome-file-list> <context-param> <param-name>url</param-name> <param-value>jdbc:mysql://127.0.0.1:3306/test</param-value> </context-param> </web-app>
3、用于测试跳转到el的toel.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>传值给el页面</title> </head> <body> <a href="el.jsp?name=cisco">传值给el</a> </body> </html>