一、复习
二、新内容(EL表达式、JSTL标签)StuPrjEL项目
1、JSP脚本有什么不足?
代码结构混乱<% %>
Java代码和Html代码混合起来容易出错
代码不易于维护
2、解决方案:EL表达式 Espression Language
以${开始,以}结束,中间写EL表达式。
语法:${}
3、EL表达式作用
页面结构清晰。
代码可读性高,易于维护。
4、EL操作符
点 . ${对象名.属性名} 获取对象中的属性
中括号 [] ${集合名[对象名]} 获取集合中的对象
5、EL使用注意
类的属性必须实现了getter/setter方法。
EL表达式寻找对象时候
顺序为:pageContext--request--session--application
如果想在某个作用域里去找,前面要指定范围:
pageScope--->pageContext
requestScope--->request
sessionScope--->session
applicationScope--->application
1、JSP脚本有什么不足?
代码结构混乱<% %>
Java代码和Html代码混合起来容易出错
代码不易于维护
2、解决方案:EL表达式 Espression Language
以${开始,以}结束,中间写EL表达式。
语法:${}
3、EL表达式作用
页面结构清晰。
代码可读性高,易于维护。
4、EL操作符
点 . ${对象名.属性名} 获取对象中的属性
中括号 [] ${集合名[对象名]} 获取集合中的对象
5、EL使用注意
类的属性必须实现了getter/setter方法。
EL表达式寻找对象时候
顺序为:pageContext--request--session--application
如果想在某个作用域里去找,前面要指定范围:
pageScope--->pageContext
requestScope--->request
sessionScope--->session
applicationScope--->application
6、代码示例:复制StuPrj项目为StuPrjEL
--新建testel.jsp讲解EL访问的作用域
${requestScope.strs[1]}
--testel.jsp使用EL表达式获取集合的值
${requestScope.strs[1]}
--EL表达式的运算
${1+2} ${"1"+"2"}EL表达式自动转换
${5*(1+2)} ${"1"}${"2"}
${1==2} 逻辑运算,true、false
${1>2:"ab":"cd"} 三目运算符
${}
--改造update.jsp页面讲解EL表达式取对象的实例
--改造stuinfo.jsp时遇到问题,因为有页面循环和判断
7、JSTL(EL表达式无法实现逻辑控制,所以要引入jstl)(注意JSTL的jar包)
JavaServerPages Standard Tag Library JSP标准标签库
JSTL作用:实现页面中的逻辑控制(判断、循环)
--新建testel.jsp讲解EL访问的作用域
${requestScope.strs[1]}
--testel.jsp使用EL表达式获取集合的值
${requestScope.strs[1]}
--EL表达式的运算
${1+2} ${"1"+"2"}EL表达式自动转换
${5*(1+2)} ${"1"}${"2"}
${1==2} 逻辑运算,true、false
${1>2:"ab":"cd"} 三目运算符
${}
--改造update.jsp页面讲解EL表达式取对象的实例
--改造stuinfo.jsp时遇到问题,因为有页面循环和判断
7、JSTL(EL表达式无法实现逻辑控制,所以要引入jstl)(注意JSTL的jar包)
JavaServerPages Standard Tag Library JSP标准标签库
JSTL作用:实现页面中的逻辑控制(判断、循环)
核心标签库:http://java.sun.com/jsp/jstl/core c
条件标签
<c:if>
<c:if test="${age<=18}">
<h1>此网站未成年人禁止访问!</h1>
</c:if>
迭代标签
<c:forEach>
<c:forEach items="${stus}" var="stu">
<span>${stu.sno }----${stu.sname }----${stu.ssex }<br/>
</c:forEach>
--代码示例:新建testjstl.jsp
导入标签库
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
--需求:偶数行变色
条件标签
<c:if>
<c:if test="${age<=18}">
<h1>此网站未成年人禁止访问!</h1>
</c:if>
迭代标签
<c:forEach>
<c:forEach items="${stus}" var="stu">
<span>${stu.sno }----${stu.sname }----${stu.ssex }<br/>
</c:forEach>
--代码示例:新建testjstl.jsp
导入标签库
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
--需求:偶数行变色
乱码解决
一 JSP页面乱码:
JSP文件和页面规定的编码保持一致。(用myEclipse开发不会出现这个问题)GET方式传值乱码:
解决方案:
//1、解决请求乱码问题、解决响应乱码问题
request.setCharacterEncoding("utf-8");
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
response.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
二 设置tomcat的编码方式
利用request.setCharacterEncoding("UTF-8");来设置Tomcat接收请求的编码格式,只对POST方式提交的数据有效,对GET方式提交的数据无效!
要设置GET的编码,可以修改server.xml文件中,相应的端口的Connector的属性:URIEncoding="UTF-8",这样,GET方式提交的数据才会被正确解码。
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" />
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" />
三 数据库连接字符串
jdbc:mysql://localhost:3306/test?characterEncoding=utf-8
jdbc:mysql://localhost:3306/test?characterEncoding=utf-8