el标签输出以及使用javaBean和读取

Posted ciscolee

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了el标签输出以及使用javaBean和读取相关的知识,希望对你有一定的参考价值。

一、以网页来总结【查阅时根据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","[email protected]");
response.addCookie(c);
request.setAttribute("uemail", "[email protected]");
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/>
&lt;jsp:useBean id="user‘ class="报名.bean类名"&gt;&lt;/jsp:useBean&gt;(&lt;表示<,&gt;表示>)<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>

 

以上是关于el标签输出以及使用javaBean和读取的主要内容,如果未能解决你的问题,请参考以下文章

JAVAWEB开发之Session的追踪创建和销毁JSP具体解释(指令,标签,内置对象,动作即转发和包括)JavaBean及内省技术以及EL表达式获取内容的使用

EL表达式

jsp中的EL表达式

Jsp入门EL表达式_学习笔记

第五条知识点

jsp--EL表达式