软件工程项目
写在前面:希望通过每次学习的记录能够完成这个项目!加油!
商品管理案例及其优化:
<body>
<h1>商品管理</h1>
<hr>
<a>添加</a>
<table border="1">
<tr>
<td>商品名</td><td>描述</td><td>价格</td><td>库存</td><td>操作</td>
</tr>
<%
//因为返回的对象是Object类型所以需要强制转换成list类型
List<Goods> list =(List<Goods>)request.getAttribute("list");
if(list!=null)
{
for(Goods goods:list){
%>
<tr>
<td><%=goods.getName()%></td><td><%=goods.getDes()%></td><td><%=goods.getInventory()%><td><%=goods.getPrice()%></td><td>删除、修改</td>
<tr>
<%
}
}
%>
</table>
</body>
EL表达式是为了使在JSP页面中书写代码更加简便:${ }
JSTL表达式需要和EL表达式结合起来JSTL类似一个标签库、引入JSTL后就可以使用里面的标签了
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<c:out value="${username}"></c:out>
<c:remove var="${username}"/>
<c:set var="username" value="sikiedu" scope="request"></c:set>
=> <%request.setAttribute("username", "sikiedu"); %>
<c:if test="true">true</c:if>
eg1:
<c:set var="age" value="20" scope="request"></c:set>
<c:if test="${age>=18}">
<font color="green">你已经长大了</font>
刷新后jsp页面上会显示绿色的你已经长大了
Eg2: JSTL的if-else
Eg:3Foreach表达式
<c:forEach var="i" begin="1" end="10">
<br>${i}
</c:forEach>
JSTL是没有办法取得数据的,所以需要用el表达式
<%
List<User> list = new ArrayList<User>();
User u = new User("中国","123",90,"男",false);
list.add(new User("中国","123",90,"男",false));
list.add(new User("中国","123",90,"男",false));
list.add(new User("中国","123",90,"男",false));
list.add(new User("中国","123",90,"男",false));
list.add(new User("中国","123",90,"男",false));
request.setAttribute("list", list);
%>
<c:forEach items="${list }" var="u" >
<br>${u.userName}:${u.age}
</c:forEach>
Eg:练习把最开始的代码用EL表达式+JSTL表达式表示出来:
- 查询servlet的DoGet()方法:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
List<Goods> list=new GoodsService().seletAllGoods();
request.setAttribute("list", list);
request.getRequestDispatcher("/admin/goods_list.jsp").forward(request, response);
}
得知list的属性是“list
2、引入JSTL:<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<table border="1">
<tr>
<td>商品名</td><td>描述</td><td>价格</td><td>库存</td><td>操作</td>
</tr>
<c:forEach items="${list}" var="list">
<tr>
<td>${list.name}</td><td>${list.des}</td><td>${list.price}</td><td>${list.inventory}</td><td>操作</td>
</tr>
</c:forEach>
</table>” 运行效果:
Json格式的数据
https://jeson.org/2017/04/25/%E7%AC%94%E8%AE%B0-JavaWeb(%E4%B8%80)/
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它使得人们很容易的进行阅读和编写。一般用于数据传输
JSON[1] 结构有两种结构[2]
json简单说就是javascript中的对象和数组,所以这两种结构就是对象和数组两种结构,通过这两种结构可以表示各种复杂的结构
1、对象:对象在js中表示为“{}”括起来的内容,数据结构为 {key:value,key:value,...}的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,所以很容易理解,取值方法为 对象.key 获取属性值,这个属性值的类型可以是 数字、字符串、数组、对象几种。
2、数组:数组在js中是中括号“[]”括起来的内容,数据结构为 ["java","javascript","vb",...],取值方式和所有语言中一样,使用索引获取,字段值的类型可以是 数字、字符串、数组、对象几种。
// 序列化与反序列化
Goods goods = new Goods("香蕉", "夏威夷香蕉", 100, 400);
String jsonString=JSON.toJSONString(goods);
System.out.println(jsonString);
Ajax = Asynchronous JavaScript and XML
${pageContext.request.contextPath}z指向Web的项目名!!!