前言
- 使用JSP/SERVLET技术,结合EL/JSTL表达式,完成汽车对象的增删改查操作,这里没有用到数据库,使用session存储数据
- 这里可能会有层穿越的现象,仅作为参考资料
- 此项目启动后进入add_car.jsp页面,添加汽车对象的相关属性,通过表单提交给Servlet程序,在Servlet程序中有一个存储汽车对象的对象数组,将相关数组,用session存储对象数组当做数据库,剩下的删除和修改都会在下面代码中体现,代码中包含笔记
- 不能使用eclipse中自带的浏览器测试,会出现IllegalArgumentException异常,暂不清楚原因,本人使用chrome浏览器进行测试
- 在eclipse中的Servers文件夹是Servlet程序的运行环境,删了可能导致Web工程缺少部分环境,JSP、Servlet等一系列Servlet相关代码将会报错
网页部分
- 添加汽车网页
<%@page import="com.abc.domain.Car"%>
<%@page import="java.util.*"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<% List<Car> carList = (List<Car>) request.getAttribute("carList"); %>
<div>
<form action="cs?method=add" method="post">
<label>车牌号:</label>
<input type="text" name="id" value="闽A123456"/><br>
<label>品牌:</label>
<input type="text" name="brand" value="奔驰"/><br>
<label>价格:</label>
<input type="text" name="price" value=120000 /><br>
<label>颜色:</label>
<input type="text" name="color" value="蓝色" /><br>
<input type="submit" value="提交" />
</form>
</div>
</body>
</html>
- 更新汽车网页
<%@page import="com.abc.domain.Car"%>
<%@page import="java.util.*"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<div>
<form action="cs?method=add" method="post">
<label>车牌号:</label>
<input type="text" name="id" value="<%=request.getAttribute("id") %>"/><br>
<label>品牌:</label>
<input type="text" name="brand" value="<%=request.getAttribute("brand")%>"/><br>
<label>价格:</label>
<input type="text" name="price" value=<%=request.getAttribute("price")%> /><br>
<label>颜色:</label>
<input type="text" name="color" value="<%=request.getAttribute("color")%>" /><br>
<input type="submit" value="提交" />
</form>
</div>
</body>
</html>
- 展示汽车网页
<%@ page language="java" import="java.util.*,com.abc.domain.Car" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<!DOCTYPE html>
<html>
<head>
<% ArrayList<Car> carList = (ArrayList<Car>)session.getAttribute("carList");%>
<meta charset="UTF-8">
<title>汽车管理</title>
<script>
function add(){
//添加方法做一个简单的页面跳转
open("http://localhost:8080/demoweb/add_car.jsp",'_self');
}
function update(id){
//修改方法可以传送参数,利用参数进行
open("http://localhost:8080/demoweb/cs?method=update&name="+id,'_self');
}
function del(id){
open("http://localhost:8080/demoweb/cs?method=delete&name="+id,'_self');
}
</script>
</head>
<body>
<div>
<table border="1" cellspacing = "0";>
<tr>
<th>车牌号</th>
<th>品牌</th>
<th>价格</th>
<th>颜色</th>
<th>操作</th>
</tr>
<c:forEach var="car" items="${carList}" varStatus="idx">
<tr>
<td>${car.id}</td>
<td>${car.brand}</td>
<td>${car.price}</td>
<td>${car.color}</td>
<td><button οnclick="del('${car.id}')">删除</button><button οnclick="update('${car.id}')">修改</button></td>
</tr>
</c:forEach>
</table>
<button οnclick="add()">添加</button><br>
</div>
</body>
</html>
Bean
package com.abc.domain;
public class Car {
private String brand;
private int price;
private String color;
private String id;
public Car(String brand, int price, String color, String id) {
super();
this.brand = brand;
this.price = price;
this.color = color;
this.id = id;
}
public Car() {
super();
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id