`

开发网页手写留痕系统(JSP篇)

阅读更多
  B/S系统的手写留痕还是有一定的应用的,如办公系统中的签字、批示等。下面介绍如何实现页面上的手写留痕。

系统中用到jstl、hsql数据库以及一点简单的java绘图函数,如果对以上基础知识有所疑问,请自行解决(如不解决,也能成功)。

  本文对于如何使用JSTL、HSQL以及jsp生成验证码等技术有一定的借鉴意义。

  我发现在小型系统中使用HSQL真是绝配,就如同asp与mdb配合一样的和谐。


  下面介绍一下手写留言系统的主要部分。完整的系统请到我的网络硬盘下载(http://wallimn.ys168.com

1.首先是一个手写信息录入的界面,很简单,使用一个小插件就搞定了。这一部分不做过多介绍。



2.数据保存


  使用上JSTL保存数据,很方便。使用一个jsp页面、一条JSTL语句就够了。当然web.xml中要配制一下
<context-param>
    <param-name>javax.servlet.jsp.jstl.sql.dataSource</param-name>
        <param-value>jdbc:hsqldb:file:d:/hsql/signdata,
      org.hsqldb.jdbcDriver,sa,</param-value>
</context-param>


保存数据的页面:
<%@ page language="java" pageEncoding="UTF-8" import="java.util.*"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core " prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql " prefix="sql" %>
<sql:update var="upres" sql="insert into SIGNTAB (usern,SIGNDATA,DT) values(?,?,NOW)">
 <sql:param>${param.usern}</sql:param>
 <sql:param>${param.signdata}</sql:param>
</sql:update>
<c:choose>
 <c:when test="${upres==1}">
  保存成功!系统正转向显示页面......
  <script type="text/javascript">
   window.location="signlist.jsp";
  </script>
 </c:when>
 <c:otherwise>
  保存失败!<a href="javascript:history.go(-1);">返回</a>
 </c:otherwise>
</c:choose> 


3.显示留言的页面

<%@ page language="java" contentType="image/jpeg" pageEncoding="UTF-8"
import="java.util.*,java.awt.image.*,java.util.*,javax.imageio.*,java.awt.*,java.awt.geom.*"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core " prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql " prefix="sql" %>
<sql:query var="results" sql="select * from SIGNTAB where ID=?">
 <sql:param>${param.id}</sql:param>
</sql:query>
<c:set value="${results.rows[0].signdata}" var="signdata" scope="page"></c:set>
<%
 String data = (String)pageContext.getAttribute("signdata");
 response.setHeader("Pragma", "No-cache");
 response.setHeader("Cache-Control", "no-cache");
 response.setDateHeader("Expires", 0);
 int width=400, height=300;
 BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
 
 Graphics g = image.getGraphics();
 Graphics2D g2 = (Graphics2D)g;
 //Pen pen = new Pen();
 //g.drawLine();
 g.setColor(Color.WHITE);
 g.fillRect(0,0,width,height);
 g.setColor(Color.BLACK);
 Line2D line = new Line2D.Double(0,0,1,1);
 
    String[] strokes = data.split(";;");
    String[] tmp = null, detail;
    int x1, x2, y1, y2;
 //Color clr = null;
    for (int i = 0; i < strokes.length; i++)
    {
        if (strokes[i] == null) continue;
        tmp = strokes[i].split(";");
        if (tmp == null || tmp.length == 0) continue;
        detail = tmp[0].split(",");
        int clr = Integer.parseInt(detail[0],16);
//        pen.Color = Color.FromArgb((clr&0xff),(clr&0xff00)>>8,(clr&0xff0000)>>16);
  int wid = Integer.parseInt(detail[1], 16);
  g2.setColor(new Color((clr&0xff),(clr&0xff00)>>8,(clr&0xff0000)>>16));
  g2.setStroke(new BasicStroke(wid));
        x1 = Integer.parseInt(detail[2], 16);
        y1 = Integer.parseInt(detail[3], 16);
        for (int j = 1; j < tmp.length; j++)
        {
            detail = tmp[j].split(",");
            x2 = Integer.parseInt(detail[0], 16);
            y2 = Integer.parseInt(detail[1], 16);
   
   line.setLine(x1,y1,x2,y2);
            g2.draw(line);
            x1 = x2; y1 = y2;
        }
    }

 g.dispose();
 ImageIO.write(image, "JPEG", response.getOutputStream());
%>


  以上只是粗略的介绍了一下,下载整个系统运行一下(http://wallimn.ys168.com
),可以很容易搞清楚。

  对于喜欢使用asp.net的朋友,我还写了一个asp.net版的,也可以从我的网络硬盘下载到。
/***********本人原创,欢迎转载,转载请保留本人信息*************/
作者:wallimn 电邮:wallimn@sohu.com 时间:2009-02-28
博客:http://wallimn.iteye.com
   http://blog.csdn.net/wallimn
网络硬盘:http://wallimn.ys168.com
/***********文章发表请与本人联系,作者保留所有权利*************/
0
0
分享到:
评论

相关推荐

    网页手写留痕插件

    网页手写留痕插件, 1.手写留痕的基本功能,包括:手写、修改笔画颜色、线宽、Undo、Redo; 2.为支持b/s系统,提供了支持留痕的上传、下载功能的接口;

    百度网页手写输入法

    在“百度网页手写输入法”中,用户可以在一个虚拟的书写面板上自由挥洒,系统会识别并转换这些手写轨迹为对应的汉字。 【多输入框】:多输入框是指在同一个网页界面上可以同时编辑和输入多个文本字段的功能。在...

    VC开发的手写识别系统

    《VC开发的手写识别系统深度解析》 在信息技术飞速发展的今天,手写识别技术作为人机交互的重要一环,已经广泛应用于智能手机、平板电脑、智能办公设备等多个领域。本文将深入探讨一款由VC(Visual C++)开发的手写...

    手写功能代码JSP——需要抄写

    在开发Web应用时,有时我们需要实现手写功能,让用户能够在网页上进行手写输入,比如签名或者绘制图形。在Java Web环境下,我们通常使用JSP(JavaServer Pages)结合Servlet来构建这种功能。这里我们将讨论如何实现...

    网页手写签名生成图片

    网页手写签名生成图片是一种常见的交互...通过以上步骤,我们可以构建一个完整的网页手写签名生成图片的系统,既满足用户在网页上方便地创建和保存个性化签名的需求,也能为各种在线服务提供安全、可靠的签名解决方案。

    全能王手写输入系统V8.0(精巧笔)-(豪彩303)手写板驱动

    手写板驱动大全之——全能王手写输入系统V8.0(又名精巧笔)-(又名豪彩303)手写板驱动 本系列手写板驱动均是本人日常工作中经常接触各种品牌的手写板积累下来的,因为深知有时候客户不小心将手写板驱动光盘弄丢,手写...

    【android开发】手写签名系统的设计与实现(完整版)

    随着移动设备的普及,人们越来越依赖移动设备,它带给人们许多的方便。其中手写签名,在一些金融行业使用较为普遍,目前手写签名系统有几款很不错,免费使用的不多。具体请参照博客:http://blog.csdn.net/acrambler

    大将军手写识别系统 V8.04.zip

    【大将军手写识别系统 V8.04】是一款专为用户提供高效、精准的手写文字识别技术的软件。它能够将用户的笔迹转化为可编辑的文本,极大地提升了输入效率,尤其适用于那些偏好手写或者在没有键盘设备的情况下需要输入...

    千彩全能王手写识别系统v7.6 官方免费版

    千彩手写识别系统v7.6是一款专为千的手写板软件准备的一款系统识别工具,能够支持winxp,vista,win7等系统,它能帮助用户解决手写板无法连接电脑的问题,有需要欢迎下载使用!千彩手写识别系统v7.6简介千彩手写识别...

    清华紫光手写识别系统之全能王V9.1手写板驱动

    【清华紫光手写识别系统之全能王V9.1手写板驱动】是一款专为清华紫光品牌的手写板设计的驱动程序,其主要功能是确保手写板硬件能够与计算机操作系统无缝配合,实现高效、精准的手写输入。这款驱动程序支持清华紫光的...

    汉王手写板web开发

    安装驱动是连接手写板到计算机的关键步骤,驱动程序能识别并控制硬件设备,使得操作系统和应用程序能够与手写板通信。在Web开发场景下,驱动安装确保了手写板的功能得以正常运行,例如识别手写文字、笔迹等。 2. **...

    汉翔手写识别系统2009版

    汉翔手写识别系统2009版是一款专为用户提供便捷手写输入功能的软件,尤其适用于那些习惯于手写输入而非键盘输入的用户。该系统集成了先进的手写识别技术,能够将用户的笔迹有效地转化为计算机可识别的文本,大大提升...

    网页手写编辑器

    网页手写编辑器是一种在网页环境下实现的手写输入工具,它允许用户通过鼠标或触摸屏在虚拟画板上模拟手写,将文字、图形或签名等以数字化的形式输入到网页中。这种编辑器通常配备丰富的颜色选择功能,使得用户可以...

    在线模仿百度网页手写输入法

    很不错的代码,在线模仿百度网页手写输入法,可以下载下来玩玩

    紫光电子帝王笔多媒体中文手写输入系统手写板驱动

    紫光电子帝王笔多媒体中文手写输入系统是一款专为用户提供便捷、高效中文输入的设备,其核心在于手写板和配套的驱动程序。手写板作为一种人机交互工具,允许用户通过手写的方式输入文字,尤其适合那些习惯于传统书写...

    美国苹果手写识别系统V9.1

    【苹果手写识别系统V9.1】是美国苹果公司推出的一款高级的手写识别软件,其主要功能在于将用户的手写输入转化为精确的文本。这款系统在当时代表着苹果公司在人机交互领域的先进技术,旨在提供更加自然、直观的输入...

    网页手写输入法代码和控件

    网页手写输入法是一种在网页上模拟真实手写体验的技术,尤其对于中文用户来说,它提供了方便快捷的输入方式,特别是在没有键盘或者不熟悉拼音输入的情况下。本资源包含从百度首页提取的网页手写输入法代码和控件,...

    大将军系列手写输入系统

    "大将军系列手写输入系统"是一款专为用户设计的手写汉字输入软件,适用于那些习惯于手写输入而非键盘输入的个人或企业。这个系统旨在提高汉字输入的效率和便捷性,尤其对于不熟悉拼音输入法或者有特殊需求的用户来说...

Global site tag (gtag.js) - Google Analytics