📄 delete.jsp
字号:
<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK" %><%@ page import="java.util.*"%><%@ page import="java.lang.*" %><%@ page import="javax.servlet.*" %><%@ page import="javax.servlet.jsp.*" %><%@ page import="javax.servlet.http.* "%><%@ page import="java.io.*" %><%@ page import="java.nio.*" %><% /***********//* Author : JarryLi /* Blog:http://jiarry.blogchina.com/* 为了便于理解,特留一份经详细注释的代码;/***********/request.setCharacterEncoding("GBK");response.setCharacterEncoding("GBK");response.setContentType("text/html; charset=GBK");response.setHeader("Pragma", "No-cache");response.setHeader("Cache-Control", "no-cache");response.setHeader("Cache-Control", "must-revalidate");response.setDateHeader("Expires",0);%><%@ include file="../inc/data.jsp" %><%if (lineCount(filename) <= 0){ out.print("没有数据:("); return; } String del="no",no = "",desc="";int id = 0; if(request.getParameter("del") != null) del = request.getParameter("del").trim(); if( !del.equals("yes") ){ out.print("参数不对:("); return;}Enumeration paramsNames = request.getParameterNames();//先判断传入的参数是否正确,含有yes,以及其它数字行号int valueLen=0; while( paramsNames.hasMoreElements()){ //列举所有得到的参数 String name = (String)paramsNames.nextElement(); String value = request.getParameter(name); //out.print( name +" | "+ value + "<br>" ); if( !isNum(value) && !value.equals("yes") ){out.print("参数不对:(");return;} //如果value不是数字,或者参数少于2个则退出; if( !value.equals("yes") ) valueLen++;//除del=yes外,递加行号数组长度;} Enumeration paramsNames2 = request.getParameterNames();String[] valuelist = new String[valueLen];//用来存储value值的数组,长度在上个列举中得到;int i=0;//再次列举所有参数,并且把参数赋值给valuelist数组;while( paramsNames2.hasMoreElements() ){ String name = (String)paramsNames2.nextElement(); String value = request.getParameter(name); if( !value.equals("yes") ) { valuelist[i] = value; i++;//除del=yes外,将列举的参数传入valuelist数组; }}String remainContents=""; String inLine=null;int rowCount=0; //delete the selected; try{ //声明读取文件,读取文件里行号与列举得到的行号 不相同的行; BufferedReader readfile = new BufferedReader( new FileReader( filename ) ); while ( (inLine = readfile.readLine()) != null) { rowCount ++; //out.print( isDeleteRow( valuelist , rowCount) + "<br>" ); if( !isDeleteRow( valuelist , rowCount) ){ remainContents += (inLine + "\r\n"); //如果当前行与数组里的列举得到的行号不相同,则说明是不删除的; //读取该这些行的内容,以便再写入文件中; } } }catch (IOException e){ //out.print("读取数据错误.");}//out.print(remainContents); /*-----------------------------*/ //write data in;/*-----------------------------*/ /*单行删除,只传一个no参数即可,然后读取除no行号之外的其它所有数据,再重新写入文本; if(request.getParameter("no") != null)no = request.getParameter("no").trim(); if( isNum(no) ) id = Integer.parseInt(no); if(!del.equals("yes") || no.equals("") || !isNum(no) || id<=0 ){ out.print("参数不对:("); return; }//out.print(readContenLine( filename , id ) );//out.print("<hr>");//out.print(readContentNoTheLine( filename , id ) );*/try{ //单行删除; //String checkboxlist = readContentNoTheLine( filename , id ); //多行删除; String checkboxlist = remainContents; String Writestr = GBKtoUTF(checkboxlist) ; if( writeContent( checkboxlist , filename ).equals("success") ) out.print("\"$deleteOK$\""); //output ok status //去掉指定行的数据,重新存储一便数据.输出ok }catch(Exception e) { out.print(e.getMessage()); }%>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -