用java来编写web界面

news2024/11/25 15:58:42

一、ssm框架整体目录架构

二、编写后端代码

1、编写实体层代码    实体层代码就是你的对象

entity

package com.cv.entity;

public class Apple {
    private Integer id;
    private String name;
    private Integer quantity;
    private Integer price;
    private Integer categoryId;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getQuantity() {
        return quantity;
    }

    public void setQuantity(Integer quantity) {
        this.quantity = quantity;
    }

    public Integer getPrice() {
        return price;
    }

    public void setPrice(Integer price) {
        this.price = price;
    }

    public Integer getCategoryId() {
        return categoryId;
    }

    public void setCategoryId(Integer categoryId) {
        this.categoryId = categoryId;
    }

    @Override
    public String toString() {
        return "Product{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", quantity=" + quantity +
                ", price=" + price +
                ", categoryId=" + categoryId +
                '}';
    }
}

2、编写service,服务层是你的业务代码

package com.cv.service;

import com.cv.entity.Apple;

import java.util.Map;

public interface AppleService{
    void insert(Apple apple);
    Object[] query(Map map);
    void delete(Apple apple);
    void update(Apple apple);

}

3、编写业务层的实现代码

package com.cv.service;

import com.cv.dao.AppleMapper;
import com.cv.entity.Apple;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;
import java.util.Map;

@Service
public class AppleServiceImpl implements AppleService {

    @Autowired
    AppleMapper appleMapper;

    @Override
    @Transactional
    public void insert(Apple apple) {
        appleMapper.insert(apple);
    }

    @Override
    public Object[] query(Map map) {
        Integer pageNo = 1;
        if(map != null) {
            pageNo = (Integer) map.get("pageNo");
        }
        Page page = PageHelper.startPage(pageNo, 5);
        PageHelper.orderBy("id asc");

        List<Apple> products = appleMapper.query(map);
        Object[] result = new Object[2];
        result[0] = products;
        result[1] = page.getPages();
        return result;
    }

    @Override
    public void delete(Apple apple) {
        appleMapper.delete(apple);
    }

    @Override
    public void update(Apple apple) {
        appleMapper.update(apple);
    }


}

4、dao 层  编写连写数据库层代码,对数据库进行操作

package com.cv.dao;

import com.cv.entity.Apple;

import java.util.List;
import java.util.Map;

public interface AppleMapper {
    void insert (Apple apple);
    void delete(Apple apple);
    void update(Apple apple);
    List<Apple> query(Map map);
}

