天天看點

作用域對象、基于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模型和分層模式完成添加、删除、修改、模糊查詢一、什麼是作用域:添加删除:修改:模糊查詢: