作用域,页面的添加和删除

文章详细阐述了作用域的概念,包括JavaScript中的全局作用域、模块作用域、函数作用域以及块级作用域。同时,介绍了在JavaServlet中pageContext、request、session和application四种不同的作用域。文章通过示例展示了如何处理HTTP请求,包括添加和删除商品信息的数据库操作。
摘要由CSDN通过智能技术生成

作用域是当前的执行上下文,和表达式在其中“可见”或可被访问。如果一个变量或表达式不在当前的作用域中,那么它是不可用的。作用域也可以堆叠成层次结构,子作用域可以访问父作用域,反过来则不行。

JavaScript 的作用域分以下三种:

  • 全局作用域:脚本模式运行所有代码的默认作用域,除了函数中定义的变量之外,都是全局作用域。
  • 模块作用域:模块模式中运行代码的作用域,在语句块中声明的语句或变量只在当前语句块中起作用。
  • 函数作用域:由函数创建的作用域,创建函数后在花括号中声明的一些语句或变量只在当前函数中起作用。

此外,用 let 或 const 声明的变量属于额外的作用域:块级作用域:用一对花括号(一个代码块)创建出来的作用域

作用域对象

1)pagaContext :当前页面作用域,pageContext域指当前页面,作用范围:作用范围是整个JSP页面,是四大作用域中最小的一个

2)request : 请求作用域,request是指一次请求,即当用户访问web服务器的时候,web服务器会生成,requestresponse和对象,然后在 service法调用,完成用户的请求和对用户的响应。

3)session : 当前会话作用域,session是指一次会话,当用户首次访问服务器时,服务器会根据每一个浏览器的请求创建一个session对象,每个用户有且仅有一个session对象,相当于身份证,保存在服务器中,借助 cookie技术来传递id属性,就可以在每次访问中找到自己的 session,作用范围:作用范围是会话间

4)application :应用程序,application即是 servlet的ServeltContext。作用范围:整个Web应用。

作用:应用程序中

页面添加

   public int add(Goods goods){
        try {
            Class.forName(driver);
            con= DriverManager.getConnection(url,user,password);
            String sql="insert into t_goods(gname,price,mark)values (?,?,?)";
            pstm=con.prepareStatement(sql);
            pstm.setObject(1,goods.getGname());
            pstm.setObject(2,goods.getPrice());
            pstm.setObject(3,goods.getMark());
            row=pstm.executeUpdate();
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            try {
                if (pstm != null) {
                    pstm.close();
                }
                if (con != null) {
                    con.close();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return  row;
        }
    }
<%--
  Created by IntelliJ IDEA.
  User: 兔子
  Date: 2023/2/23
  Time: 12:08
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>商品信息添加</title>
</head>
<body>
<h2>商品信息录入</h2>
<form action="addGoods"method="post">
    商品名称:<input type="text" name="gname"value="" placeholder="商品名称"><br>
    商品价格:<input type="number" step="0.01" name="price"value="" placeholder="商品价格"><br>
    商品说明:<input type="text" name="mark"value="" placeholder="商品说明"><br>
    <input type="submit" value="提交">
</form>
</body>
</html>
package com.chen.servlet;

import com.chen.bean.Goods;
import com.chen.dao.GoodsDao;

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("/addGoods")
public class AddGoods extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");

        Goods goods=new Goods();
        goods.setGname(request.getParameter("gname"));
        goods.setPrice(Double.parseDouble(request.getParameter("price")));//获取字符串转换为double数据
        goods.setMark(request.getParameter("mark"));

        GoodsDao goodsDao=new GoodsDao();
        int row=goodsDao.add(goods);
        if (row>0){
            request.getRequestDispatcher("selectAllgoods").forward(request,response);
        }else {
            request.setAttribute("error_msg","添加商品失败");
            request.getRequestDispatcher("error.jsp").forward(request,response);
        }
    }
}

删除操作

 public int del (int gid){
        try {
            Class.forName(driver);
            con= DriverManager.getConnection(url,user,password);
            String sql="delete from t_goods where gid=?";
            pstm=con.prepareStatement(sql);
            pstm.setObject(1,gid);
            row=pstm.executeUpdate();
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            try {
                if (pstm != null) {
                    pstm.close();
                }
                if (con != null) {
                    con.close();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return  row;
        }
    }
package com.chen.servlet;

import com.chen.dao.GoodsDao;

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 DelGoods extends HttpServlet {


    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        int gid=Integer.parseInt(request.getParameter("gid"));
        GoodsDao goodsDao=new GoodsDao();
        int row=goodsDao.del(gid);
        if(row>0){
            System.out.println("成功");
            request.getRequestDispatcher("selectAllgoods").forward(request,response);
        }else {
            request.setAttribute("error_msg","删除出现问题");
            request.getRequestDispatcher("error.jsp").forward(request,response);
        }
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值