两种常见表单数存储处理方法
    1表单编写相应程序代码
    JSP页面JavaBeanServlet中request getparameter()函数逐提取表单提交数编写相应JavaBeansetProperty方法数动取 JavaBean中然生成SQL语句(insertupdatedelete)执行executeupdate()函数完成数表存储
    2数表动生成JavaBean程序代码
    数库系统必须支持户够读取表结构识关键字段利面象快速开发工具PowerBuilderDelphi等行开发 java代码动生成程序该程序中读取数库表结构:字段名数类型数长度动生成JavaBean代码该代码中定义表中字段 应名变量建立变量setValuegetValue方法建立insertupdatedelete函数分处理insert updatedeleteSQL语句生成执行
    表单提交数处理页面中编写代码表单数存储JavaBean中:
    <jsp:useBean idtable classtable1_bean >
    <jsp:setProperty nametable property* >
    (注:table1_bean述动生成应某表JavaBean)
    然调table1_bean中insertupdatedelete函数完成数表存储返回执行结果:
    <boolean success tableinsert() >
    第种方法简单直观表单需编写相应数处理程序稍微点应表单数量开发工作量开发工作效率低表结构变动增加减少字段时需修改相应数处理程序
    第二种方法相第种简便数表数处理应JavaBean实现JavaBean动生成需编写表结构变动时需重新生 成新JavaBeanjava编译覆盖原java类该方法需开发JavaBean动生成程序表结构变动时JavaBean需重新 生成编译
    介绍种简便通方法实现表单数存储
    WEB应开发中表单前台浏览器端简单数校验提交台服务器服务器数作处理直接数存储数表中 种情况编写程序表单统处理数存储相应数表中该方法样求数库系统支持表结构读取关键字段识 采JSP技术编写该程序程序文件取名DbdataStorejsp
    1调格式
    网页中表单Action调方法:
    <Form NameFrm1 MethodPost ActionDBdataStorejsp tablenametable1&OperType…>
    table1数存储数库表表名OperType操作类型分三种:insertupdatedelete
    表单中<input typetext name…><textarea name…><select name…>等中name值应数表字段名相DBdataStorejsp中逐提取表单提交应字段名数值表单中未定义输入 值空值该字段作处理
    2oracle例视图定义
    1) 建立表列数类型视图
    CREATE OR REPLACE VIEW v_dbstru AS SELECT table_namecolumn_namedata_typedata_lengthdata_precisiondata_scalecolumn_id
    FROM all_tab_columns WHERE owner'user1'user1数表属
    2) 建立表关键列视图
    CREATE OR REPLACE VIEW v_pkey_column AS
    SELECT btable_namebcolumn_namebposition
    FROM all_constraints aall_cons_columns b
    WHERE aownerbowner AND aconstraint_namebconstraint_name AND aowner'user1'  AND aconstraint_type'P'
    3程序代码
    1) 程序初始化
    String tablenamerequestgetParameter(tablename)提取表名
    String OperTyperequestgetParameter(OperType)提取操作类型
    String sFieldValue存放表单提交字段数值
    String fieldnameDatatype 存放字段名字段数类型
    int iFieldvalue0
    String updateSqlwhereSql where insSql1insSql2opSqlstrSql
    ResultSet rs1nullrs2null
    insSql1insert into +tablename+ (
    insSql2values(
    2)生成sql语句关键字段部分
    生成insert语句关键字段部分:insert into table1(id values(100))
    关键字段生成updatedelete语句where部分:where id100
    操作类型update时网页form表单中关键字段数进行修改
    rs1StmtexecuteQuery(SELECT column_name FROM v_pkey_column WHERE table_name'+tablename+')
    取关键字段字段名
    while(rs1next()){
     fieldnamers1getString(column_name)
     rs2StmtexecuteQuery(SELECT data_type FROM v_dbstru WHERE  table_name'+tablename+'
    AND column_name'+fieldname+')取关键字段数类型
     if(rs2next()){
      Datatypers2getString(data_type)
      sFieldValuerequestgetParameter(fieldnametoLowerCase())
      生成insert语句关键字段部分
      if(OperTypeequals(insert)){
       insSql1+fieldname+
       if((sFieldValuenull) ){
        表单未提交关键字段数值时文数字型处理数值流水号计算
        rs2 Stmt executeQuery(SELECT max(+fieldname+)+1 FROM +tablename)
    rs2 next()iFieldvaluers2getInt(1)insSql2+IntegertoString(iFieldvalue)+
    }else if(Datatypeequals(DATE)){
        insSql2+ To_Date(' + sFieldValue + ''YYYYMMDD')
       }else if(Datatypeequals(VARCHAR2) || Datatypeequals(CHAR)){
    insSql2+' + sFieldValue+'}
       else *NUMBERFLOAT * insSql2+sFieldValue+}
       生成updatedelete语句where部分:where fieldname AND
       if(OperTypeequals(update) || OperTypeequals(delete)){
        if(Datatypeequals(DATE)){
         whereSql+fieldname+To_Date(' + sFieldValue + ''YYYYMMDD') AND
        }else if(Datatypeequals(VARCHAR2) || Datatypeequals(CHAR)){
         whereSql+fieldname+' + sFieldValue+' AND }
        else *NUMBERFLOAT * whereSql+fieldname++ sFieldValue+ AND }

      }
     }
    whereSqlwhereSqlsubstring(0whereSqllength()4)
    3)非关键字段部分sql语句生成
    update语句:update table1 set column1value1… where id100
    insert语句:insert into table1(idcolumn1…)values(100value1…)
    updateSqlupdate +tablename+ set
    strSqlSELECT column_namedata_typedata_lengthdata_precisiondata_scale FROM
    v_dbstru a +where table_name'+tablename+'
    AND acolumn_name not in (SELECT
    bcolumn_name FROM v_pkey_column b where btable_nameatable_name)
    rs1StmtexecuteQuery(strSql)取非关键字段字段名数类型
    while(rs1next()){
     fieldnamers1getString(column_name)Datatypers1getString(data_type)
       sFieldValuerequestgetParameter(fieldnametoLowerCase())
    表单未提交该字段值忽略该字段处理
     if((sFieldValuenull)){
      生成insert语句insSql1+insSql2 insert into tablename(… values(…
      if(OperTypeequals(insert)){ insSql1+fieldname+
      if(Datatypeequals(DATE)){
       insSql2+ To_Date(' + sFieldValue + ''YYYYMMDD')
      } else if(Datatypeequals(VARCHAR2) || Datatypeequals(CHAR)){
       insSql2+' + sFieldValue+'}else *NUMBERFLOAT* insSql2+ sFieldValue+}
      生成update语句updateSql+whereSql update tablename set where
    fieldname if(OperTypeequals(update)){
    if(Datatypeequals(DATE)){
    updateSql+fieldname+To_Date(' + sFieldValue + ''YYYYMMDD')
    }else if(Datatypeequals(VARCHAR2) || Datatypeequals(CHAR)){
    updateSql+fieldname+' + sFieldValue1}+'}else *NUMBERFLOAT*
    updateSql+fieldname++sFieldValue+} ))
     rs1close()
    4)生成完整sql语句执行
    if(OperTypeequals(insert))
     opSqlinsSql1substring(0insSql1length()1)+)+insSql2substring(0insSql2length()1)+)
    if(OperTypeequals(update))
     opSqlupdateSqlsubstring(0updateSqllength()1)+ +whereSqlif(OperTypeequals(delete))
     opSqldelete FROM +tablename+ +whereSql
    已生成完整sql语句opSql
    try{sqlnrowsStmtexecuteUpdate(opSql)}
    catch(SQLException e){outprintln(SQLException:
    +opSql)}
    4特点
    该方法种直接存储表单统程序具通性必表单数表独立开发相应程序开发工作量非常少调非常简便 时表结构变动时修改DBdataStorejsp程序程序改写Servelet调格式<Form NameFrm1 MethodPost ActionDBdataStoreServelettablenametable1&OperType…>
    Cookie文件创建然需读出否白费力气?接读出户硬盘Cookie
      
        ……(中间略)
       
       
       
       
        <
        Cookie cookies[]requestgetCookies()
        Cookie sCookienull
        String svaluenull
        String snamenull
        for(int i0i    {
        sCookiecookies[i]
        svaluesCookiegetValue()
        snamesCookiegetName()
        >
       


        <
        }
        >
       
    Namevalue
    ……(容)
       
       
        段JSP文件读出户硬盘效Cookie然存活期Cookie文件表格形式列出Cookie名字容
        逐行分析段代码:
        Cookie cookies[]requestgetCookies() requestgetCookies()读出户硬盘CookieCookie放cookie象数组里面
        接循环语句遍历刚建立Cookie象数组sCookiecookies[i]取出数组中Cookie象然 sCookiegetValue()sCookiegetName()两方法取Cookie名字容
        通取出Cookie名字容放字符串变量中进行种操作面例子里通循环语句遍历Cookie放张表格中进行显示
     
    写入Cookie
        实JSP操作Cookie非常简单面段JSP程序:
      
        ……(中间略)
       
       
        <
        String cookieNameSender
        Cookie cookienew Cookie(cookieName Test_Content)
        cookiesetMaxAge(10)
        responseaddCookie(cookie)
        >
        ……(容)

       
       
        样设置Cookie简单吧?
        仔细研究段代码:
        Cookie cookienew Cookie(cookieName Test_Content)
        行建立Cookie象初始化两参数第参数cookieName定义Cookie名字参数字符串定义Cookie容希网页户机器标识文件容
        接行:cookiesetMaxAge(10)调Cookie中setMaxAge方法设定Cookie户机器硬盘存活期 10秒Cookie户硬盘里面存时间限期建立Cookie象时候必须制定Cookie存活期超存活 期Cookie文件起作会户浏览器行删果希户次访问页面时候Cookie文件然效网页读 出话Cookie存活期设稍微长cookiesetMaxAge(365*24*60*60)Cookie文件 年效
     

    文档香网(httpswwwxiangdangnet)户传

    《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
    该内容是文档的文本内容,更好的格式请下载文档

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 4 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    Cookie和Session专题

    Cookie和Session专题   一、cookie机制和session机制的区别 **************************************************...

    10年前   
    7095    0

    JSP开发技术实验3简易选课系统

    课程实验报告课程名称JSP开发技术班级软件实验日期2016姓名 学号实验成绩实验名称实验3 简易选课系统实验目的及要求学习使用Myeclipse开发Web项目,综合使用JavaBean、...

    3年前   
    789    0

    麦肯锡面试指南——咨询面试系列(3):A「1」.T.Kearney案例分析-2

    Firm: A.T. KearneyCase Number:Case setup (facts offered by interviewer):q Your client is a U.S. ...

    12年前   
    465    0

    如何应付案例分析面试3

    Firm: A.T. Kearney Case Number: Case setup (facts offered by interviewer): q Your client ...

    11年前   
    13858    0

    2020-2021学年外研版英语七年级下册词汇讲义拓展学习法(第65组)

    biscuit) biscuit [英]['bɪskɪt] [美]['bɪskɪt] 饼干1.Research on techniques of production of oat bisc...

    3年前   
    525    0

    javaweb学习心得

    javaweb学习心得第一篇:javaweb学习心得学习心得在写心得之前总结下中级部分学习的内容,我们的中级部分主要学习了html,css,javacript,xml,dtd/scheam,以...

    12年前   
    575    0

    内容联网客户成功案例

    内容联网客户成功案例--宝洁 公司名称 http://www.pg.com/ 宝洁公司 (P&G) 在优质织物、家居护理、婴儿护理产品、妇女卫生用品、家用护理产品、美容、保健、食品和饮料...

    12年前   
    17711    0

    在国外的第一个圣诞节

    在国外的第一个圣诞节  到美国以前看过很多讲中国留学生在美国生活的书,其中印象最深刻,也是一般人 心目中最典型的一个场景是,一个中国女孩在圣诞夜站在无人的街头,一面流泪, 一面握着话筒给大洋彼...

    10年前   
    589    0

    基于WEB的二手书销售平台的设计

    每到新学期的开始,同学们都要开始购买新书,旧书的处理方式就有点单一了。现如今社会对于绿色文明的倡导力度十分之大,各个地方都在提倡节约用纸,提高纸张再循环利用。可能买一本新书对于学生、家长和一些读...

    3年前   
    775    0

    广东省惠东县教育教学研究室八下 Module 1 Unit 1 It smells delicious教案 (新版)外研版

    Module 1 Unit 1 It smells delicious一、教学内容:Unit 1 It smells delicious二、课型:Listening and speaking三...

    3年前   
    587    0

    公告范文:工学院通知公告系统

    公告范文:工学院通知公告系统  公告范文:工学院通知公告系统  一、需求分析:  随着工学院师生,还有教学方面的不断提高和扩大,对教学的通知也在不断的更新。工学院在学校一直充当着一个信息员的角...

    9年前   
    697    0

    计算机培训课件 信息安全

    第9章信息安全9.1信息安全概述9.1.1信息安全的基本概念1、信息安全的定义信息安全是指信息在存贮、获取、传递和处理过程中保持其完整、真实、可用和不被泄漏的特性。信息安全包括三个方面:(1)...

    4年前   
    744    0

    新停车场API接口V1.1

    接口采用 HTTP 协议,支持 GET 或 POST 请求方式(具体接口参见接口定义),请求头需要包含编码描述:

    5年前   
    1431    0

    冀教版八年级下册英语 Lesson 30 教案

    Lesson 30 A Cookie SaleLearning aims:1. Master the new words and phrases2. Revise the Simple Pas...

    1年前   
    363    0

    安全测试总结

    跨站点脚本攻击(Xss)Burpsuite探测反射型xss问题请求的值没有做处理就在响应中返回越权访问定义:不同权限账户之间的功能及数据存在越权访问。测试方法:1.抓取A用户功能链接,然后登录...

    4年前   
    426    0

    移动梦网WAP门户业务规范

     移动梦网 WAP业务规范 (V2.0) 中国移动通信集团公司 二零零三年六月 目 录 第一章 概述 2 1.1...

    15年前   
    11012    0

    冀教版八年级下册英语 Lesson 26 教案

    Lesson 26 Cookies, Please!Learning aims:1. The new words and expressions2. Some sentences about ...

    1年前   
    304    0

    高三期中英语正文

    2018-2019学年度上学期高三年级期中考试英语试卷本试卷共150分,考试时间120分钟。第一部分 听力(共两节,满分20分)第一节(共5小题;每小题1分,满分5分)听下面5段对话。每段对...

    4年前   
    841    0

    《中国网址》项目管理方案

    关于《中国网址》项目管理方案(草案) 建设目标 : 把《中国网址》建设为一个全新的的集搜索和企业公司资料库的查询平台。并且实现根据会员收费级别的区分,实现不同的优先级别的显示。从而实现...

    7年前   
    6950    0

    2017年3.15消费者权益日策划观后感

    3.15消费者权益日策划观后感  我是一个喜欢关注新闻,关注社会热点热血青年,昨晚的315晚上观后感受颇深! 详细内容请看下文3.15消费者权益日策划。  首先是苹果公司对待中国用户的所谓“歧...

    7年前   
    441    0