- 浏览: 5187170 次
- 性别:
- 来自: 北京
-
文章分类
最新评论
-
silence19841230:
先拿走看看
SpringBoot2.0开发WebSocket应用完整示例 -
wallimn:
masuweng 写道发下源码下载地址吧!三个相关文件打了个包 ...
SpringBoot2.0开发WebSocket应用完整示例 -
masuweng:
发下源码下载地址吧!
SpringBoot2.0开发WebSocket应用完整示例 -
masuweng:
SpringBoot2.0开发WebSocket应用完整示例 -
wallimn:
水淼火 写道你好,我使用以后,图标不显示,应该怎么引用呢,谢谢 ...
前端框架iviewui使用示例之菜单+多Tab页布局
B/S系统的手写留痕还是有一定的应用的,如办公系统中的签字、批示等。下面介绍如何实现页面上的手写留痕。
系统中用到jstl、hsql数据库以及一点简单的java绘图函数,如果对以上基础知识有所疑问,请自行解决(如不解决,也能成功)。
本文对于如何使用JSTL、HSQL以及jsp生成验证码等技术有一定的借鉴意义。
我发现在小型系统中使用HSQL真是绝配,就如同asp与mdb配合一样的和谐。
下面介绍一下手写留言系统的主要部分。完整的系统请到我的网络硬盘下载(http://wallimn.ys168.com)
1.首先是一个手写信息录入的界面,很简单,使用一个小插件就搞定了。这一部分不做过多介绍。
2.数据保存
使用上JSTL保存数据,很方便。使用一个jsp页面、一条JSTL语句就够了。当然web.xml中要配制一下
保存数据的页面:
3.显示留言的页面
以上只是粗略的介绍了一下,下载整个系统运行一下(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
/***********文章发表请与本人联系,作者保留所有权利*************/
系统中用到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
/***********文章发表请与本人联系,作者保留所有权利*************/
发表评论
-
gradle编译错误:Could not find method compile() for arguments
2020-09-19 10:50 18696编译(IDEA+Gradle)一个别人的工程,出现一个 ... -
netty心跳检查之UDP篇
2019-09-15 08:50 2518部分UDP通信场景中,需要客户端定期发送心跳信息,以获取终 ... -
解决tomcat部署两个SpringBoot应用提示InstanceAlreadyExistsException
2019-06-30 11:49 3516两个SpringBoot应用部署在一个Tomcat中,单独 ... -
Eclipse配置MyBatis代码自动化功能
2019-06-29 10:16 18521.安装插件 Eclipse中,Help->Ecli ... -
vue.js中使用qrcode生成二维码
2019-05-20 00:00 7706一、安装包 npm install qrcodejs2 --s ... -
MySQL插入数据报错: Incorrect string value: '\xFD\xDE'
2019-03-31 23:19 1288我MySQL数据库用的uft-8字符集,插入数据一直很正常 ... -
vue自定义组件并双向绑定属性
2019-03-08 22:46 3277做了两个子组件,原理基本一样,一个是使用原生的select ... -
vue-router简单示例
2019-03-05 00:32 1192写个基本完整、稍有借鉴意义的示例,防止自己忘记。 &l ... -
“联通充值系统繁忙”轻松应对
2019-02-06 11:03 4017大过年的,联通充个值一直报“充值系统繁忙”。昨天晚上试了几 ... -
electron.js数据库应用---导航菜单(element-ui+mysql)
2019-02-05 21:33 2418一、环境搭建 略, ... -
electron.js数据库应用---入门(mysql+element-ui)
2019-01-27 23:19 7577我的机器:Windows10,64 ... -
SpringMVC 在controller层中注入成员变量request,是否线程安全
2018-12-17 21:17 2799@RestController public class ... -
VueJS 组件参数名命名与组件属性转化
2018-12-03 00:00 2104转自:https://www.cnblogs.com/meiy ... -
vue-resource拦截器实现token发送及检验自动化
2018-11-16 22:38 3093用了很长时间vue-resource,最近思考$http发 ... -
element-ui试用手记
2018-10-29 20:25 1783element-ui、iviewui都以vue.js为基础 ... -
iviewui中表格控件中render的使用示例
2018-07-07 16:46 9808示例了如何在表格中显示按钮,如何将代码转化为文字。 i ... -
Tomcat错误“Alias name tomcat does not identify a key entry”解决
2018-07-05 21:39 6695申请到了阿里云的证书后,下载、按照说明生成jks格式证书、 ... -
阿里云免费证书“fileauth.txt内容配置错误”解决
2018-07-05 20:43 5363最近研究微信小程序开发,上阿里云申请了个证书,使用文件验证 ... -
springboot2.0跨域配置
2018-07-04 22:11 5305springboot2.0跨域配置: 一、代码 ... -
微信小程序使用code换openid的方法(JAVA、SpringBoot)
2018-07-01 21:52 10465微信小程序序的代码中提示,使用code换取openid,但 ...
相关推荐
网页手写留痕插件, 1.手写留痕的基本功能,包括:手写、修改笔画颜色、线宽、Undo、Redo; 2.为支持b/s系统,提供了支持留痕的上传、下载功能的接口;
在“百度网页手写输入法”中,用户可以在一个虚拟的书写面板上自由挥洒,系统会识别并转换这些手写轨迹为对应的汉字。 【多输入框】:多输入框是指在同一个网页界面上可以同时编辑和输入多个文本字段的功能。在...
《VC开发的手写识别系统深度解析》 在信息技术飞速发展的今天,手写识别技术作为人机交互的重要一环,已经广泛应用于智能手机、平板电脑、智能办公设备等多个领域。本文将深入探讨一款由VC(Visual C++)开发的手写...
在开发Web应用时,有时我们需要实现手写功能,让用户能够在网页上进行手写输入,比如签名或者绘制图形。在Java Web环境下,我们通常使用JSP(JavaServer Pages)结合Servlet来构建这种功能。这里我们将讨论如何实现...
网页手写签名生成图片是一种常见的交互...通过以上步骤,我们可以构建一个完整的网页手写签名生成图片的系统,既满足用户在网页上方便地创建和保存个性化签名的需求,也能为各种在线服务提供安全、可靠的签名解决方案。
手写板驱动大全之——全能王手写输入系统V8.0(又名精巧笔)-(又名豪彩303)手写板驱动 本系列手写板驱动均是本人日常工作中经常接触各种品牌的手写板积累下来的,因为深知有时候客户不小心将手写板驱动光盘弄丢,手写...
随着移动设备的普及,人们越来越依赖移动设备,它带给人们许多的方便。其中手写签名,在一些金融行业使用较为普遍,目前手写签名系统有几款很不错,免费使用的不多。具体请参照博客:http://blog.csdn.net/acrambler
【大将军手写识别系统 V8.04】是一款专为用户提供高效、精准的手写文字识别技术的软件。它能够将用户的笔迹转化为可编辑的文本,极大地提升了输入效率,尤其适用于那些偏好手写或者在没有键盘设备的情况下需要输入...
千彩手写识别系统v7.6是一款专为千的手写板软件准备的一款系统识别工具,能够支持winxp,vista,win7等系统,它能帮助用户解决手写板无法连接电脑的问题,有需要欢迎下载使用!千彩手写识别系统v7.6简介千彩手写识别...
【清华紫光手写识别系统之全能王V9.1手写板驱动】是一款专为清华紫光品牌的手写板设计的驱动程序,其主要功能是确保手写板硬件能够与计算机操作系统无缝配合,实现高效、精准的手写输入。这款驱动程序支持清华紫光的...
安装驱动是连接手写板到计算机的关键步骤,驱动程序能识别并控制硬件设备,使得操作系统和应用程序能够与手写板通信。在Web开发场景下,驱动安装确保了手写板的功能得以正常运行,例如识别手写文字、笔迹等。 2. **...
汉翔手写识别系统2009版是一款专为用户提供便捷手写输入功能的软件,尤其适用于那些习惯于手写输入而非键盘输入的用户。该系统集成了先进的手写识别技术,能够将用户的笔迹有效地转化为计算机可识别的文本,大大提升...
网页手写编辑器是一种在网页环境下实现的手写输入工具,它允许用户通过鼠标或触摸屏在虚拟画板上模拟手写,将文字、图形或签名等以数字化的形式输入到网页中。这种编辑器通常配备丰富的颜色选择功能,使得用户可以...
很不错的代码,在线模仿百度网页手写输入法,可以下载下来玩玩
紫光电子帝王笔多媒体中文手写输入系统是一款专为用户提供便捷、高效中文输入的设备,其核心在于手写板和配套的驱动程序。手写板作为一种人机交互工具,允许用户通过手写的方式输入文字,尤其适合那些习惯于传统书写...
【苹果手写识别系统V9.1】是美国苹果公司推出的一款高级的手写识别软件,其主要功能在于将用户的手写输入转化为精确的文本。这款系统在当时代表着苹果公司在人机交互领域的先进技术,旨在提供更加自然、直观的输入...
网页手写输入法是一种在网页上模拟真实手写体验的技术,尤其对于中文用户来说,它提供了方便快捷的输入方式,特别是在没有键盘或者不熟悉拼音输入的情况下。本资源包含从百度首页提取的网页手写输入法代码和控件,...
"大将军系列手写输入系统"是一款专为用户设计的手写汉字输入软件,适用于那些习惯于手写输入而非键盘输入的个人或企业。这个系统旨在提高汉字输入的效率和便捷性,尤其对于不熟悉拼音输入法或者有特殊需求的用户来说...