过滤,Javaweb修改,模糊查询

过滤器Filter是JavaWeb开发中的一个重要组件,它在客户端请求与服务器资源之间起到拦截和处理作用。Filter可以截取并修改请求和响应信息,在请求到达Servlet或JSP之前,以及响应返回到浏览器之前进行操作。文中提供了一个示例,展示如何使用Filter检查用户是否已登录,未登录则重定向到登录页面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

filter简介

Filter中文意思为过滤器。顾名思义,过滤器可在浏览器以及目标资源之间起到一个过战的作用。例如:水净化器,可以看成是生活中的—个过滤器,他可以将污水中的杂质过滤。从而使进入的污水变成净水。

对于WEB应用来说,过滤器是一个驻留在服务器中的WEB组件,他可以截取客户端和WEB资源之间的请求和响应信息。wEB资源可能包括Servlet.JSP.HTML页面等

Filter是Tomcat容器内的过滤器,在请求到达容器是先会调用过滤器,再调用我们的ervlet或者jsp

当服务器收到特定的请求后,会先将请求交给过战器,程序员可以在过滤器中对请求信息进行读取修改等操作,然后将请求信息再发送给目标资源。目标资源作出响应后,服务器会再次将响应转交给过滤器,在过滤器中同样可以对响应信息做一些操作,然后再将响应发送给浏览器。

也就是说过滤器可以在WEB资源收到请求之前,浏览器收到响应之前,对请求和响应信息做一些相应的操作。

在一个WEB应用中可以部署多个过滤器,多个过滤器就组成了一个过滤器链,请求和响应必须在经过多个过滤器后才能到达目标;过滤器不是必须将请求传送到下一个过滤器(或WEB资源),也可以自己来处理请求,发送响应,

package com.yang.filter;


import com.yang.bean.User;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
@WebFilter("/zhuye.jsp")
public class MyFilter implements Filter {

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        System.out.println("Filter.....init");
    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        System.out.println("Filter.....执行过滤");
        HttpServletRequest request= (HttpServletRequest) servletRequest;
        HttpServletResponse response= (HttpServletResponse) servletResponse;

        HttpSession session=request.getSession();
        User user= (User) session.getAttribute("user");
        if (user!=null){
        filterChain.doFilter(servletRequest,servletResponse);
        }else{
            response.sendRedirect("login.jsp");
        }

    }

    @Override
    public void destroy() {
        System.out.println("Filter.....destroy");
    }
}

修改操作代码

<%--
  Created by IntelliJ IDEA.
  User: Dell
  Date: 2023/2/25
  Time: 10:00
  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="update" method="post">
    商品编号:<input type="text" name="gid" value="${goods.gid}"readonly="readonly" placeholder="商品编号"></br>
    商品名称:<input type="text" name="gname" value="${goods.gname}" placeholder="商品名称"></br>
    商品价格:<input type="number"  step="0.01" name="price" value="${goods.price}" placeholder="商品价格"><br>
    商品说明:<input type="text" name="mark" value="${goods.mark}" placeholder="商品说明">
    <input type="submit" value="修改">

</form>


</body>
</html>
package com.yang.servlet;

import com.yang.bean.Goods;
import com.yang.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("/findById")
public class FinfById extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request,response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        int gid=Integer.parseInt(request.getParameter("gid"));

        GoodsDao goodsDao=new GoodsDao();
        Goods goods=goodsDao.selectById(gid);
        if (goods!=null){
            request.setAttribute("goods",goods);
            request.getRequestDispatcher("showGoods.jsp").forward(request,response);

        }else{
            request.setAttribute("error_msg","修改出了异常");
            request.getRequestDispatcher("error.jsp").forward(request,response);
        }

    }
}
package com.yang.servlet;

import com.yang.bean.Goods;
import com.yang.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("/update")
public class UpdateGoods 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.setGid(Integer.parseInt(request.getParameter("gid")));
        goods.setGname(request.getParameter("gname"));
        goods.setPrice(Double.parseDouble(request.getParameter("price")));
        goods.setMark(request.getParameter("mark"));

        System.out.println(goods);
        GoodsDao goodsDao=new GoodsDao();
       int row= goodsDao.update(goods);
        if(row>0){
            request.getRequestDispatcher("selectAllGoods").forward(request,response);

        }else{
            request.setAttribute("error_msg","修改出现了异常");
            request.getRequestDispatcher("error.jsp").forward(request,response);
        }
        }




    }



结果

模糊查询操作代码

public List<Goods> seach(String keyword){
    List<Goods> goodsList=new ArrayList<>();
    try {
        Class.forName(driver);
        con= DriverManager.getConnection(url,user,password);
        String sql="select * from t_goods where gname like concat('%',?,'%')";//concat()函数表示字符串的拼接
        pstm=con.prepareStatement(sql);
        pstm.setObject(1,keyword);
        rs=pstm.executeQuery();
        while (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"));
            goodsList.add(goods);
        }
    }catch (Exception e){
        e.printStackTrace();
    }finally {
        try {
            if (rs != null) {
                rs.close();
            }
            if (pstm != null) {
                pstm.close();
            }
            if (con != null) {
                con.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return  goodsList;
    }
}

package com.yang.servlet;

import com.yang.bean.Goods;
import com.yang.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 javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.List;

@WebServlet("/seach")
public class Seach 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");

    String keyword=request.getParameter("keyword");

        GoodsDao goodsDao=new GoodsDao();
        List<Goods> goodsList= goodsDao.seach(keyword);
        System.out.println("?????????????????????");
        System.out.println(goodsList);

        HttpSession session=request.getSession();
        session.setAttribute("goodsList",goodsList);
        response.sendRedirect("zhuye.jsp");
    }


}

结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值