EL表达式获取作用域对象的顺序是: pageContext(当前页面)、request(请求间)、session(当前会话)、application(应用程序);
pageContext只能当前页面定义数据,当前页面使用;
request后端程序和页面有请求关系,则数据可以共享;
session是当前会话有效(同一个人使用同一个浏览器在任何页面都可以数据共享);l
商品信息的添加
1.编写前端主页信息,使添加商品时跳转到另一个页面
![](https://img-blog.csdnimg.cn/img_convert/0782e43a85776a7a19cf0a71e684580f.png)
2.在表单中填写添加的信息内容后将表单提交到服务器进行jdbc的查询代码
![](https://img-blog.csdnimg.cn/img_convert/f8af6b095cda0b55e1fa8d736d27b6a9.png)
3.进行服务器的添加操作,调用新增的jdbc操作
![](https://img-blog.csdnimg.cn/img_convert/26ef0030f67089054d3e787b2179471d.png)
规范模板截图
![](https://img-blog.csdnimg.cn/img_convert/e30351535c2f29f850248eba7c529cd7.png)
代码如下:
<%@ page import="java.util.List" %>
<%@ page import="com.wang.bean.Goods" %><%--
Created by IntelliJ IDEA.
User: 一只理智的龙
Date: 2023/2/18
Time: 17:03
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>主页</title>
</head>
<body>
<!-- 在页面导入jstl的核心 -->
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<h2>欢迎来自${user.address}的${user.username}到主页</h2>
<table>
<a href="addGoods.jsp">添加商品</a>
<thead>
<tr>
<th>商品编号</th>
<th>商品名称</th>
<th>商品价格</th>
<th>商品说明</th>
</tr>
</thead>
<tbody>
<c:forEach items="${goodsList}" var="goods">
<tr>
<td>${goods.gid}</td>
<td>${goods.gname}</td>
<td>${goods.price}</td>
<td>${goods.mark}</td>
<td>
<a href="del?gid=${goods.gid}">删除</a>
</td>
<td>
<a href="udate?gid=${goods.gid}">修改</a>
</td>
</tr>
</c:forEach>
</tbody>
<%--<%--%>
<%-- HttpSession session1 = request.getSession();--%>
<%-- List<Goods> goodsList = (List<Goods>) session1.getAttribute("goodsList");--%>
<%-- for (Goods goods : goodsList) {--%>
<%--%>--%>
<%--<tr>--%>
<%-- <td><%=goods.getGid()%>--%>
<%-- </td>--%>
<%-- <td><%=goods.getGname()%>--%>
<%-- </td>--%>
<%-- <td><%=goods.getPrice()%>--%>
<%-- </td>--%>
<%-- <td><%=goods.getMark()%>--%>
<%-- </td>--%>
<%--</tr>--%>
<%--<%--%>
<%-- }--%>
<%--%>--%>
</table>
</body>
</html>
<%--
Created by IntelliJ IDEA.
User: 一只理智的龙
Date: 2023/2/23
Time: 12:19
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>添加商品</title>
</head>
<body>
<form action="addgoods" method="post">
商品名称:<input type="text" name="gname" value=""><br/>
商品价格:<input type="number" step="0.01" name="price" value=""><br/>
商品信息:<textarea name="mark"></textarea><br/>
<input type="submit" value="添加商品">
</form>
</body>
</html>
dao代码
package com.wang.dao.impl;
import com.wang.bean.Goods;
import com.wang.bean.User;
import com.wang.util.JDBCUtil;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class Insertdao {
private Connection con = null;
private PreparedStatement ps=null;
private ResultSet rs=null;
public Boolean doInsert(User user) throws SQLException {
Boolean bool = null;
//加载驱动
con = JDBCUtil.getCon();
//创建sql语句
String sql = "insert into t_user(username,password) values(?,?)";
//获取sql语句
PreparedStatement ps = con.prepareStatement(sql);
//传参
ps.setObject(1, user.getUsername());
ps.setObject(2, user.getPassword());
int i = ps.executeUpdate();
if (i > 0) {
bool = true;
} else {
bool = false;
}
//关闭数据
JDBCUtil.close(ps,con);
return bool;
}
public Boolean addGoods(Goods goods) throws SQLException {
Boolean bool=null;
con = JDBCUtil.getCon();
//创建sql语句
String sql = "insert into t_goods(gid,gname,price,mark) values(?,?,?,?)";
//获取sql语句
ps = con.prepareStatement(sql);
//传参
ps.setObject(1, goods.getGid());
ps.setObject(2, goods.getGname());
ps.setObject(3, goods.getPrice());
ps.setObject(4, goods.getMark());
int i = ps.executeUpdate();
if (i > 0) {
bool = true;
} else {
bool = false;
}
//关闭数据
JDBCUtil.close(ps,con);
return bool;
}
}
servlet中的代码
package com.wang.servlet;
import com.wang.bean.Goods;
import com.wang.dao.impl.Insertdao;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.SQLException;
@WebServlet("/addgoods")
public class AddGoods extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
//1.编写代码的格式
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
System.out.println("hhhh");
//2.获取添加商品的信息
Goods goods=null;
goods=new Goods();
goods.setGname(req.getParameter("gname"));
goods.setPrice(Double.parseDouble(req.getParameter("price")));
goods.setMark(req.getParameter("mark"));
System.out.println(goods);
//3.请求
Boolean bool = null;
//4.调用jdbc新增数据的方法进行操作
Insertdao insertdao = new Insertdao();
try {
bool = insertdao.addGoods(goods);
} catch (Exception e) {
e.printStackTrace();
}
if (bool!=false){
req.getRequestDispatcher("GoodsSelectAll").forward(req,resp);
}else{
req.setAttribute("error","添加出现了问题");
req.getRequestDispatcher("error1.jsp").forward(req,resp);
}
}
}
二、商品的删除操作
![](https://img-blog.csdnimg.cn/img_convert/11b168266aa4de1bb58c648af2831c85.png)
package com.wang.servlet;
import com.wang.bean.Goods;
import com.wang.dao.impl.Deletedao;
import com.wang.dao.impl.Insertdao;
import com.wang.dao.impl.Selectdao;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/del")
public class DelectGoods extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//1.编写代码的格式
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
//2.获取添加商品的信息
int gid = Integer.parseInt(req.getParameter("gid"));
//3.请求
Boolean bool = null;
//4.调用jdbc新增数据的方法进行操作
Deletedao deletedao = new Deletedao();
try {
bool = deletedao.delectGoods(gid);
} catch (Exception e) {
e.printStackTrace();
}
if (bool != false) {
req.getRequestDispatcher("GoodsSelectAll").forward(req, resp);
} else {
req.setAttribute("error", "添加出现了问题");
req.getRequestDispatcher("error1.jsp").forward(req, resp);
}
}
}
package com.wang.dao.impl;
import com.wang.bean.Goods;
import com.wang.util.JDBCUtil;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class Deletedao {
private Connection con = null;
private PreparedStatement ps=null;
private ResultSet rs=null;
public Boolean delectGoods(int gid) throws SQLException {
Boolean bool=null;
con = JDBCUtil.getCon();
//创建sql语句
String sql = "delete from t_goods where gid=?";
//获取sql语句
ps = con.prepareStatement(sql);
//传参
ps.setObject(1,gid);
int i = ps.executeUpdate();
if (i > 0) {
bool = true;
} else {
bool = false;
}
//关闭数据
JDBCUtil.close(ps,con);
return bool;
}
}