【JavaWeb】JSONAJAXi18n

news2025/1/18 7:43:24

文章目录

  • 一.JSON的使用
    • 1.在JavaScript中的使用
    • 2.在java中的使用
  • 二.AJAX请求
    • 1.AJAX请求
    • 2.原生AJAX请求实例
    • 3.jQuery中的AJAX请求
  • 三.i18n
    • 1.概念
    • 2.国际化三要素
    • 3.国际化资源properties测试
    • 4.实现国际化

JSON是一种轻量级数据交换格式,易于人们阅读和编写,同时也易于机器解析和生成
JSON采用完全独立于语言的文本格式
很多语言都提供了对JSON的支持(c,c++,java等),使得JSON成为理想的数据交换格式
轻量级指的是跟xml作比较
数据交换指的是客户端服务器之间业务数据传递格式

一.JSON的使用

1.在JavaScript中的使用

  • json的定义
    json是由键值对组成,并由花括号包围,每个键由引号引起来,键和值之间使用冒号进行分隔,多组键值对之间用逗号进行分隔
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">
        //json的定义
    var jsonobj = {
        "key1" : 12,
        "key2" : "abc",
        "key3" : true,
        "key4" : [11,"arr",false],
        "key5" : {
            "key5_1" : 551,
            "key5_2" : "123"
        },
        "key6" : [{
            "key6_1_1" : 666,
            "key6_1_2" : "666"
        },{
            "key6_2_1" : 111,
            "key6_2_2" : "111"
        }]
    };
    alert(typeof(jsonobj));//object json就是一个对象
    </script>
</head>
  • json的访问
    (1).json本身是一个对象
    (2).json中的key我们可以理解为是对象中的一个属性
    (3).json中的key访问就跟访问对象的属性一样 —— json对象.key
         alert(jsonobj.key1);
          for(var i = 0;i < jsonobj.key4.length;i++){
              alert(jsonobj.key4[i]);
          }
         alert(jsonobj.key5.key5_1);
        var jsonItem = jsonobj.key6[0];
        alert(jsonItem.key6_1_1);
        var jsonItem = jsonobj.key6[1];
        alert(jsonItem.key6_2_1);
  • json的两个常用方法
    json的存在有两种形式:对象(称为json对象)和字符串(称为json字符串)
    JSON.stringify() 把json对象转换成为json字符串
    JSON.parse() 把json字符串转换成为json对象
    一般我们要操作json中的数据的时候,需要json对象的格式
    一般我们要在客户端和服务器之间进行数据交换的时候,使用json字符串
 var jsonobjstring = JSON.stringify(jsonobj);
       alert(jsonobjstring);
        var jsonobj2 = JSON.parse(jsonobjstring);
        alert(jsonobj2.key1);

2.在java中的使用

  • javaBean和json的互转
 public void test1(){

        Person person = new Person(1,"北京");
        //创建Gson对象实例
        Gson gson = new Gson();
        //toJson方法可以把java对象转换成为json字符串
        String personJsonString = gson.toJson(person);

        System.out.println(personJsonString);
        //fromJson把json字符串转换成为java对象
        //第一个参数是json字符串
        //第二个参数是转换回去的java对象类型
        Person person1 = gson.fromJson(personJsonString,Person.class);

        System.out.println(person1);

    }
  • List和json的互转
public void test2(){

    List<Person> personList = new ArrayList<>();

    personList.add(new Person(1,"雪碧"));
    personList.add(new Person(2,"可乐"));

    Gson gson = new Gson();

    String personListJsonString = gson.toJson(personList);

    System.out.println(personListJsonString);

    List<Person> list = gson.fromJson(personListJsonString, new PersonListType().getType());

    System.out.println(list);

    }
  • map和json的互转
 public void test3(){

            Map<Integer,Person> personMap = new HashMap<>();

            personMap.put(1,new Person(1,"芬达"));
            personMap.put(2,new Person(2,"芬达"));

            Gson gson = new Gson();

            String personMapJsonString = gson.toJson(personMap);

            System.out.println(personMapJsonString);

           // Map<Integer,Person> personMap2  = gson.fromJson(personMapJsonString, new PersonMapType().getType());

            Map<Integer,Person> personMap2  = gson.fromJson(personMapJsonString, new TypeToken<HashMap<Integer,Person>>(){}.getType());

            System.out.println(personMap2);

            Person p = personMap2.get(1);

            System.out.println(p);

        }

二.AJAX请求

1.AJAX请求

  • AJAX(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术
  • AJAX是一种浏览器通过js异步发起请求,局部更新页面的技术
  • AJAX请求的局部更新,浏览器地址栏不会发生变化,局部更新不会舍弃原来页面的内容
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type = "text/javascript">
          //在这里使用javaScript语言发起Ajax请求,访问服务器AjaxServlet中doGet
          function ajaxRequest(){

            //1.我们首先要创建XMLHttpRequest

            var xmlhttprequest = new XMLHttpRequest();

            //2.调用open方法设置请求参数

            xmlhttprequest.open("GET","http://localhost:8080/16_json_ajax_i18n/ajaxServlet?action=doGet",true);

            //3.在send方法前绑定onreadystatechange事件,处理请求完成后的操做

              xmlhttprequest.onreadystatechange = function(){
                  //4表示:请求完成,响应就绪
                  //200表示ok
                  if(xmlhttprequest.readyState == 4 && xmlhttprequest.status == 200){

                      var jsonObj = JSON.parse(xmlhttprequest.responseText);

                      //把响应的数据显示在页面上
                    document.getElementById("div01").innerHTML = "编号:" + jsonObj.id + ",姓名:" + jsonObj.name;

                   //   document.getElementById("div01").innerHTML = xmlhttprequest.responseText;
                  }

              }

                //4.调用send方法发送请求

                xmlhttprequest.send();

        }
    </script>
</head>
<body>
<button onclick="ajaxRequest()">ajax request</button>
<div id="div01">
</div>
</body>
</html>
public class AjaxServlet extends HttpServlet {


    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        req.setCharacterEncoding("UTF-8");

        resp.setContentType("text/html;charset=UTF-8");

        System.out.println("Ajax请求过来了");

        Person person = new Person(1, "中国");

        Gson gson = new Gson();

        String personJsonString = gson.toJson(person);

        resp.getWriter().write(personJsonString);
    }
}

2.原生AJAX请求实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type = "text/javascript">
          //在这里使用javaScript语言发起Ajax请求,访问服务器AjaxServlet中doGet
          function ajaxRequest(){

            //1.我们首先要创建XMLHttpRequest

            var xmlhttprequest = new XMLHttpRequest();

            //2.调用open方法设置请求参数
              //true代表异步
              // false代表同步
            xmlhttprequest.open("GET","http://localhost:8080/16_json_ajax_i18n/ajaxServlet?action=doGet",true);

            //3.在send方法前绑定onreadystatechange事件,处理请求完成后的操做

              xmlhttprequest.onreadystatechange = function(){
                  //4表示:请求完成,响应就绪
                  //200表示ok
                  if(xmlhttprequest.readyState == 4 && xmlhttprequest.status == 200){

                      var jsonObj = JSON.parse(xmlhttprequest.responseText);

                      //把响应的数据显示在页面上
                    document.getElementById("div01").innerHTML = "编号:" + jsonObj.id + ",姓名:" + jsonObj.name;

                   //   document.getElementById("div01").innerHTML = xmlhttprequest.responseText;
                  }

              }

                //4.调用send方法发送请求

                xmlhttprequest.send();

              alert("我是最后一行代码");

        }
    </script>
</head>
<body>
<button onclick="ajaxRequest()">ajax request</button>
<a href="http://localhost:8080/16_json_ajax_i18n/ajaxServlet?action=doGet">非ajax请求</a>
<div id="div01">
</div>
<table border="1">
    <tr>
        <td>1.1</td>
        <td>1.2</td>
    </tr>
