自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(82)
  • 资源 (27)
  • 问答 (1)
  • 收藏
  • 关注

原创 39-textarea自动截取控制输入的长度

<textarea class="sendleavemessagetextarea" rows="5" cols="100" name="lContent" onkeyup="this.value = this.value.slice(0, 80)">

2013-08-31 21:34:08 812

原创 01-验证文本框输入内容的长度-自动截取

效果演示:<textarea class="sendleavemessagetextarea" rows="5" cols="100" name="lContent" onfocus="if(this.value=='留下点什么东西吧......'){this.value='';}" onblur="if(this.value==''){this.value='留下点什么东西

2013-08-28 16:58:25 785

原创 38-设置html文档编辑范围从0,0开始

*{ margin:0; padding:0; }

2013-08-26 23:21:37 597

原创 37-iframe自适应高度

使用方法,在桌面上创建两个html文件,一个叫做test.html一个叫做1.html然后将对应的下面的代码复制进去,然后运行test.html在浏览器中这个是在IE浏览器中的效果图。如果要是在EditPlus中也可以出现效果,但是在谷歌浏览器中就不会出现这样的效果。还在研究》。。。。。。。test.html fun

2013-08-26 22:56:02 1227

原创 04-zendframework目录结构的分析

2013-08-24 21:39:23 673

原创 36-盒子模型设置的超链接->形状像个按钮

