天天看点

作用域对象、基于MVC模型和分层模式完成添加、删除、修改、模糊查询一、什么是作用域:添加删除:修改:模糊查询:

一、什么是作用域:

变量可以起作用的区域

1.1pageContext

pageContext对象:它的生命周期即page域,指储存在pageContext对象的数据只在当前页面有效,当页面跳转时,则在pageContext域的数据进行销毁。

1.2request

request对象主要用于处理客户端请求,同时request对象也是作用域对象,它的作用域范围是同一个请求。request后端程序和页面有请求关系,则数据可以共享

作用域对象、基于MVC模型和分层模式完成添加、删除、修改、模糊查询一、什么是作用域:添加删除:修改:模糊查询:

requset对象的常用方法

方法 说明
void setAttribute(String name,Object value) 把name属性储存到request对象
Object getAttribute(String name) 返回name属性的值
void removeAttribute(String name) 从request对象中移除name属性
String getParameter(String name)

返回指定name的参数值

Enumeration 

getParameterNames()  以枚举类型返回所有的参数名称
String getParameterValues(String name)  以字符数组类型返回所有指定name参数值
Map getParameterMap()  以java.util.Map类型返回请求参数

1.3session

session对象用来储存有关用户会话的所有信息,它的作用域范围是同一个会话。当前会话有效(同一个人使用同一个浏览器在任何页面都可以数据共享)

session对象常用的方法:

void setAttribute(String key,object value):以键/值的方式,将一个对象的值存放到session中

session.setAttribute("name","admin");

Object getAttribute(String key):根据名称去获取session中存放对象的值

String name=(String ) session.getAttribute("name");

1.4application

application类似于系统的“全局变量”,用于实现用户之间的数据共享,它的作用域范围是在服务器一开始执行服务,到服务器关闭为止。即整个服务器有效,所有用户的请求都可以共享数据

application 对象实现了javax.servlet.ServletContext 接口

application对象的常用方法:

void setAttribute(String key,Object value): 以键/值的方式,将一个对象的值存放到application中

void getAttribute(String key)通过键的方式,把对应的值取出来 。

请求转发:会保留原来的地址不变。

作用域对象、基于MVC模型和分层模式完成添加、删除、修改、模糊查询一、什么是作用域:添加删除:修改:模糊查询:

重定向:地址栏会发生变化。

作用域对象、基于MVC模型和分层模式完成添加、删除、修改、模糊查询一、什么是作用域:添加删除:修改:模糊查询:

添加

作用域对象、基于MVC模型和分层模式完成添加、删除、修改、模糊查询一、什么是作用域:添加删除:修改:模糊查询:
作用域对象、基于MVC模型和分层模式完成添加、删除、修改、模糊查询一、什么是作用域:添加删除:修改:模糊查询:
作用域对象、基于MVC模型和分层模式完成添加、删除、修改、模糊查询一、什么是作用域:添加删除:修改:模糊查询:
作用域对象、基于MVC模型和分层模式完成添加、删除、修改、模糊查询一、什么是作用域:添加删除:修改:模糊查询:
作用域对象、基于MVC模型和分层模式完成添加、删除、修改、模糊查询一、什么是作用域:添加删除:修改:模糊查询:
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 {
    @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");//设置响应的编码

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

        GoodsDao goodsDao=new GoodsDao();
        int row=goodsDao.add(goods);

        if(row>0){
            req.getRequestDispatcher("selectAllGoods").forward(req,resp);
        }else {
            req.setAttribute("error_msg","添加商品信息失败!");
            req.getRequestDispatcher("error.jsp").forward(req,resp);
        }

    }
}
           

删除:

作用域对象、基于MVC模型和分层模式完成添加、删除、修改、模糊查询一、什么是作用域:添加删除:修改:模糊查询:
作用域对象、基于MVC模型和分层模式完成添加、删除、修改、模糊查询一、什么是作用域:添加删除:修改:模糊查询:
作用域对象、基于MVC模型和分层模式完成添加、删除、修改、模糊查询一、什么是作用域:添加删除:修改:模糊查询:
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("/del")
public class DelGoods 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");//设置响应的编码

       int gid=Integer.parseInt(req.getParameter("gid"));
       //根据id执行数据库的删除
        GoodsDao goodsDao=new GoodsDao();
        int row=goodsDao.deleteById(gid);

        if(row>0){
            //请求转发,查询所有商品信息(刷新)
            req.getRequestDispatcher("selectAllGoods").forward(req,resp);
        }else {
            req.setAttribute("error_msg","添加商品信息失败!");
            req.getRequestDispatcher("error.jsp").forward(req,resp);
        }

    }
}
           