<tr>
    <td>2.1</td>
    <td>2.2</td>
</tr>
</table>
</body>
</html>

在这里插入图片描述

3.jQuery中的AJAX请求

$.ajax方法
url 表示请求的地址
type 表示请求的类型GETPOST请求
data 表示发送给服务器的数据
格式:
name=value&name=value
{key:value}
success 请求成功,响应的回调函数
dataType 响应的数据类型
常用的数据类型:
text 表示纯文本
xml 表示xml数据
json 表示json对象

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript" src="script/jquery-3.6.1.min.js"></script>
    <script type="text/javascript">
  $(function(){

      //ajax请求
      $("#ajaxBtn").click(function() {
          $.ajax({

              url:"http://localhost:8080/16_json_ajax_i18n/ajaxServlet",
              data:"action=doGet",
              type:"GET",
              success: function (data) {
                  //alert("服务器返回的数据是: " + data);

                  var jsonObj = JSON.parse(data);

                  $("#msg").html("编号: " + jsonObj.id + " , 姓名: " + jsonObj.name);
              },
              dataType: "text"

          });


      });


  });

    </script>
</head>
<body>
<button id="ajaxBtn">$.ajax请求</button>
<div id="msg">

</div>
</body>
</html>
public class AjaxServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {


           req.setCharacterEncoding("UTF-8");

            resp.setContentType("text/html;charset=UTF-8");

            System.out.println("doGet == 方法调用了 ");

             Person person = new Person(1, "中国");

             try {

                 Thread.sleep(3000);

             } catch (InterruptedException e) {
                 e.printStackTrace();

             }

             //JSON字符串格式
            Gson gson = new Gson();

             String personJsonString = gson.toJson(person);

            resp.getWriter().write(personJsonString);
    }

在这里插入图片描述

响应的数据类型也可以是json

  <script type="text/javascript" src="script/jquery-3.6.1.min.js"></script>
    <script type="text/javascript">
  $(function(){

      //ajax请求
      $("#ajaxBtn").click(function() {
          $.ajax({

              url:"http://localhost:8080/16_json_ajax_i18n/ajaxServlet",
              data:"action=doGet",
              type:"GET",
              success: function (data) {
                  //alert("服务器返回的数据是: " + data);

                 // var jsonObj = JSON.parse(data);

                  $("#msg").html("编号: " + data.id + " , 姓名: " + data.name);
              },
              dataType: "json"

          });


      });


  });

    </script>

$.get方法$.post方法

url 请求的url地址
data 发送的数据
callback 成功的回调函数
type 返回的数据类型

   //ajax—get请求
      $("#getBtn").click(function() {

          $.get("http://localhost:8080/16_json_ajax_i18n/ajaxServlet","action=doGet",function(data){

              $("#msg").html("编号: " + data.id + " , 姓名: " + data.name);

          },"json");

      });
      //ajax—post请求
      $("#postBtn").click(function() {

          $.post("http://localhost:8080/16_json_ajax_i18n/ajaxServlet","action=doGet",function(data){

              $("#msg").html("编号: " + data.id + " , 姓名: " + data.name);

          },"json");

      });
 protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("UTF-8");

        resp.setContentType("text/html;charset=UTF-8");

        System.out.println("doGet == 方法调用了 ");

        Person person = new Person(1, "中国");

        Gson gson = new Gson();

        String personJsonString = gson.toJson(person);

        resp.getWriter().write(personJsonString);

    }
 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

                req.setCharacterEncoding("UTF-8");

                resp.setContentType("text/html;charset=UTF-8");

                System.out.println("doGet == 方法调用了 ");

                Person person = new Person(1, "中国");

                Gson gson = new Gson();

               String personJsonString = gson.toJson(person);

                resp.getWriter().write(personJsonString);

    }

$.getJSON方法
url 请求的url地址
data 发送给服务器的数据
callback 成功的回调函数

 //getJSON方法
      $("#getJSONBtn").click(function() {

          $.getJSON("http://localhost:8080/16_json_ajax_i18n/ajaxServlet","action=doGet",function(data){

              $("#msg").html("编号: " + data.id + " , 姓名: " + data.name);

          });

      });
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("UTF-8");

        resp.setContentType("text/html;charset=UTF-8");

        System.out.println("doGet == 方法调用了 ");

        Person person = new Person(1, "中国");

        Gson gson = new Gson();

        String personJsonString = gson.toJson(person);

        resp.getWriter().write(personJsonString);

    }

表单序列化 serialize()
作用:可以把表单中所有表单项内容都获取到,并以name=value&name=value的形式进行拼接

 //getJSON方法
      $("#submit").click(function() {

          alert($("#form01").serialize());

          $.getJSON("http://localhost:8080/16_json_ajax_i18n/ajaxServlet","action=doGet&" + $("#form01").serialize(),function(data){

              $("#msg").html("编号: " + data.id + " , 姓名: " + data.name);

          });

      });
 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("UTF-8");

        resp.setContentType("text/html;charset=UTF-8");

        System.out.println("用户名: " + req.getParameter("username"));

        System.out.println("密 码: " + req.getParameter("password"));

        System.out.println("doGet == 方法调用了 ");

        Person person = new Person(1, "中国");

        Gson gson = new Gson();

        String personJsonString = gson.toJson(person);

        resp.getWriter().write(personJsonString);

    }

三.i18n

1.概念

Internationalization -国际化,由于字符过长,简称i18n,i首字母,n尾字母,之间有18个字母,即i18n

需求:不同国家的人访问,看到的内容不同,布局一样

苹果的策略是: 为不同的国家创建不同的网站,英文http://www.apple.com,中文http://www.apple.com/cn
如果需求不大,可采用苹果这种策略

2.国际化三要素

在这里插入图片描述

3.国际化资源properties测试

  • en_US
username=username
password=password
sex=sex
age=age
  • zh_CN
username=用户名
password=密码
sex=性别
age=年龄
  • 测试
 public void testI18n(){
        //得到需要的locale对象
        Locale locale = Locale.US;
        //根据指定的basename和locale对象,读取相应的配置文件
        ResourceBundle bundle = ResourceBundle.getBundle("i18n", locale);

        System.out.println("username: " + bundle.getString("username"));
        System.out.println("password: " + bundle.getString("password"));
        System.out.println("sex: " + bundle.getString("sex"));
        System.out.println("age: " + bundle.getString("age"));
    }
  • locale对象测试
 public void testLocale(){
        //获取系统默认的语言 国家信息
        Locale locale  = Locale.getDefault();
        System.out.println(locale);
        //获取所有的可使用的语言信息
    for(Locale locale1 : Locale.getAvailableLocales()){
        System.out.println(locale1);
    }
    //输出中文中国信息
       System.out.println(Locale.CHINA);
    //输出英文美国信息
       System.out.println(Locale.US);
    }

4.实现国际化

  • 通过请求头
<%@ page import="java.util.Locale" %>
<%@ page import="java.util.ResourceBundle" %><%--
  Created by IntelliJ IDEA.
  User: asus
  Date: 2022/12/15
  Time: 9:21
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
    <style type="text/css">
      table{margin:auto;}
      h1{text-align:center;}
    </style>
</head>
<body>
<%

    //从请求头中获取Locale信息
    Locale locale = request.getLocale();

    System.out.println(locale);

    //获取读取包(根据指定的baseName和Locale读取 语言信息)
    ResourceBundle i18n = ResourceBundle.getBundle("i18n", locale);