超链接背景颜色的设置 a{ /*设置背景颜色*/ BACKGROUND-COLOR: 74B500;COLOR: #ffffff; /*设置超链接的下划线样式为无*/ text-decoration:none; /*设置为圆角边框*/ border-radius: 4px; /* Old Firefox */ -moz-border-ra

2013-08-24 01:29:36 1389 1

原创 35-盒子模型

超链接背景颜色的设置 a{ /*设置背景颜色*/ BACKGROUND-COLOR: 74B500;COLOR: #ffffff; /*设置超链接的下划线样式为无*/ text-decoration:none; /*设置为圆角边框*/ border-radius: 4px; /* Old Firefox */ -moz-border-ra

2013-08-24 01:24:26 655

原创 02-项目开发中遇到的问题之网页乱码

由于自己的项目的开发的经验比较少,所以会遇到许多的困难,现在将这些困难记录下来,防止以后再犯。1.在安装zend studio  的时候,就应该将文本文件的编码(text file encoding)设置为utf-8,这样可以有效的防止乱码的产生。具体的设置方法为:window->preferences->General->workspace    text fil

2013-08-24 00:17:33 1012

原创 34-改变网页页面宽度的方法

如果在iframe中插入一个页面,但是因为这个页面的宽度实在是太宽了,所以不得不将这个页面的宽度改小,然后可以能去掉iframe下面的滚动条,为此出此下策,这样试,结果确实是有用。就是会报黄。

2013-08-24 00:05:41 977

原创 03-render/forward/redirect区别

render的跳转到控制器对应的页面。forward跳转到本项目中的其他页面或其他控制器redirect跳转到本项目中的其他页面或本网站之外的网站。

2013-08-20 01:22:43 775

原创 09-php框架编写的项目--投票系统

需求:1.用户访问votesys.com可以显示投票的项目的列表信息,可以进行投票,可以限制投票的次数。2.后台可以对投票的项目进行增加,增加的时候有验证(服务器的验证)3.后台可以添加禁用的IP,被禁用的Ip不可以进行投票。创建数据库:votedb数据库表的创建:--选项表,MyISAM和InnoDB区别是InnoDB有外键,MyISAM运行快。create t

2013-08-20 01:08:50 1278

原创 02-使用sendframework打印出数据库数据

application.ini[production]phpSettings.display_startup_errors = 0phpSettings.display_errors = 0includePaths.library = APPLICATION_PATH "/../library"bootstrap.path = APPLICATION_PATH "/Bootstrap.

2013-08-19 03:35:11 956

原创 01-zendframework框架介绍---创建一个框架项目

1.php中流行的框架?  1.zend framework(zend公司开发)  简称zf  2.thinkphp(国人开发)  3.yii(外企用的比较多)  4.cakephp  .....2.为什么需要框架?  1.起到一种规范。3.框架的好处?  1.程序更加规范化  2.程序卡发的效率提高了。  3.程序的可读性增加  4.程序的

2013-08-19 00:20:47 935

原创 10-session中一些配置问题

1.设置session的名字:打开php.ini文件,然后搜索session.name2.session.use_trans_sid=1设置session名字自动+SID3.session.save_path="c:/XXX";设置session文件的存放位置.4.session.gc_maxlifetime=1440   说明:session默认最大生命周期   se

2013-08-18 21:24:14 802

原创 09-防止用户未登录非法访问某个页面的方法

//把验证用户是否登录的代码写入function checkUserValidate() { session_start(); if (empty ( $_SESSION ['loginuser'] )) { header ( "Location:login.php?errno=1" ); }}如果用户登录成功了,就将用户的信息写入到session文件中 sessio

2013-08-18 02:13:17 3022

原创 08-session实现简易购物车3(php.ini设置透明SID)

打开php.ini文件,然后在里面搜索一个值session use_trans_sid=1;这样设置之后,就会在url路径中自动添加上去一个SID.自动添加SID的有:href    action  header

2013-08-18 01:55:08 1151

原创 07-session实现简易购物车2(获取sessionid方法SID)

MyHall.php<?phpif(isset($_GET['PHPSESSID'])){ session_id($_GET['PHPSESSID']);}//session在启动的时候会判断一下是否设置了sessionid//如果设置了,就不会再产生新的,不设置会产生。session_start();//购物大厅echo "欢迎购买";echo "天龙八部";echo "

2013-08-18 01:47:47 1592

原创 06-session实现简易购物车1

MyHall.php<?phpif(isset($_GET['PHPSESSID'])){ session_id($_GET['PHPSESSID']);}//session在启动的时候会判断一下是否设置了sessionid//如果设置了,就不会再产生新的,不设置会产生。session_start();//获取sessionid$sid=session_id();//购物大厅

2013-08-18 01:37:46 1169

原创 05-session的增删改查

session1.php<?phprequire_once("Dog.class.php");header("content-type:text/html;charset=utf-8");echo "保存session数据";//1.初始化sessionsession_start();//2.保存数据$_SESSION['name']="shunping";//session

2013-08-17 08:42:59 916

原创 04-使用cookie实现记录用户名称的需求

login.php<?phprequire_once 'common.php';?>管理员登录系统 用户id <input type="text" name="id" value="<?php echo getCookieVal ( 'id' )?>" /> 密  码 是否保存用户ID <?

2013-08-16 20:31:19 742

原创 03-使用cookie记录上次登录的时间

<?php date_default_timezone_set("PRC"); //首先看看cookie里面有没有上次登录的信息 if(!empty($_COOKIE['lastVisit'])){ echo "你上次登录的时间是".$_COOKIE['lastVisit']; //更新时间 setCookie("lastVisit",date("Y-

2013-08-16 15:27:42 1371

原创 02-cookie的增删改查

<?php header("content-type:text/html;charset=utf-8"); //演示如何更新cookie信息 setCookie("password","11111",time()+300); echo "文件更新成功!";?><?php //指定删除某一个键值对 //setCookie("name","",time()

2013-08-16 15:26:31 863

原创 01-cookie初步认识

1.什么是会话?打开浏览器,点击超链接访问了网站的很多页面。当你关闭浏览器后,一个会话结束。形象的描述就是一个人给另一个人打电话,挂掉为结束。2.会话的由来?因为比如购物车中的数据不一定要存到数据库中。3.为什么优酷可以保存观看记录(用户没有登录)?会话技术-cookie--session4.使用cookie保存记录: 

2013-08-16 13:47:08 797

原创 01-使用struts进行文件下载

Dowload.javapackage controller;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.io.UnsupportedEncodingException;import o

2013-08-15 23:36:32 716

原创 08-php雇员管理系统-分层模式实现通用分页

Admin.class.php<?php//它的一个对象实例就表示admin表中的一条记录class Admin { private $id; private $name; private $password; /** * @return the $id */ public function getId() { return $this->id; } /**

2013-08-14 22:11:47 1329

原创 07-php雇员管理系统-分层模式实现登录,分页

Admin.class.php<?php//它的一个对象实例就表示admin表中的一条记录class Admin { private $id; private $name; private $password; /** * @return the $id */ public function getId() { return $this->id; } /**

2013-08-13 13:31:12 1264 1

原创 06-php雇员管理系统-实现显示雇员信息列表分页改进(可以处理大数据100000条)

empList.php雇员信息列表<?php$conn = mysql_connect ( "localhost", "root", "root" ) or die ( mysql_error () );mysql_query ( "set names utf8" );//选择数据库mysql_select_db ( "test", $conn );$pageSize

2013-08-13 01:31:56 1646

原创 13-mysql中的命令

1.删除表:drop table 表名;2.插入记录:insert into user(id,name)values(1,'张三');3.删除记录:delete from user where id=1;4.修改记录:update user set name='李四' where id=1;5.查询记录:select * from user;6.查询表结构:desc user;

2013-08-13 00:59:09 626

原创 05-php雇员管理系统-实现显示雇员信息列表分页

empList.php雇员信息列表<?php$conn = mysql_connect ( "localhost", "root", "root" ) or die ( mysql_error () );mysql_query ( "set names utf8" );//选择数据库mysql_select_db ( "test", $conn );$pageSize

2013-08-12 17:59:30 1301

原创 04-php雇员管理系统-实现显示雇员信息列表

empList.php雇员信息列表<?php$conn = mysql_connect ( "localhost", "root", "root" ) or die ( mysql_error () );mysql_query ( "set names utf8" );//选择数据库mysql_select_db ( "test", $conn );$sql = "se

2013-08-12 17:04:39 1451

原创 03-php雇员管理系统-实现显示用户名称

loginProcess.php<?php//接受用户的数据//1.id$id = $_POST ['id'];//2.密码$password = $_POST ['password'];//得到连接$conn = mysql_connect ( "localhost", "root", "root" );if (! $conn) { die ( "连接失败" . mys

2013-08-12 16:34:21 1357

原创 02-php雇员管理系统-实现登录(连接数据库)

login.php管理员登录系统 用户id 密  码 <?php if(!empty($_GET['errno'])){ $errno=$_GET['errno']; if($errno==1){ echo "你的用户名或密码错误"; }} ?>loginProcess.php<

2013-08-12 16:15:19 1168

原创 01-php项目之雇员管理系统1-实现登录功能

login.php管理员登录系统 用户id 密  码 <?php if(!empty($_GET['errno'])){ $errno=$_GET['errno']; if($errno==1){ echo "你的用户名或密码错误"; }} ?>empManage.php(登录成功页

2013-08-12 14:14:21 1219

原创 01-网站项目开发的流程

实际的案例:

2013-08-12 11:53:00 797

原创 12-预编译执行dql语句

<?php //1.创建mysqli对象 $mysqli=new MySQLi("localhost","root","root","test"); $sql="select balance from account where id>?"; $id=2; //2.创建预编译对象 $mysqli_stmt=$mysqli->prepare($sql) or d

2013-08-11 17:23:35 752

原创 11-mysqli预编译执行dml语句

什么是预编译?例如:如果要往数据库中添加100个用户的记录,           方法如下:1.使用for循环                               2.使用批处理技术sql语句的执行的原理是:php程序将sql语句发送到数据库,然后由数据库进行编译,然后在继续操作。为了减少编译所花费的时间,就出现了预编译技术。预编译是在数据库中进行的,然后同样的

2013-08-11 16:55:05 1074

原创 10-php中的事务

事物的由来:程序在同时执行俩条sql语句的时候,例如转账,如果其中的一条语句失败了,另一条语句就不能被执行,否则会出现错误。php为了解决这个问题,就使用事务来解决。案例如下:<?php $mysqli=new MySQLi("localhost","root","root","test"); //判断 if($mysqli->conn

2013-08-10 22:39:35 1016

原创 09-批量执行dql语句

<?php header("Content-type:text/html;charset=utf-8"); //1.得到mysqli对象 $mysqli=new MySQLi("localhost","root","root","worddb"); //2.批量查询 $sqls="select * from user;"; $sqls.="select * from wo

2013-08-09 23:32:16 791

原创 08-批量执行dml语句

<?php header("Content-type:text/html;charset=utf-8"); //使用mysqli批量添加 //1.得到mysqli对象 $mysqli=new MySQLi("localhost","root","root","worddb"); //判断 if($mysqli->connect_error){ die($mysq

2013-08-09 23:09:51 981

原创 07-mysqli的增删改查

没有使用工具类的做法:<?php header("Content-type:text/html;charset=utf-8"); //面向对象风格的CRUD $mysqli=new Mysqli("localhost","root","root","worddb"); if($mysqli->connect_error){ die("连接失败".$mysqli->

2013-08-09 21:55:27 1721

新疆HTML练习题.rar

这个是在大学时候的一个,HTML练习题,名字叫做新疆行知书,这个网页的例子不错,了解css布局的技巧,懂得1-3-3的布局技巧,图片和代码都已经放到CSDN上面了,如果下载有问题的话,可以给我留言。

2019-07-29

SSI中使用Ajax进行操作的例子(prototype.js)

使用Struts2和Spring和Ibatis进行整合实现增删改查,使用prototype.js进行添加数据

2015-08-12

阿里云一键安装JavaWeb开发环境

阿里云一键安装JavaWeb开发环境

2015-06-02

hibernate多对多实例

hibernate多对多实例

2014-07-14

hibernate一对一实例

hibernate一对一实例

2014-07-14

hibernate一对多实例

hibernate一对多实例

2014-07-14

hibernate关联关系多对一实例

hibernate关联关系多对一实例

2014-07-07

HibernateUtil分装完整版HQL查询

HibernateUtil分装完整版HQL查询HibernateUtil分装完整版HQL查询

2014-07-06

hibernate入门实例封装了HibernateUtil

hibernate入门实例封装了HibernateUtil,完成数据库的添加操作,和查询操作。 Session的save方法和get方法。

2014-07-06

hibernate3.2.5

hibernate3.2.5 源代码工具包,可以进行数据库的操作。

2014-07-06

hibernate入门知识

hibernate的配置,数据库映射,ORM,对实体类进行添加操作。

2014-07-06

java聊天工具

javados聊天工具

2014-01-05

01-html+css做的旧版百度首页

html+css做的旧版的百度首页。 兼容IE浏览器,在其他的浏览器中, 如谷歌中样式会有变化。 使用方法: 下载文件解压,然后运行index.html即可。

2013-08-27

投票系统-zendframework

投票系统-zendframework

2013-08-20

struts文件的下载

struts文件的下载

2013-08-15

连接数据库

连接Mysql

2013-07-19

生成Mybatis相关代码包

生成Mybatis相关代码的工具包

2013-07-19

Junit4.4.jar

Junit4.4.jar

2013-07-12

java邮件发送系统

邮件发送系统, 可以给别人一次发100份邮件. 但是不要做坏事哦. 后果自负. 使用方法: 将项目导入Myeclipse, 然后直接修改里面的一些内容就可以了。 MainTest.java // 你的邮箱地址 mailInfo.setUserName("你的邮箱地址@qq.com"); // 您的邮箱密码 mailInfo.setPassword("您的邮箱密码."); // 你的邮箱地址 mailInfo.setFromAddress("你的邮箱地址@qq.com"); //对方邮箱地址 mailInfo.setToAddress("对方邮箱@qq.com"); 这里先试一下QQ邮箱,如果是别的邮箱的话,还要修改该文件的其他的属性。 然后修改完毕之后,将里面的mail.jar导入。 导入方法是项目名称,右键,属性--》java build pass 然后将这个jar加入就可以了。 然后就是运行该项目了。 右键运行 MainTest.java 会出现报错。 具体报错的解决方法请看:http://blog.csdn.net/u010653050/article/details/9116893 很简单的。

2013-06-19

重复提交解决实例

重复提交的分类: 1.由于网速原因而重复点击提交按钮 2.已经提交成功,然后又刷新页面重复提交 3.已经提交成功,然后点击后退,然后又重复提交。 重复提交的缺点: 1.加重了服务器的负担。 2.导致错误的操作。 实例:如果在淘宝上买一个东西,然后点击了订单提交,然后不小心重复提交了, 然后就会造成订单的错误。 本实例主要是用<s:token/>标签来实现重复提交的。 使用方法: 部署项目,浏览器中输入访问地址: http://localhost:8080/chongfutijiao/login.jsp 随便在输入框中输入文字,点击提交。 然后就会跳到提交成功页面, 如果不是重复提交,在控制台中只是输出一次,hello:XXXX

2013-06-19

java文件的上传

文件上传--单个文件的上传---多个文件的上传 使用方法: 将该项目导入Myeclipse中,部署到Tomcat 然后在浏览器中访问: 单个文件上传 http://localhost:8080/wenjianshangchuan/singleUpload.jsp 能力有限--〉这个不知道为什么只能上传英文名字的,并且是.jpg的。 好像跟拦截器有关吧。 多文件上传: http://localhost:8080/duowenjianshangchuan/multifileUpload.jsp

2013-06-18

Spring3+hibernate4+Struts2图书管理系统

主要的功能有: 用户登录 对图书的增删改查搜索分页 使用的数据库为mysql 使用方法: 1.将项目导入Myeclipse 2.修改applicationContext.xml文件中hibernate.hbm2ddl.auto的值为create而不是update 3.修改数据库的连接信息(数据库,用户名,密码) 4.部署到Tomcat服务器上面,然后运行 5.在浏览器中输入http://localhost:8080/bookShopSSH6/login.jsp 随便输入用户名和密码,这时项目会自动创建表,然后打开Mysql数据库, 插入用户名和密码,然后重新登录。 6.将hibernate.hbm2ddl.auto的值改为update,这样重新启动项目就不会重新创建表 整体的功能实现,没有表单的验证。美观程度一般。

2013-05-15

发送邮件所使用到的jar包

javaweb开发过程中发送邮件所使用到的jar包。 资源名称:mail.jar

2013-05-15

lucenejar包

lucene jar包 资源名称为:lucene.jar

2013-05-15

apache-maven-3.0.5-bin.tar.gz

apache-maven-3.0.5-bin.tar.gz

2013-05-15

Spring3+Hibernate4+Struts2 jar包 SSH框架

spring 3.2.0+hibernate 4.1.6+struts2整合需要的jar包 的目录 antlr-2.7.7.jar aopalliance-1.0.jar asm-3.3.jar asm-commons-3.3.jar aspectjweaver-1.5.3.jar bonecp-0.7.1.RELEASE.jar cglib-2.1.3.jar commons-dbcp.jar commons-fileupload-1.2.2.jar commons-io-2.0.1.jar commons-lang3-3.1.jar commons-logging-1.1.1.jar commons-pool.jar dom4j-1.6.1.jar freemarker-2.3.19.jar google-collections-1.0.jar guava-12.0.jar hibernate-commons-annotations-4.0.1.Final.jar hibernate-core-4.1.6.Final.jar hibernate-entitymanager-4.1.6.Final.jar hibernate-envers-4.1.6.Final.jar hibernate-jpa-2.0-api-1.0.1.Final.jar javassist-3.15.0-GA.jar jboss-logging-3.1.0.GA.jar jboss-transaction-api_1.1_spec-1.0.0.Final.jar mysql-connector-java-5.1.20-bin.jar ognl-3.0.5.jar ojdbc6.jar slf4j-api-1.7.2.jar spring-aop-3.2.0.RC2.jar spring-aspects-3.2.0.RC2.jar spring-beans-3.2.0.RC2.jar spring-context-3.2.0.RC2.jar spring-context-support-3.2.0.RC2.jar spring-core-3.2.0.RC2.jar spring-expression-3.2.0.RC2.jar spring-jdbc-3.2.0.RC2.jar spring-orm-3.2.0.RC2.jar spring-tx-3.2.0.RC2.jar spring-web-3.2.0.RC2.jar struts2-core-2.3.7.jar struts2-spring-plugin-2.3.4.1.jar xwork-core-2.3.7.jar 总计为43个jar包。可以实现最基本的对数据库的增删改查。 文件上传,拦截器,操作的数据库是Mysql, 如果操作的数据库是oracle或者是其他, 将mysql-connector-java-5.1.20-bin.jar 改为相应的驱动包即可。

2013-05-11

Spring3+Hibernate4+Struts2 jar包

驱动器 D 中的卷没有标签。 卷的序列号是 0004-19C1 D:\spring 3.2.0+hibernate 4.1.6+struts2整合需要的jar包 的目录 2013/05/11 15:26 <DIR> . 2013/05/11 15:26 <DIR> .. 2013/03/21 18:20 445,288 antlr-2.7.7.jar 2013/03/21 18:20 4,467 aopalliance-1.0.jar 2013/03/21 18:20 43,578 asm-3.3.jar 2013/03/21 18:20 38,275 asm-commons-3.3.jar 2013/03/21 18:20 1,887,781 aspectjweaver-1.5.3.jar 2013/03/21 18:20 115,709 bonecp-0.7.1.RELEASE.jar 2013/03/21 18:20 282,338 cglib-2.1.3.jar 2013/03/21 18:20 121,757 commons-dbcp.jar 2013/03/21 18:20 59,590 commons-fileupload-1.2.2.jar 2013/03/21 18:20 159,509 commons-io-2.0.1.jar 2013/03/21 18:20 315,805 commons-lang3-3.1.jar 2013/03/21 18:20 60,686 commons-logging-1.1.1.jar 2013/03/21 18:20 42,492 commons-pool.jar 2013/03/21 18:20 313,898 dom4j-1.6.1.jar 2013/05/11 15:26 0 filesnames.txt 2013/03/21 18:20 931,168 freemarker-2.3.19.jar 2013/03/21 18:20 639,592 google-collections-1.0.jar 2013/03/21 18:20 1,795,936 guava-12.0.jar 2013/03/21 18:20 81,271 hibernate-commons-annotations-4.0.1.Final.jar 2013/03/21 18:20 4,451,544 hibernate-core-4.1.6.Final.jar 2013/03/21 18:20 478,440 hibernate-entitymanager-4.1.6.Final.jar 2013/03/21 18:20 391,378 hibernate-envers-4.1.6.Final.jar 2013/03/21 18:20 102,661 hibernate-jpa-2.0-api-1.0.1.Final.jar 2013/03/21 18:20 648,253 javassist-3.15.0-GA.jar 2013/03/21 18:20 60,768 jboss-logging-3.1.0.GA.jar 2013/03/21 18:20 11,209 jboss-transaction-api_1.1_spec-1.0.0.Final.jar 2013/03/21 18:20 802,721 mysql-connector-java-5.1.20-bin.jar 2013/03/21 18:20 227,807 ognl-3.0.5.jar 2013/03/21 18:20 1,977,267 ojdbc6.jar 2013/03/21 18:20 26,083 slf4j-api-1.7.2.jar 2013/03/21 18:20 334,628 spring-aop-3.2.0.RC2.jar 2013/03/21 18:20 69,796 spring-aspects-3.2.0.RC2.jar 2013/03/21 18:20 605,733 spring-beans-3.2.0.RC2.jar 2013/03/21 18:20 853,183 spring-context-3.2.0.RC2.jar 2013/03/21 18:20 126,740 spring-context-support-3.2.0.RC2.jar 2013/03/21 18:20 863,315 spring-core-3.2.0.RC2.jar 2013/03/21 18:20 193,557 spring-expression-3.2.0.RC2.jar 2013/03/21 18:20 400,914 spring-jdbc-3.2.0.RC2.jar 2013/03/21 18:20 391,926 spring-orm-3.2.0.RC2.jar 2013/03/21 18:20 240,414 spring-tx-3.2.0.RC2.jar 2013/03/21 18:20 622,166 spring-web-3.2.0.RC2.jar 2013/03/24 17:46 794,039 struts2-core-2.3.7.jar 2013/03/21 18:20 21,810 struts2-spring-plugin-2.3.4.1.jar 2013/03/21 18:20 636,751 xwork-core-2.3.7.jar 44 个文件 22,672,243 字节 2 个目录 81,522,536,448 可用字节

2013-05-11

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除