当前位置: 首页 > news >正文

网站后台上传文件管理0kb网站维护中

网站后台上传文件管理0kb,网站维护中,有没有免费的网站服务器,文章写作网站一、过滤器: 按照过滤规则筛选出想要的资源。 为什么使用过滤器? 1. 很多地方都需要判断是否登录。如果我们在每个资源出进行判断,非常麻烦。我们可以使用过滤器在访问这些资源前进行判断。 (这样就不用在主界面,修改…

一、过滤器:

按照过滤规则筛选出想要的资源。 为什么使用过滤器?

1. 很多地方都需要判断是否登录。如果我们在每个资源出进行判断,非常麻烦。我们可以使用过滤器在访问这些资源前进行判断。

(这样就不用在主界面,修改,删除界面加判断语句了

  <c:if test="${sessionScope.user==null}"><c:redirect url="/login.jsp"/></c:if>--%>

2.如何定义过滤器:

创建一个类并实现Filter接口重写方法:

案例01

如果不登录无法访问其他资源

package com.zyl.Filter;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
* @className: MyFilter
* @author: Zyl
* @date: 2024/12/9
* @Version: 1.0
* @description:
*/
@WebFilter(urlPatterns = "/*")
public class MyFilter implements Filter {
    @Override
    //初始化过滤器
    public void init(FilterConfig filterConfig) throws ServletException {
//        Filter.super.init(filterConfig);
        System.out.println("过滤器的初始方法,只会调用一次");
    }

    @Override
    //过滤器过滤方法
    //Httpservlet是ServletRequest的子接口,儿子接口功能更多,强制转换
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
       // System.out.println("过滤器的过滤方法,会调用多次");
        HttpServletRequest req = (HttpServletRequest) servletRequest;
        HttpServletResponse response = (HttpServletResponse) servletResponse;
        //获取请求资源的路径
        String path = req.getServletPath();
        //打印
        System.out.println(path);
        //判断该路径是否为白名单
        if("/login.jsp".equals(path)||"/register.jsp".equals(path)||"/user".equals(path)||path.startsWith("/images")){
            //如果是,就放行
            filterChain.doFilter(servletRequest,servletResponse);
        }else{
            //不是就判断是否登录,登录就放行,否则就跳转回登录页面
            Object user = req.getSession().getAttribute("user");
            if(user!=null){
                filterChain.doFilter(servletRequest,servletResponse);
            }else{
               response.sendRedirect("/login.jsp");
            }
        }
    }

    @Override
    //销毁过滤器
    public void destroy() {
       // Filter.super.destroy();
        System.out.println("过滤器销毁时调用该方法,当服务器重启或关闭时");
    }
}

注册过滤器--类似servlet

<!--注册过滤器-->
    <filter>
        <filter-name>MyFilter</filter-name>
        <filter-class>com.zyl.Filter.MyFilter</filter-class>
    </filter>
    <!--定义资格规则-->
    <filter-mapping>
        <filter-name>MyFilter</filter-name>
        <!--/*:表示所有资源
           /views/*: 访问/views下的资源时
           *.do: 访问.do结尾的资源时
        -->
        <url-pattern>/*</url-pattern>
    </filter-mapping>

基于注解:

  

二、 ajax异步请求

1.ajax使用场景

2. 如何实现异步操作

  1. 自己通过js代码向后台发送异步请求. [非常复杂]

  2. 使用第三方封装好的js代码--【jquery axios结合vue使用更加完美】

我们现在使用jquery

jquery就是对我们js的进一步封装,使操作js更加方便的一个前端插件。

1. 第一步引入jquery的插件

jquery下载所有版本(实时更新)

  <%--引入jquery文件--%><script src="/js/jquery-3.5.1.min.js"></script>

2.点击事件

3. 服务器响应的数据类型

我们刚才服务器响应的数据类型都是文本类型。服务器响应的数据类型有三种:

  1. 文本类型。 基本数据类型的值,字符串类型的值

  2. xml格式类型. 不建议使用了。人工智能数据

<name>张三</name>
<age>18</age>
​
  1. json格式的数据。--就是这种数据格式

三、什么是json

JSON(JavaScript Object  Notation)一种简单的数据格式,比xml更轻巧。JSON
是JavaScript原生格式,这意味着在JavaScript中处理JSON数据不需要任何特殊的API或工具包。
JSON的规则很简单:对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’对”之间使用“,”(逗号)分隔。
   
   json对象:
{k1:v1,k2:v2,k3:v3....}

  json对象集合:
[
   {k:v,k:v},
   {k:v,k:v},
   {k:v,k:v}
]

规则如下:
      1)映射用冒号(“:”)表示。名称:值
      2)并列的数据之间用逗号(“,”)分隔。名称1:值1,名称2:值2
      3) 映射的集合(对象)用大括号(“{}”)表示。{名称1:值1,名称2:值2}
      4) 并列数据的集合(数组)用方括号(“[]”)表示。
        [
          {名称1:值,名称2:值2},
          {名称1:值,名称2:值2}
        ]
     5  元素值可具有的类型:string, number, object, array, true, false, null
     6. 调用json对象中数据: 对象名.key

1. 使用封装的jar完成json的转换

第三方公司就封装一个jar。该jar中提供了很多类完成java转换成json对象。

 public static void main(String[] args) {
        User user=new User("闫四安",19);
        String s = JSON.toJSONString(user);//把一个java对象转换为json对象
        System.out.println(s); //版本太高

        List<User> list=new ArrayList<>();
        list.add(new User("李佳琪",18));
        list.add(new User("戴柏辛",18));
        list.add(new User("左怀甫",18));  //[{"name":"李佳琪","age":18},{},{}]

        String s1 = JSON.toJSONString(list);
        System.out.println(s1);


    }

综合案例

Ajax请求所有用户数据,把服务器响应的数据以表格的形式展示

ajax2.jsp:

<%--
  Created by IntelliJ IDEA.
  User: ldh
  Date: 2024/9/25
  Time: 15:25
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
    <script type="text/javascript" src="/js/jquery.min.js"></script>
</head>
<%--onload:表示页面加载完毕后执行的js函数. onclick点击事件  onblur失焦事件  onload页面加载事件--%>
<body οnlοad="loadUser()">

<table border="1" cellspacing="0" cellpadding="0" width="500" align="center" >
    <tr>
        <th>编号</th>
        <th>账号</th>
        <th>密码</th>
        <th>姓名</th>
        <th>操作</th>
    </tr>
    <tbody id="userTable">

    </tbody>
</table>
</body>
<script>
    function loadUser() {
        // 使用jQuery的get方法发送GET请求到"/UserServlet",回调函数处理返回的结果
        $.get("/UserServlet", function (result) {
            // 获取页面上id为"userTable"的表格元素
            var userTable = document.getElementById("userTable");
            // 用于动态生成表格内容的字符串变量
            var str = "";
            // 遍历结果集,生成表格的每一行内容
            for (let i = 0; i < result.length; i++) {
                // 开始拼接一个表格行
                str += "<tr>";
                // 拼接用户ID单元格
                str += "<td>" + result[i].id + "</td>";
                // 拼接用户名单元格
                str += "<td>" + result[i].username + "</td>";
                // 拼接用户密码单元格
                str += "<td>" + result[i].password + "</td>";
                // 拼接用户真实姓名单元格
                str += "<td>" + result[i].realname + "</td>";
                // 拼接包含删除按钮的单元格
                str += "<td><button οnclick=''>删除</button></td>";
                // 完成一个表格行的拼接
                str += "</tr>";
            }
            // 将拼接好的字符串设置为表格的innerHTML,动态更新表格内容
            userTable.innerHTML=str;
        }, "json"); // 指定返回数据类型为json
    }
</script>
</html>

UserServlet:

  private void selectAll(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        List<User> users = userDao.selectAll();//获取数据库中所有的用户
        //把java集合对象转换为json集合对象
        String json = JSON.toJSONString(users);
        //获取输出对象
        PrintWriter out = resp.getWriter();
        out.println(json);

        //刷新输出对象
        out.flush();
        //关闭输出对象
        out.close();
    }

http://www.hrbkazy.com/news/3817.html

相关文章:

  • b2b电子商务网站的主要类型有哪些长尾关键词什么意思
  • 建美食网站有哪些原因网上销售都有哪些平台
  • 网站标题图片怎么做关键词挖掘站网
  • 网站建设中高低端区别网址查询服务中心
  • 江宁做网站电商网站建设公司
  • 网站备案怎么改东莞营销网站建设直播
  • 企业做网站需要花多少钱竞价排名适合百度吗
  • 网站建设趋势网页推广方案
  • 手机网站建设的公司排名在百度上怎么卖自己的产品
  • 网站建设实训的目的常州seo
  • 如何做网站建设业务员百度网盘网页版入口官网
  • 怎么自己做三个一网站什么是推广
  • 酒店网站策划网上全网推广
  • 汇编做网站网站优化的方法与技巧
  • 手机上怎么创建wordpress谷歌seo 外贸建站
  • 网站域名要钱吗源码交易平台
  • 做一个网站怎么做的重庆电子商务网站seo
  • wordpress新建页面显示数据网站关键词优化排名
  • 做网站的图片要多少像素国内好用的搜索引擎
  • 做一个网站加优化排名得多少钱百度账号查询
  • 东莞长安网站建设百度搜索引擎使用技巧
  • 济南集团网站建设费用安卓优化大师最新版下载
  • 怎样打开网站制作上海高端网站建设
  • 公司网站模板下载网页优化公司
  • wordpress主题手机版网站为什么要seo?
  • 使用css3动画特效做的网站seo软文推广
  • jsp网站怎么操作seo网站优化推广费用
  • 美食网站建设项目规划书成都网站建设软件
  • 重庆网站建设哪家好长尾关键词爱站
  • 丹东企业做网站微信seo什么意思