5、编写数据库层配置文件AppleDao.xml,与数据库进行交互,并与dao层交互后,与实体类进行交互

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- namespace:命名空间,用于隔离sql,还有一个很重要的作用,后面会讲 -->
<mapper namespace="com.cv.dao.AppleMapper">
    <insert id="insert" parameterType="com.cv.entity.Apple">
        insert into product(`name`,`quantity`,`price`,`categoryId`) values(#{name}, #{quantity}, #{price}, #{categoryId})
    </insert>

    <select id="query" parameterType="java.util.Map" resultType="com.cv.entity.Apple">
        select * from product
        <where>
            <if test="name != null and name != ''">
                name like #{name}
            </if>
        </where>
    </select>

    <delete id="delete" parameterType="com.cv.entity.Apple">
        delete from product
        <where>
            <if test="id != null">
                id = #{id}
            </if>
            <if test="name != null and name != ''">
                and name = #{name}
            </if>
        </where>
    </delete>

    <update id="update" parameterType="com.cv.entity.Apple">
        update product set name=#{name}, quantity=#{quantity}, price=#{price}, categoryId=#{categoryId}  where id = #{id}
    </update>

</mapper>

6、指定扫描mybatis包,以及连接数据库所使用的配置文件,并创建连接池,并指出扫描的数据库接口类

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
            http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">

    <!-- 加载配置文件 -->
    <context:property-placeholder location="classpath:db.properties" />

    <!-- 创建连接池  配置连接池的属性值 -->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="${jdbc.driver}"></property>
        <property name="jdbcUrl" value="${jdbc.url}"></property>
        <property name="user" value="${jdbc.username}"></property>
        <property name="password" value="${jdbc.password}"></property>
    </bean>

    <!-- 配置SqlSessionFactory -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!-- 配置mybatis核心配置文件
        <property name="configLocation" value="classpath:SqlMapConfig.xml" />-->
        <!-- 配置数据源 -->
        <property name="dataSource" ref="dataSource" />
        <property name="mapperLocations" value="classpath*:mybatis/*.xml" />
        <property name="plugins">
            <array>
                <bean class="com.github.pagehelper.PageHelper">
                    <property name="properties">
                        <value>dialect=mysql</value>
                    </property>

                </bean>
            </array>
        </property>
    </bean>

    <!-- mapper接口的扫描器 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.cv.dao"/>
    </bean>

    <!--事务管理器-->
    <bean id="transactionManager"
          class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource" />
    </bean>

    <tx:annotation-driven />

</beans>

7、编写数据库配置文件

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/big?characterEncoding=utf-8
jdbc.username=root
jdbc.password=123456

8、编写连接池配置文件

# fatal > error > warn > info > debug
log4j.rootLogger = info,console,file


log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern = %d %-5p [%t] %-17c - %m%n

# D://logs/debug.log
log4j.appender.file = org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.DatePattern = '.'yyyy-MM-dd
log4j.appender.file.File = D://debug.log
log4j.appender.file.Encoding = UTF-8
log4j.appender.file.layout = org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern = %d %-5p [%t] %-17c - %m%n

log4j.logger.org.apache.ibatis=debug, console

9、配置空制器层配置文件,负责和前端交互,以及进行视图解析

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:p="http://www.springframework.org/schema/p"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">

    <!--springmvc注解驱动-->
    <mvc:annotation-driven />

    <context:component-scan base-package="com.cv.comtroller" />

    <!--定义视图解析器-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>

    <!-- 多部分文件上传解析器 -->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="maxUploadSize" value="104857600" />
        <property name="maxInMemorySize" value="4096" />
        <property name="defaultEncoding" value="UTF-8"></property>
    </bean>
    <mvc:default-servlet-handler/>
    <mvc:resources location="/css/" mapping="/css/**" />
    <mvc:resources location="/image/" mapping="/image/**" />
    <mvc:resources location="/plugins/" mapping="/plugins/**" />

</beans>

10、编写控制器层代码,负责和前后端交互

package com.cv.comtroller;

import com.cv.entity.Apple;
import com.cv.service.AppleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.HashMap;
import java.util.Map;
@Controller
@RequestMapping("/product")
public class AppleController {

        @Autowired
        AppleService appleService;

        @RequestMapping("/insert")
        @ResponseBody
        public void insert(Apple apple) {
            appleService.insert(apple);
        }

        @RequestMapping("/query")
        @ResponseBody
        public Object[] query(String keywords, Integer pageNo) {
            Map map = new HashMap();
            if(keywords != null) {
                map.put("name", "%" + keywords +"%");
            }
            if(pageNo != null) {
                map.put("pageNo", pageNo);
            } else {
                map.put("pageNo", 1);
            }
            return appleService.query(map);
        }

        @RequestMapping("/delete")
        @ResponseBody
        public void delete(Apple apple) {
            appleService.delete(apple);
        }

        @RequestMapping("/update")
        @ResponseBody
        public void update(Apple apple) {
            appleService.update(apple);
        }
}

三、编写前端代码,负责和后端交互

1、使用ajax去调用后端代码,并指定所使用的css代码,并用html编写相应web界面

<%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2018/8/17
  Time: 13:26
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>商品列表</title>
    <link rel="stylesheet" type="text/css" href="${request.contextPath}/css/bootstrap.css">
    <script type="text/javascript" src="${request.contextPath}/js/jquery-1.11.3.min.js"></script>
    <script type="text/javascript" src="${request.contextPath}/js/bootstrap.js"></script>
    <script type="text/javascript" src="${request.contextPath}/js/jquery.validate.js"></script>
    <script type="text/javascript" src="${request.contextPath}/js/messages_zh.js"></script>

    <script>
        $(document).ready(function() {

            var pageNo = 1; // 全局变量,当前页码
            var pageCount = 0; // 总页数
            function query(keywords) {
                $("#products").empty();
                $.ajax({
                    url: "${request.contextPath}/product/query.action",
                    type: "get",
                    data: {"pageNo":pageNo,"keywords":keywords},
                    success: function(result) {
                        var products = result[0];
                        pageCount = result[1];
                        refreshPage(); // 更新分页链接状态

                        for(var index=0;index<products.length;index++) {
                            var product = products[index];
                            $("#products").append("<tr>"+
                                "<td><input type='checkbox' name='check' value='" + product.id + "'></td>"+
                                "<td>" + product.id + "</td>" +
                                "<td><span id='label_name_" + product.id + "'>" + product.name +"</span>" + "<input type='text' style='display:none' id='name_" + product.id +"' value='" + product.name + "'></td>" +
                                "<td><span id='label_quantity_" + product.id + "'>" + product.quantity + "</span>" + "<input type='text' style='display:none' id='quantity_" + product.id +"' value='" + product.quantity + "'></td>"+
                                "<td><span id='label_price_" + product.id + "'>" + product.price  + "</span>" + "<input type='text' style='display:none' id='price_" + product.id +"' value='" + product.price + "'></td>"+
                                "<td><span id='label_categoryId_" + product.id + "'>" + product.categoryId  + "</span>" + "<input type='text' style='display:none' id='categoryId_" + product.id +"' value='" + product.categoryId + "'></td>"+
                                "<td>"+
                                "<button id='delete_" + product.id + "'><span class='text-danger glyphicon glyphicon-minus'></span></button>"+
                                "<button  id='edit_" + product.id + "'><span class='text-warning glyphicon glyphicon-pencil'></span></button>"+
                                "<button style='display:none' id='save_" + product.id + "'><span class='text-info glyphicon glyphicon-floppy-disk'></span></button>"+
                                "</td></tr>");

                            $("#delete_" + product.id).click(function() {
                                if(confirm("确定删除吗?")) {
                                    var id = $(this).attr("id");
                                    remove(id.substr(id.indexOf("_")+1));
                                }
                            });

                            $("#edit_" + product.id).click(function() {
                                var id = $(this).attr("id");
                                $("#label_name_" + id.substr(id.indexOf("_")+1)).hide();
                                $("#label_quantity_" + id.substr(id.indexOf("_")+1)).hide();
                                $("#label_price_" + id.substr(id.indexOf("_")+1)).hide();
                                $("#label_categoryId_" + id.substr(id.indexOf("_")+1)).hide();
                                $("#name_" + id.substr(id.indexOf("_")+1)).show();
                                $("#quantity_" + id.substr(id.indexOf("_")+1)).show();
                                $("#price_" + id.substr(id.indexOf("_")+1)).show();
                                $("#categoryId_" + id.substr(id.indexOf("_")+1)).show();
                                $(this).hide();
                                $("#save_" + id.substr(id.indexOf("_")+1)).show();
                            });

                            $("#save_" + product.id).click(function() {
                                var id = $(this).attr("id");
                                update(id.substr(id.indexOf("_")+1)); // 从按钮的ID值截取商品id
                                $("#label_name_" + id.substr(id.indexOf("_")+1)).show();
                                $("#label_quantity_" + id.substr(id.indexOf("_")+1)).show();
                                $("#label_price_" + id.substr(id.indexOf("_")+1)).show();
                                $("#label_categoryId_" + id.substr(id.indexOf("_")+1)).show();
                                $("#name_" + id.substr(id.indexOf("_")+1)).hide();
                                $("#quantity_" + id.substr(id.indexOf("_")+1)).hide();
                                $("#price_" + id.substr(id.indexOf("_")+1)).hide();
                                $("#categoryId_" + id.substr(id.indexOf("_")+1)).hide();
                                $(this).hide();
                                $("#edit_" + id.substr(id.indexOf("_")+1)).show();
                            });
                        }
                    }
                });
            }

            function update(id) {
                $.ajax({
                    url: "${request.contextPath}/product/update.action",
                    type: "get",
                    data: {"id":id, "name": $("#name_" + id).val(),
                        "quantity": $("#quantity_" +id).val(), "price": $("#price_" + id).val(),
                        "categoryId": $("#categoryId_" + id).val()},
                    success: function(result) {
                        alert("更新成功!");
                        query();
                    }
                });
            }

            function insert() {
                $.ajax({
                    url: "${request.contextPath}/product/insert.action",
                    type: "get",
                    data: {"name": $("#name").val(),
                        "quantity": $("#quantity").val(), "price": $("#price").val(),
                        "categoryId": $("#categoryId").val()},
                    success: function(result) {
                        alert("增加成功!");
                        query();
                    }
                });
            }

            function remove(id){
                $.ajax({
                    url: "${request.contextPath}/product/delete.action",
                    type: "get",
                    data: {"id":id},
                    success: function(result) {
                        query();
                    }
                });
            }

            /**
             * pageNo发生变化时需要更新分页链接状态
             */
            function refreshPage() {
                if(pageNo == 1) {
                    $("#first").addClass("disabled");
                    $("#pre").addClass("disabled");
                } else {
                    $("#first").removeClass("disabled");
                    $("#pre").removeClass("disabled");
                }

                if(pageNo == pageCount) {
                    $("#last").addClass("disabled");
                    $("#next").addClass("disabled");
                } else {
                    $("#last").removeClass("disabled");
                    $("#next").removeClass("disabled");
                }
            }

            query(); // 初始化时查询第一页数据

            $("#first").click(function() {
                if(pageNo > 1) {
                    pageNo = 1;
                    query();
                }
            });

            $("#pre").click(function() {
                if(pageNo > 1) {
                    pageNo = pageNo - 1;
                    query();
                }
            });

            $("#next").click(function() {
                if(pageNo < pageCount) {
                    pageNo = pageNo + 1;
                    query();
                }
            });

            $("#last").click(function() {
                if(pageNo < pageCount) {
                    pageNo = pageCount;
                    query();
                }
            });


            $("#add").click(function() {
                $("#products").append("<tr><td>&nbsp;</td><td>#</td>" +
                    "<td><input type='text' id='name'></td>" +
                    "<td><input type='text' id='quantity'></td>"+
                    "<td><input type='text' id='price'></td>"+
                    "<td><input type='text' id='categoryId'></td>"+
                    "<td>&nbsp;</td></tr>");
                $(this).hide();
                $("#save").show();
            });

            $("#save").click(function() {
                insert();
                $(this).hide();
                $("#add").show();
            });

            $("#search").click(function() {
                pageNo = 1;// 搜索后显示第一页数据
                query($("#keywords").val())
            });

            $("#delete").click(function(){
                var checks = $("[name='check']:checked");
                for(var index=0;index<checks.length;index++) {
                    var productId = $(checks[index]).val();
                    remove(productId);
                }
            });
        })
    </script>
</head>
<body>
<div class="container">
    <div class="row">
        <ul class="pagination">
            <li id="first"><a href="javascript:void(0)">第一页</a></li>
            <li id="pre"><a href="javascript:void(0)">上一页</a></li>
            <li id="next"><a href="javascript:void(0)">下一页</a></li>
            <li id="last"><a href="javascript:void(0)">最后页</a></li>
        </ul>
        <table class="table table-bordered table-striped table-hover">
            <caption>商品列表
                <div class="input-group col-md-4">
                    <input id="keywords" type="text" class="form-control">
                    <span id="search" class="input-group-addon"><span class="glyphicon glyphicon-search"></span></span>
                </div><!-- /input-group --></caption>
            <thead>
            <th><input type="checkbox" id="all" >全选</th>
            <th>ID</th>
            <th>名称</th>
            <th>数量</th>
            <th>价格</th>
            <th>类别</th>
            <th>操作<button id='add'><span class='text-info glyphicon glyphicon-plus'></span></button>
                <button id='save' style="display:none"><span class='text-info glyphicon glyphicon-floppy-disk'></span></button>
                <button id='delete'><span class='text-info glyphicon glyphicon-minus'></span></button>
            </th>
            </thead>
            <tbody id="products">

            </tbody>
        </table>
        <ul class="pagination">
            <li id="first2"><a href="javascript:void(0)">第一页</a></li>
            <li id="pre2"><a href="javascript:void(0)">上一页</a></li>
            <li id="next2"><a href="javascript:void(0)">下一页</a></li>
            <li id="last2"><a href="javascript:void(0)">最后页</a></li>
        </ul>
    </div>
</div>
</body>
</html>

2、编写前端解析器配置文案间web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                      http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1"
         metadata-complete="true">

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath*:applicationContext*.xml</param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <!-- 解决中文乱码问题 -->
    <filter>
        <filter-name>CharacterEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>utf-8</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>CharacterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <!-- 前端控制器 -->
    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springMvc.xml</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>*.action</url-pattern>
    </servlet-mapping>

    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

</web-app>

四、至此ssm框架的web界面配置完成,web界面如图所示


                

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

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

相关文章

【JavaScript】LeetCode:61-65

文章目录 61 课程表62 实现Trie&#xff08;前缀树&#xff09;63 全排列64 子集65 电话号码的字母组合 61 课程表 Map BFS拓扑排序&#xff1a;将有向无环图转为线性顺序。遍历prerequisites&#xff1a;1. 数组记录每个节点的入度&#xff0c;2. 哈希表记录依赖关系。n 6&a…

Vulnhub靶场案例渗透[7]- DC7

文章目录 1. 靶场搭建2. 信息收集2.1 确定靶机ip2.2 服务信息收集2.3 社工信息收集 3. 提权 1. 靶场搭建 靶场源地址 检验下载文件的检验码&#xff0c;对比没问题使用vmware打开 # windwos 命令 Get-FileHash <filePath> -Algorithm MD5 # linux md5sum filepath2. 信…

视频汇聚平台EasyCVR支持云端录像丨监控存储丨录像回看丨录像计划丨录像配置

EasyCVR视频汇聚融合平台&#xff0c;是TSINGSEE青犀视频垂直深耕音视频流媒体技术、AI智能技术领域的杰出成果。平台以其强大的视频处理、汇聚与融合能力&#xff0c;在构建视频监控系统中展现出了独特的优势。 EasyCVR视频汇聚平台可接入传统监控行业中高清网络摄像机的RTSP…

提升实验室效率的秘籍

有组织、高效的实验室而言&#xff0c;业务“人、机、料、法、环、测”的多维度发展至关重要&#xff0c;为了提高实验室管理效率和质量&#xff0c;许多实验室开始采用LIMS&#xff08;实验室信息管理系统&#xff09;软件来辅助管理。LIMS软件能够帮助实验室实现信息化、自动…

leetcode 3217 从链表中移除在数组中的结点

1.题目要求: 给你一个整数数组 nums 和一个链表的头节点 head。从链表中移除所有存在于 nums 中的节点后&#xff0c;返回修改后的链表的头节点。 示例 1&#xff1a; 输入&#xff1a; nums [1,2,3], head [1,2,3,4,5] 输出&#xff1a; [4,5] 解释&#xff1a; 移除数值…

Java中的枚举

1.1 认识枚举 枚举是一种特殊的类&#xff0c;它的格式是&#xff1a; public enum 枚举类名{枚举项1,枚举项2,枚举项3; } 其实枚举项就表示枚举类的对象&#xff0c;只是这些对象在定义枚举类时就预先写好了&#xff0c;以后就只能用这几个固定的对象。 定义一个枚举类&am…

使用VS2015编写C语言程序

前面我们给出了一段完整的C语言代码&#xff0c;就是在显示器上输出“C语言中文网”&#xff0c;如下所示&#xff1a; #include <stdio.h>int main(){puts("C语言中文网");return 0;}本节我们就来看看如何通过 VS2015 来运行这段代码。 1) 创建项目&#xf…

QD1-P8 HTML 格式化标签(font、pre、b、strong、i、u、del、s、sub、sup)

本节学习&#xff1a;HTML 格式化标签。 本节视频 www.bilibili.com/video/BV1n64y1U7oj?p8 ‍ 一、font 标签 用途&#xff1a;定义文本的字体大小、颜色和 face&#xff08;字体类型&#xff09;。 示例 <!DOCTYPE html> <html><head><meta cha…

Tkinter:为什么多个Frame相互覆盖?

在 Tkinter 中&#xff0c;Frame 是一个容器部件&#xff0c;用于组织和管理布局。如果多个 Frame 出现在同一个父容器中并且看起来相互覆盖&#xff0c;通常与布局管理器的使用方式或控件的创建顺序有关。 以下是几个常见的原因和解决方案&#xff0c;帮助你了解为什么多个 F…

生产报工信息化全流程大讲解

在企业的生产管理中&#xff0c;生产报工是一个关键环节&#xff0c;但传统的生产报工方式存在诸多痛点&#xff0c;制约了企业的发展。随着数字化技术的发展&#xff0c;多个平台为企业提供了有效的解决方案。基于生产报工信息化方案报告》白皮书&#xff0c;本文深入探讨生产…

三菱FX3U PLC绝对定位- DRVA指令

指令格式 相关软元件一览 功能和动作 这是采用绝对驱动的单速定位指令。采用从原点(0点)开始的距离指定方式&#xff0c; 也被称为绝对驱动方式。 1、在指令执行过程中&#xff0c;即使改变操作数的内容&#xff0c;也不反映到当前的运行中。 在下次的指令驱动时才有效…

客户服务的未来趋势:智能化与人性化的融合

在当今这个日新月异的数字时代&#xff0c;企业的竞争已不再局限于产品或服务的本身&#xff0c;而是延伸到了客户体验的每一个细微之处。数字化转型作为推动这一变革的重要力量&#xff0c;正深刻改变着客户服务的面貌&#xff0c;使之变得更加智能、便捷且充满人性化。随着人…

最长回文子串-双下标动态规划

题目来源&#xff1a;Leetcode 5.最长回文子串 DP定义&#xff1a; 容易想到&#xff0c;用一个二维数字dp[i][j]来表示s[i:j]是否是回文串&#xff0c;如s“daba”。dp[1][3]1表示"aba"为回文串&#xff1b; 递归条件 想要判断字符串"aba"是否为回文…

MySQL--事务(详解)

目录 一、前言二、本文章目标三、什么是事务&#xff1f;四、事务的ACID特性五、为什么要使用事务六、如何使用事务6.1 查看支持使用事务的引擎6.2语法6.3 开启⼀个事务&#xff0c;执行更新后回滚6.4 开启一个事务更新后提交6.5 保存点6.6 自动/手动提交事务 七、事务的隔离性…

X86、ARM架构镜像

1. 简介 ARM 镜像和 x86 镜像是为不同处理器架构设计的软件镜像。ARM&#xff08;Advanced RISC Machine&#xff09;架构和 x86 架构是两种主流的处理器指令集架构&#xff0c;它们在设计和性能特点上有所不同。以下是 ARM 镜像和 x86 镜像的一些主要区别&#xff1a; 处理器架…

LangGraph入门(一)为什么要用LangGraph

阅读langgraph文档后编写&#xff0c;原文链接 https://langchain-ai.github.io/langgraph/concepts/high_level/ agent介绍 大语音模型LLMs是非常强大的&#xff0c;特别是LLMs与外部API或者检索数据库结合时&#xff0c;将使得的大模型如虎添翼。所以&#xff0c;在调用LLM之…

xss-labs靶场第六关测试报告

目录 一、测试环境 1、系统环境 2、使用工具/软件 二、测试目的 三、操作过程 1、注入点寻找 2、使用hackbar进行payload测试 3、绕过结果 四、源代码分析 五、结论 一、测试环境 1、系统环境 渗透机&#xff1a;本机(127.0.0.1) 靶 机&#xff1a;本机(127.0.0.…

使用通义千问模拟ChatGPT-o1进行思考,并以类似于ChatGPT-o1的形式输出

prompt 你是ChatGPT O1&#xff0c;旨在通过第一性原理思维和基于证据的推理来解决用户问题。你的目标是提供清晰、循序渐进的解决方案、基础概念&#xff0c;并从头开始构建答案。 ### 指导原则&#xff1a; 以下是为大模型采用这种方法而设计的系统提示&#xff1a; 1. 理解…

LeetCode | 69.x的平方根

这道题很适合用二分来解决&#xff0c;算是二门入门的一个练手题吧思想就是首先设置两个指针&#xff0c;一个是0&#xff0c;一个是x&#xff0c;相当于在数轴上划定一个区域 [ 0 , x ]然后计算数轴中间值和我们想要找的值的大小关系&#xff0c;因为数轴是有序的&#xff0c;…

汉诺塔问题递归与非递归实现

汉诺塔问题描述 问题&#xff1a;有三根柱子&#xff08;A、B、C&#xff09;和若干个不同大小的盘子&#xff0c;最初所有盘子都在柱子 A 上&#xff0c;按大小顺序从上到下排列。目标是将所有盘子移动到柱子 C 上&#xff0c;遵循以下规则&#xff1a; 每次只能移动一个盘子…