什么是EL:Expression Language(表达式语言)
EL的语法:${EL expression}
${bean.name} 或 ${bean['name']} :单双引号都可以
name:属性名。
${ bean.name}:实质是调用bean 的getName()的方法。
优点:①EL得到某个数据时可以自动转换类型
② 对于类型的限制更宽松
③ 使用简单,相比较在jsp中嵌入Java代码,EL应用更简单
JSTL (JavaServerPages Standard Tag Library) :标准标签库
优点:①提供一组标准标签
② 可编写各种动态JSP页面
核心标签库
通用标签:
set:赋值
remove:移除
out:打印
条件标签:if
迭代标签:foreach
代码运用:
咱们拿几个界面,举举例子。
最开始我们进入doindex界面:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="l" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>主界面过渡界面</title>
</head>
<body>
<l:if test="${not empty u}">
欢迎您的到来:${u.uname }
<%request.getRequestDispatcher("index.jsp").forward(request, response);%>
</l:if>
<l:if test="${empty u}">
<%request.getRequestDispatcher("login.jsp").forward(request, response);%>
</l:if>
</body>
</html>
判断用户有没有登录,没有登录就跳转到login界面
进入登录界面:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>用户登录</title>
<script type="text/javascript">
//定义字符串,在0-9出随机数
var str = "1234567890";
//验证功能
function yz() {
//随机出4个0-字符串长度之间的数字 做为下标
//先定义为空
yzmStr="";
// 循环遍历出随机数
for(var i=1;i<=4;i++){
yzmStr+=str.substr(Math.round(Math.random()*(str.length-1)),1);
}
//把验证码赋值到页面
document.getElementById("syzm").innerHTML=yzmStr;
}
//返回id值函数
function $(id) {
return document.getElementById(id);
}
//验证 用户名 和 密码功能
function login_yz() {
//验证 用户名 和 密码不能为空
//获取用户名
var uname = $("uname").value;
//判断
if(uname.length==0){
alert("用户名不能为空");
return false;
}
//获取密码
var upwd = $("upwd").value;
if(upwd.length==0){
alert("密码不能为空");
return false;
}
//获取验证码:判断和电脑的验证码是否相等
var yzm = $("uyzm").value;
if(yzm!=yzmStr){
alert("验证码输入错误,请重新输入");
//清空输入的验证码
$("uyzm").value="";
//重新生成验证码
yz();
return false;
}
}
</script>
</head>
<body onload="yz()">
<form action="dologin.jsp" onsubmit="return login_yz()">
<div id="user">
用 户 <input type="text" id="uname" name="textfield"/>
</div>
<div id="password">
密 码 <input type="password" id="upwd" name="textfield1" />
</div>
<div id="yzm">
验证码 <input id="uyzm" style="width: 50px;" type="text" name="textfield3" />
<span id="syzm" onclick="yz()"></span>
</div>
<div id="btn">
<input type="submit" value="登录">
<input type="reset" value="清空">
</div>
</form>
</body>
</html>
再过一下 dologin界面
<%@page import="com.zking.biz.Imp_UserDaoBiz"%>
<%@page import="com.zking.entity.User"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
//接收login页面传递的数据
String uname=request.getParameter("textfield");
String upwd = request.getParameter("textfield1");
User u=new Imp_UserDaoBiz().login(uname, upwd);
//处理结果
if(u!=null){
//转发
//session.setAttribute("u", u);
//把用户编号放到内置对象 session中
session.setAttribute("u",u);
session.setAttribute("uid",u.getUid());
request.getRequestDispatcher("doindex.jsp").forward(request, response);
}else{
//失败
out.print("<script>alert('用户名或密码错误,请重新登录');location.href='login.jsp'</script>");
}
//关闭连接
%>
登陆成功后:到index界面:
<%@page import="com.zking.biz.Imp_GoodsDaoBiz"%>
<%@page import="com.zking.entity.Goods"%>
<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="l" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>主界面</title>
<script type="text/javascript" src="js/jquery-3.3.1.js"></script>
<script type="text/javascript" src="js/bootstrap.js"></script>
<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">
<script type="text/javascript">
function gm(bid,uid) {
location.href="doShopCar.jsp?bid="+bid+"&uid="+uid;
}
</script>
</head>
<body>
<%
ArrayList<Goods> slist=new Imp_GoodsDaoBiz().getAll();
Object uuid=session.getAttribute("uid");
pageContext.setAttribute("slist",slist);
%>
<l:forEach items="${slist}" var="goods">
<table class="table table-hover">
<tr>
<td>商品编号</td>
<td>商品名称</td>
<td>商品价格</td>
<td>商品介绍</td>
<td>商品图片</td>
<td>操作</td>
</tr>
<tr>
<td>${ goods.gid }</td>
<td>${ goods.gname }</td>
<td>${ goood.price}</td>
<td>${ goods.ginfo }</td>
<td>
<img src="${ goods.gpic}">
</td>
<td>
<button onclick="gm(${goods.gid},${uid})" class="btn btn-success">添加到购物车</button>
</td>
</tr>
</table>
</l:forEach>
</body>
</html>
过渡一下doShopCar界面,添上所生成的订单:
<%@page import="com.zking.biz.Imp_OrderDaoBiz"%>
<%@page import="com.zking.entity.Order"%>
<%@page import="com.zking.biz.Imp_GoodsDaoBiz"%>
<%@page import="com.zking.entity.Goods"%>
<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="l" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>购物车帮助类</title>
</head>
<body>
<%
Object uuid=session.getAttribute("uid");
int uid=(Integer)(uuid);
ArrayList<Order> olist=new Imp_OrderDaoBiz().getAll(uid);
request.setAttribute("olist", olist);
request.getRequestDispatcher("ShopCar.jsp").forward(request, response);
%>
</body>
</html>
显示商品点击购买,进入购物车界面Shop:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="l"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>订单界面</title>
<script type="text/javascript" src="js/jquery-3.3.1.js"></script>
<script type="text/javascript" src="js/bootstrap.js"></script>
<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">
</head>
<body>
<l:forEach items="${olist}" var="order">
<table class="table table-hover">
<tr>
<td>订单编号</td>
<td>用户编号</td>
<td>商品编号</td>
<td>商品数量</td>
<td>商品详情</td>
<td>商品总价</td>
</tr>
<tr>
<td>${order.oid}</td>
<td>${order.uid}</td>
<td>${order.gid}</td>
<td>${order.sump}</td>
<td>${order.onumber}</td>
<td>
<img alt="" src="${order.good.pic}">
</td>
<td>${order.sump}</td>
</tr>
</table>
</l:forEach>
</body>
</html>