%>
<a href="i18n.jsp?country=cn">中文</a></br>
<a href="i18n.jsp?country=usa">英文</a>
<h1><%=i18n.getString("regist")%></h1>
<table>
<form>
        <tr>
            <td><%=i18n.getString("username")%></td>
            <td><input type="text"/></td>
        </tr>
        <tr>
            <td><%=i18n.getString("password")%></td>
            <td><input type="password"/></td>
        </tr>
        <tr>
            <td><%=i18n.getString("sex")%></td>
            <td>
                <input type="radio"/><%=i18n.getString("boy")%><input type="radio"/><%=i18n.getString("girl")%>
            </td>
        </tr>
        <tr>
            <td><%=i18n.getString("email")%></td>
            <td><input type="text"></td>
        </tr>
        <tr>
            <td colspan="2" align="center">
                <input type="reset" value=<%=i18n.getString("reset")%>/>
                <input type="submit" value=<%=i18n.getString("submit")%>/>
            </td>
        </tr>

</form>
</table>
</body>
</html>

注意:可以在浏览器,设置,语言中,设置语言,将使用的置顶即可

  • 通过语言类型选择
<%@ page import="java.util.Locale" %>
<%@ page import="java.util.ResourceBundle" %><%--
  Created by IntelliJ IDEA.
  User: asus
  Date: 2022/12/15
  Time: 9:21
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
    <style type="text/css">
      table{margin:auto;}
      h1{text-align:center;}
    </style>
</head>
<body>
<%
    
    Locale locale = null;

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

    if("cn".equals(country)){

        locale = Locale.CHINA;

    }else if("usa".equals(country)){

        locale = Locale.US;

    }else {
        //从请求头中获取Locale信息
        locale = request.getLocale();

    }

    System.out.println(locale);

    //获取读取包(根据指定的baseName和Locale读取 语言信息)
    ResourceBundle i18n = ResourceBundle.getBundle("i18n", locale);

%>
<a href="i18n.jsp?country=cn">中文</a></br>
<a href="i18n.jsp?country=usa">英文</a>
<h1><%=i18n.getString("regist")%></h1>
<table>
<form>
        <tr>
            <td><%=i18n.getString("username")%></td>
            <td><input type="text"/></td>
        </tr>
        <tr>
            <td><%=i18n.getString("password")%></td>
            <td><input type="password"/></td>
        </tr>
        <tr>
            <td><%=i18n.getString("sex")%></td>
            <td>
                <input type="radio"/><%=i18n.getString("boy")%><input type="radio"/><%=i18n.getString("girl")%>
            </td>
        </tr>
        <tr>
            <td><%=i18n.getString("email")%></td>
            <td><input type="text"></td>
        </tr>
        <tr>
            <td colspan="2" align="center">
                <input type="reset" value=<%=i18n.getString("reset")%>/>
                <input type="submit" value=<%=i18n.getString("submit")%>/>
            </td>
        </tr>

</form>
</table>
</body>
</html>

i18n中文中国properties文件

username=用户名
password=密码
sex=性别
age=年龄
regist=注册
boy=男
girl=女
email=邮箱
reset=重置
submit=提交

i18n英文美国properties文件

username=username
password=password
sex=sex
age=age
regist=regist
boy=boy
girl=girl
email=email
reset=reset
submit=submit
  • 通过JSTL标签库fmt
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>

<%--1.使用标签设置Locale信息--%>
<fmt:setLocale value="${param.locale}"/>
<%--2.使用标签设置baseName--%>
<fmt:setBundle basename="i18n"/>
<a href="i18n_fmt.jsp?locale=zh_CN">中文</a></br>
<a href="i18n_fmt.jsp?locale=en_US">英文</a>

<h1><fmt:message  key="regist"/></h1>
<table>
    <form>
        <tr>
            <td><fmt:message  key="username"/></td>
            <td><input type="text"/></td>
        </tr>
        <tr>
            <td><fmt:message  key="password"/></td>
            <td><input type="password"/></td>
        </tr>
        <tr>
            <td><fmt:message  key="sex"/></td>
            <td>
                <input type="radio"/><fmt:message  key="boy"/><input type="radio"/><fmt:message  key="girl"/>
            </td>
        </tr>
        <tr>
            <td><fmt:message  key="email"/></td>
            <td><input type="text"></td>
        </tr>
        <tr>
            <td colspan="2" align="center">
                <input type="reset" value=<fmt:message  key="reset"/>/>
                <input type="submit" value=<fmt:message  key="submit"/>/>
            </td>
        </tr>

    </form>
</table>
</body>
</html>

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/93495.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2022年网络安全比赛--压缩包文件暴力破解中职组(超详细)

2022年比赛压缩包文件暴力破解解析 一、竞赛时间 180分钟 共计3小时 二、竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 1.通过本地PC中渗透测试平台Kali使用Nmap扫描目标靶机服务版本信息,将 Telnet 版本信息字符串作为 Flag 提交; 2. 通过本地PC中渗透测试平台Kali对…

Odoo 16 企业版手册 - 采购之代发货

代发货(直运) 待发货方式是不打算保留库存的供应商可用的便捷运输方式之一。此方法将允许您将产品直接从供应商运送到客户。这对零售商更有利&#xff0c;因为交货直接从供应商到客户&#xff0c;没有必要保留仓库。直接发货方法将帮助您直接从供应商或制造商将产品运送给客户&…

设计模式概述之抽象工厂模式(三)

上次咱们说了工厂方法模式&#xff0c;不知道各位同学掌握了没有。今天咱们说说“抽象工厂模式”。 抽象工厂&#xff08;AbstractFactory&#xff09;模式的定义&#xff1a;是一种为访问类提供一个创建一组相关或相互依赖对象的接口&#xff0c;且访问类无须指定所要产品的具…

计算机网络——CSMA-CA协议

CSMA-CD协议是对碰撞的检测&#xff0c;CSMA-CA协议是对碰撞的避免 CSMA-CD和CSMA-CA应用场景不一样&#xff0c;CSMA-CA协议主要用于无线局域网&#xff0c;CSMA-CD应用与总线式以太网。 无线局域网用CSMA-CD协议无法做到360检测碰撞 隐蔽站&#xff1a;A和C都检测不到信号&am…

Oracle---视图

Oracle之视图和物化视图 文章目录Oracle之视图和物化视图视图优点创建视图带检查约束视图只读视图创建带错误的视图删除视图查询视图物化视图&#xff08;实体化视图&#xff09;区别和优点创建物化视图创建手动刷新的物化视图执行下列语句刷新创建自动刷新的物化视图创建时不生…

Java日志框架简介

一、java日志发展线路图 上面涵盖了java世界里主要的日志框架或门面 二、日志门面和框架的区别 日志框架技术 JUL、Logback、Log4j、Log4j2 用来方便有效地记录日志信息 日志门面技术 JCL、SLF4j 为什么要使用日志门面技术&#xff1a; 每一种日志框架都有自己单独的API&am…

[附源码]Python计算机毕业设计高校学生管理系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等…

自学一个月pyhon找到工作,半年成为多个平台关注破万的小作者

前言 干货来了&#xff0c;浓缩了我学习python的所有学习经历&#xff0c;从中获取到的经验分享给你&#xff0c;如果你看了没用&#xff0c;那让我打你一拳。 大学 高中的我&#xff0c;考了三次高考才勉强考上一个二本大学一本数学专业&#xff0c;你没听错&#xff0c;三…

基于C语言实现(控制台)学生成绩管理系统【100010051】

学生成绩管理系统 说明&#xff1a; 注册密码&#xff1a;2014052421程序包含中文和特殊字符&#xff0c;在 Window 下需 ASCII 编码&#xff0c;不能 UTF-8 编码。程序对三个文件要求是文本文件&#xff0c;且 studata.txt 中包含中文字符&#xff0c;在 window 下也需要 AS…

全网惟一面向软件测试人员的Python基础教程-在Python中如何优雅的切西瓜呢?

全网惟一面向软件测试人员的Python基础教程 起点&#xff1a;《python软件测试实战宝典》介绍 第一章 为什么软件测试人员要学习Python 第二章 学Python之前要搞懂的道理 第三章 你知道Python代码是怎样运行的吗&#xff1f; 第四章 Python数据类型中有那些故事呢&#xff1f;…

第03讲:Security之用户鉴权

一、创建项目 参考&#xff1a;浅试Security 二、实现用户鉴权 何为鉴权&#xff1f;说白了其实就是用户认证&#xff0c;用户输入用户名和密码&#xff0c;只有认证通过了才能使用我的系统。 在实际的项目开发中&#xff0c;账号和密码都是从数据库中查询出来的。所…

820爆炸案(模拟案件)

文章目录模拟案件背景相关密码快压word邮箱BitLocker系统证书bestcrypt涉案图片模拟案件背景 8月20日18&#xff1a;00某市汽车站发生一起爆炸案件&#xff0c;经初步侦查&#xff0c;炸弹系通过手机远程引爆&#xff0c;办案人员经过综合研判分析&#xff0c;确定了引爆炸弹的…

在Mac电脑上怎么修改移动硬盘的读写权限?怎样修改mac电脑中移动硬盘的权限

在Mac电脑上怎么修改移动硬盘的读写权限&#xff1f;你是否遇到过把外部硬盘连接到Mac电脑后&#xff0c;外部硬盘只能读取不能写入的问题&#xff1f;大部分的情况是因为硬盘格式可能是Windows系统的格式&#xff0c;导致在mac电脑上只能读取不能写入。那我们要怎么才能正常的…

腾讯T3-3级资深架构师呕心整理:10万字节springboot教程全解!

前言: 可以毫不夸张地说&#xff0c;这篇文章介绍的 SpringBoot 教程基本已经涵盖你工作中遇到的大部分常用的场景。对于每一个springboot的用法&#xff0c;文中都会都会有详细的教程解释。 本文总共从29个章节&#xff0c;248页PDF&#xff0c;阐述springboot在各种环境下的…

计算机毕设Python+Vue校园心理咨询平台(程序+LW+部署)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Servlet应用(Request+response对象)

✅作者简介&#xff1a;热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏&#xff1a;JAVA开发者…

测试架构师需要具备哪些能力?

目录 前言 为什么软件项目需要架构设计&#xff1f; 测试架构师需要解决什么问题&#xff1f; 测试架构师需要具备哪些能力&#xff1f; 测试工程师如何培养架构能力&#xff1f; 总结 重点&#xff1a;配套学习资料和视频教学 前言 相比于我们常见的研发架构师&#x…

微信机器人的构建与使用

一个不知名大学生&#xff0c;江湖人称菜狗 original author: jacky Li Email : 3435673055qq.com Time of completion&#xff1a;2022.12.15 Last edited: 2022.12.15 目录 《微信机器人》程序使用说明 微信机器人使用说明 1&#xff0e;项目说明 2. 系统环境 3.准备条…

Java+MySQL基于SSH的扶贫信息管理系统 开题 毕业设计

扶贫信息管理系统采用了B/S(浏览器/服务器)体系结构,JAVA作为开发语言,MySQL作为数据存储进行开发,Tomcat作为WEB服务器,开发平台windows,开发工具采用比elicpse更好用的myeclipse。系统角色分为用户和管理员,主要模块有&#xff1a;县管理模块、贫困户管理模块、扶贫文件管理模…

B站试用期刚过,被HR和大老板一起谈话,说我工作没任何问题,但今晚必须走人!...

最近B站的裁员消息大家关注了吗&#xff1f;一位B站的新员工哭诉&#xff1a;试用期刚过&#xff0c;就被HR和大老板一起谈话&#xff0c;说他工作态度、工作能力、工作产出都没有任何问题&#xff0c;但必须在12.16号走人&#xff01;他不接受&#xff0c;争辩了很久&#xff…