修改:

设计修改页面:修改数据分为两部分 先查询到数据,然后修改数据,再次更新数据

作用域对象、基于MVC模型和分层模式完成添加、删除、修改、模糊查询一、什么是作用域:添加删除:修改:模糊查询:
作用域对象、基于MVC模型和分层模式完成添加、删除、修改、模糊查询一、什么是作用域:添加删除:修改:模糊查询:

  点击跳转到查询

public Goods selectById(int gid) {
        Goods goods = null;
        try {
            connection = JDBCUtil.getCon();
            String sql = "select * from t_goods where gid=?";
            pstm = connection.prepareStatement(sql);
            pstm.setObject(1, gid);
            rs = pstm.executeQuery();
            if (rs.next()) {
                //把当前数据行中的数据取出来。储存在Goods对象中
                goods = new Goods();
                goods.setGid(rs.getInt("gid"));
                goods.setGname(rs.getString("gname"));
                goods.setPrice(rs.getDouble("price"));
                goods.setMark(rs.getString("mark"));

            }


        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            JDBCUtil.close(rs, pstm, connection);
        }
        return goods;
    }
           
作用域对象、基于MVC模型和分层模式完成添加、删除、修改、模糊查询一、什么是作用域:添加删除:修改:模糊查询:
作用域对象、基于MVC模型和分层模式完成添加、删除、修改、模糊查询一、什么是作用域:添加删除:修改:模糊查询:
public int update(Goods goods) {
        try {
            connection = JDBCUtil.getCon();
            String sql = "update t_goods set gname=?,price=?,mark=? where gid=?";
            pstm = connection.prepareStatement(sql);
            pstm.setObject(1, goods.getGname());
            pstm.setObject(2, goods.getPrice());
            pstm.setObject(3, goods.getMark());
            pstm.setObject(4, goods.getGid());
            row=pstm.executeUpdate();

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            JDBCUtil.close(pstm, connection);
        }
       return row;
    }
           
作用域对象、基于MVC模型和分层模式完成添加、删除、修改、模糊查询一、什么是作用域:添加删除:修改:模糊查询:

 跳转到查询页面,重新更新数据

作用域对象、基于MVC模型和分层模式完成添加、删除、修改、模糊查询一、什么是作用域:添加删除:修改:模糊查询:

模糊查询:

主页定义表单页面,设计搜索框

作用域对象、基于MVC模型和分层模式完成添加、删除、修改、模糊查询一、什么是作用域:添加删除:修改:模糊查询:
作用域对象、基于MVC模型和分层模式完成添加、删除、修改、模糊查询一、什么是作用域:添加删除:修改:模糊查询:

 servlet代码获取关键字

public List<Goods> seach(String keyword){
        List<Goods> goodsList = new ArrayList<>();
        try {
            connection = JDBCUtil.getCon();
            String sql = "select * from t_goods where gname like concat('%',?,'%')";
            pstm = connection.prepareStatement(sql);
            pstm.setObject(1,keyword);
            rs = pstm.executeQuery();
            while (rs.next()) {
                //把当前数据行中的数据取出来,储存到Googs对象中
                Goods goods = new Goods();
                goods.setGid(rs.getInt("gid"));
                goods.setGname(rs.getString("gname"));
                goods.setPrice(rs.getDouble("price"));
                goods.setMark(rs.getString("mark"));

                //把Goods对象储存到集合中
                goodsList.add(goods);
            }

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            JDBCUtil.close(rs, pstm, connection);
        }
        return goodsList;
    }
           
作用域对象、基于MVC模型和分层模式完成添加、删除、修改、模糊查询一、什么是作用域:添加删除:修改:模糊查询:
作用域对象、基于MVC模型和分层模式完成添加、删除、修改、模糊查询一、什么是作用域:添加删除:修改:模糊查询: