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