1801010134 5 vuotta sitten
vanhempi
commit
778f9755bc
5 muutettua tiedostoa jossa 486 lisäystä ja 0 poistoa
  1. 36 0
      src/conf.xml
  2. 217 0
      src/correct.jsp
  3. 4 0
      src/db.properties
  4. 143 0
      src/incompatible.jsp
  5. 86 0
      src/index.jsp

+ 36 - 0
src/conf.xml

@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
+<configuration>
+	   <!-- 引用db.properties配置文件 -->
+    <properties resource="db.properties"/>
+    <!-- 
+        development : 开发模式
+        work : 工作模式
+     -->
+     <!-- 配置实体类的别名,配置实体类别名的目的是为了在引用实体类时可以使用实体类的别名来代替实体类,达到简写的目的 -->
+    <typeAliases>
+        <!-- 为实体类me.gacl.domain.User配置一个别名_User -->
+        <!-- <typeAlias type="me.gacl.domain.User" alias="_User"/> -->
+        <!-- 为me.gacl.domain包下的所有实体类配置别名,MyBatis默认的设置别名的方式就是去除类所在的包后的简单的类名
+        比如me.gacl.domain.User这个实体类的别名就会被设置成User
+         -->
+        <package name="Domain"/>
+    </typeAliases>
+    <environments default="development">
+        <environment id="development">
+            <transactionManager type="JDBC" />
+            <!-- 配置数据库连接信息 -->
+            <dataSource type="POOLED">
+                <!-- value属性值引用db.properties配置文件中配置的值 -->
+                <property name="driver" value="${driver}" />
+                <property name="url" value="${url}" />
+                <property name="username" value="${username}" />
+                <property name="password" value="${password}" />
+            </dataSource>
+        </environment>
+    </environments>
+	<mappers>
+		<mapper resource="Dao/PdfDataMapper.xml" />
+	</mappers>
+	
+</configuration>

+ 217 - 0
src/correct.jsp

@@ -0,0 +1,217 @@
+<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
+<%
+	String path = request.getContextPath();
+	String basePath = request.getScheme() + "://"
+			+ request.getServerName() + ":" + request.getServerPort()
+			+ path + "/";
+%>
+<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
+<%@page isELIgnored="false"%>
+<!DOCTYPE html>
+
+<head>
+<meta charset="UTF-8">
+<meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible">
+<meta name="viewport"
+	content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no, width=device-width">
+<title></title>
+<link rel="stylesheet" type="text/css"
+	href="${pageContext.request.contextPath}/css/correct.css" />
+<style>
+#background {
+	cursor: url('${pageContext.request.contextPath}/img/cursor.png'), auto;
+}
+
+#annotated {
+	background: url('${pageContext.request.contextPath}/img/annotated.png')
+		no-repeat right;
+}
+
+.annotated:after {
+	position: absolute;
+	background: url('${pageContext.request.contextPath}/img/annotated.png');
+	background-size: 100% 100%;
+	background-repeat: no-repeat;
+	content: '';
+	width: 40px;
+	height: 40px;
+	bottom: 0;
+	right: 0;
+}
+</style>
+</head>
+
+<body>
+	<div class="header">
+		<div class="img_button img_pencil active">
+			<button id="pencil">
+		</div>
+		<div class="line"></div>
+		<div class="color_select">
+			<div id="color_fadeToggle">
+				<ul class="color_list">
+					<li data-value="#000000" style="background: #000000"></li>
+					<li data-value="#424242" style="background: #424242"></li>
+					<li data-value="#626262" style="background: #626262"></li>
+					<li data-value="#9d9d95" style="background: #9d9d95"></li>
+					<li data-value="#c7c7c7" style="background: #c7c7c7"></li>
+					<li data-value="#efefef" style="background: #efefef"></li>
+					<li data-value="#f7f7f7" style="background: #f7f7f7"></li>
+					<li data-value="#ffffff" style="background: #ffffff"></li>
+					<li data-value="#ff0000" style="background: #ff0000"></li>
+					<li data-value="#ff9d00" style="background: #ff9d00"></li>
+					<li data-value="#ffff00" style="background: #ffff00"></li>
+					<li data-value="#00ff00" style="background: #00ff00"></li>
+					<li data-value="#00ffff" style="background: #00ffff"></li>
+					<li data-value="#0000ff" style="background: #0000ff"></li>
+					<li data-value="#9d00ff" style="background: #9d00ff"></li>
+					<li data-value="#ff00ff" style="background: #ff00ff"></li>
+					<li data-value="#f7c7cf" style="background: #f7c7cf"></li>
+					<li data-value="#ffebcb" style="background: #ffebcb"></li>
+					<li data-value="#ffebcb" style="background: #ffebcb"></li>
+					<li data-value="#d7efd7" style="background: #d7efd7"></li>
+					<li data-value="#d3dbe7" style="background: #d3dbe7"></li>
+					<li data-value="#cfe7f7" style="background: #cfe7f7"></li>
+					<li data-value="#d3dbe7" style="background: #d3dbe7"></li>
+					<li data-value="#e7d7df" style="background: #e7d7df"></li>
+					<li data-value="#e79d9d" style="background: #e79d9d"></li>
+					<li data-value="#ffc79d" style="background: #ffc79d"></li>
+					<li data-value="#ffe79d" style="background: #ffe79d"></li>
+					<li data-value="#b5d7a5" style="background: #b5d7a5"></li>
+					<li data-value="#a5c7cf" style="background: #a5c7cf"></li>
+					<li data-value="#9dc7ef" style="background: #9dc7ef"></li>
+					<li data-value="#b5a5d7" style="background: #b5a5d7"></li>
+					<li data-value="#d7a5bd" style="background: #d7a5bd"></li>
+					<li data-value="#e76262" style="background: #e76262"></li>
+					<li data-value="#f7ad6a" style="background: #f7ad6a"></li>
+					<li data-value="#ffd762" style="background: #ffd762"></li>
+					<li data-value="#95bd7a" style="background: #95bd7a"></li>
+					<li data-value="#72a5ad" style="background: #72a5ad"></li>
+					<li data-value="#6aaddf" style="background: #6aaddf"></li>
+					<li data-value="#8d7ac7" style="background: #8d7ac7"></li>
+					<li data-value="#c77aa5" style="background: #c77aa5"></li>
+					<li data-value="#cf0000" style="background: #cf0000"></li>
+					<li data-value="#e79538" style="background: #e79538"></li>
+					<li data-value="#efc730" style="background: #efc730"></li>
+					<li data-value="#6aa54a" style="background: #6aa54a"></li>
+					<li data-value="#4a7a8d" style="background: #4a7a8d"></li>
+					<li data-value="#385c7" style="background: #3885c7"></li>
+					<li data-value="#624aa5" style="background: #624aa5"></li>
+					<li data-value="#a54a7a" style="background: #a54a7a"></li>
+					<li data-value="#9d0000" style="background: #9d0000"></li>
+					<li data-value="#b56208" style="background: #b56208"></li>
+					<li data-value="#bd9500" style="background: #bd9500"></li>
+					<li data-value="#387a20" style="background: #387a20"></li>
+					<li data-value="#104a5a" style="background: #104a5a"></li>
+					<li data-value="#085295" style="background: #085295"></li>
+					<li data-value="#301872" style="background: #301872"></li>
+					<li data-value="#721842" style="background: #721842"></li>
+					<li data-value="#620000" style="background: #620000"></li>
+					<li data-value="#7a3800" style="background: #7a3800"></li>
+					<li data-value="#285218" style="background: #285218"></li>
+					<li data-value="#285218" style="background: #285218"></li>
+					<li data-value="#083038" style="background: #083038"></li>
+					<li data-value="#003062" style="background: #003062"></li>
+					<li data-value="#20104a" style="background: #20104a"></li>
+					<li data-value="#4a1030" style="background: #4a1030"></li>
+				</ul>
+			</div>
+		</div>
+		<input type="range" max="15" min="1" id="range" />
+		<div class="line"></div>
+		<div class="img_button img_empty">
+			<button id="clear_canvas">
+		</div>
+		<div class="img_button img_save">
+			<button id="save_canvas">
+		</div>
+		<div class="img_button img_download">
+			<button id="download">
+		</div>
+	</div>
+
+	<div class="sidebar_left">
+		<ul class="img_select">
+			<c:forEach var="i" begin="1" end="${correct_number}">
+				<li id="img_${i}" class=""><img
+					src="${pageContext.request.contextPath}/Document/correct/img/${correct}/${i}.png"
+					id="annotated" />
+					</form></li>
+
+			</c:forEach>
+		</ul>
+	</div>
+	<div class="main">
+		<div class="correct">
+			<div id="background"
+				style="background-image:url('${pageContext.request.contextPath}/Document/correct/img/${correct}/1.png'); background-size: 100% 100%; background-repeat: no-repeat;">
+				<canvas id="canvas"></canvas>
+			</div>
+
+		</div>
+
+	</div>
+	<script src="${pageContext.request.contextPath}/js/jquery-3.3.1.min.js"
+		type="text/javascript" charset="utf-8"></script>
+	<script src="${pageContext.request.contextPath}/js/correct.js"
+		type="text/javascript" charset="utf-8"></script>
+	<script type="text/javascript">
+		//获取id为background的对象
+		var background = document.getElementById("background")
+		<c:forEach var="a" begin="1" end="${correct_number}">
+		//a代表当前条目的变量名称
+		$("#img_${a}")
+				.click(
+						function() {
+
+							//获取批注的base64编码
+							var image = new Image();
+							image.src = canvas.toDataURL("image/png");//得到图片的BASE64码
+							var abc = image.src
+							//base64 编码中含有大量加号,而+在 URL 传递时会被当成空格
+							var base64_ = abc.replace(/\+/g, '%2B');
+
+							// 获取id为correct中的backgroundImage值
+							var a = document.getElementById("background").style.backgroundImage;
+							// 通过正则表达式得知当前正在批注的图片
+							var str = a.match(/([^/]+).png/)[1];
+							// 替换id为background对象的背景图片
+							document.getElementById("background").style.cssText = "background-image: url(${pageContext.request.contextPath}/Document/correct/img/${correct}/${a}.png);background-size: 100% 100%;background-repeat: no-repeat;"
+
+							// 通过ajax将获取到的base64以post方式传输到后台处理
+							var xmlhttp;
+							if (window.XMLHttpRequest) {
+								//  IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码
+								xmlhttp = new XMLHttpRequest();
+							} else {
+								// IE6, IE5 浏览器执行代码
+								xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
+							}
+							xmlhttp.open("POST", "Encode", true);
+							xmlhttp.setRequestHeader("Content-Type",
+									"application/x-www-form-urlencoded");
+							xmlhttp.send("img_name=" + str + "&base64="
+									+ base64_);
+							//消除批注
+							cvs.clearRect(0, 0, canvas.width, canvas.height);
+						});
+		</c:forEach>
+		$(function() {
+			var xmlhttp;
+			if (window.XMLHttpRequest) {
+				//  IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码
+				xmlhttp = new XMLHttpRequest();
+			} else {
+				// IE6, IE5 浏览器执行代码
+				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
+			}
+			xmlhttp.open("POST", "Magic", true);
+			xmlhttp.setRequestHeader("Content-Type",
+					"application/x-www-form-urlencoded");
+			xmlhttp.send("number=" + ${correct_number});
+
+		});
+	</script>
+</body>
+
+</html>

+ 4 - 0
src/db.properties

@@ -0,0 +1,4 @@
+driver=com.mysql.jdbc.Driver
+url=jdbc\:mysql\://localhost\:3306/website?useUnicode\=true&characterEncoding\=utf8
+username=root
+password=123456

+ 143 - 0
src/incompatible.jsp

@@ -0,0 +1,143 @@
+<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
+<%
+	String path = request.getContextPath();
+	String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
+			+ path + "/";
+%>
+<!DOCTYPE html>
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no, width=device-width">
+<title>请升级你的浏览器</title>
+<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
+<style type="text/css">
+body, h1, h2, h3, h4, h5, h6, hr, p, blockquote, dl, dt, dd, ul, ol, li,
+	pre, form, fieldset, legend, button, input, textarea, th, td {
+	margin: 0;
+	padding: 0
+}
+
+a {
+	text-decoration: none;
+	color: #0072c6;
+}
+
+a:hover {
+	text-decoration: none;
+	color: #004d8c;
+}
+
+body {
+	width: 960px;
+	margin: 0 auto;
+	padding: 10px;
+	font-size: 13px;
+	line-height: 20px;
+	color: #454545;
+	font-family: 'Microsoft YaHei UI', 'Microsoft YaHei', DengXian, SimSun,
+		'Segoe UI', Tahoma, Helvetica, sans-serif;
+}
+
+h1 {
+	font-size: 40px;
+	line-height: 80px;
+	font-weight: 200;
+	margin-bottom: 10px;
+}
+
+h2 {
+	font-size: 20px;
+	line-height: 25px;
+	font-weight: 500;
+	margin: 10px 0;
+}
+
+p {
+	margin-bottom: 10px;
+}
+
+.line {
+	clear: both;
+	width: 100%;
+	height: 1px;
+	overflow: hidden;
+	line-height: 1px;
+	border: 0;
+	background: #ccc;
+	margin: 10px 0 30px;
+}
+
+img {
+	width: 34px;
+	height: 34px;
+	border: 0;
+	float: left;
+	margin-right: 10px;
+}
+
+span {
+	display: block;
+	font-size: 12px;
+	line-height: 12px;
+}
+
+.clean {
+	clear: both;
+}
+
+.browser {
+	padding: 10px 0;
+}
+
+.browser li {
+	width: 180px;
+	float: left;
+	list-style: none;
+}
+</style>
+</head>
+
+<body class="vsc-initialized">
+	<h1>是时候升级你的浏览器了</h1>
+	<p>你正在使用 Internet Explorer 的9以下的版本(IE6、IE7、IE8
+		或使用该内核的浏览器)。这意味着在升级浏览器前,你将无法访问此网站。</p>
+	<div class="line"></div>
+	<h2>请注意:Windows XP 及 IE6、IE7、IE8 的支持已经结束</h2>
+	<p>
+		自 2014 年 4 月 8 日起,Microsoft 不再为 Windows XP 和 Internet Explorer 8
+		及以下版本提供相应支持和更新。如果你继续使用这些,你将可能受到病毒、间谍软件和其他恶意软件的攻击,无法确保个人信息的安全。请参阅 <a
+			href="http://windows.microsoft.com/zh-cn/windows/end-support-help">Microsoft
+			关于 Windows XP 支持已经结束的说明</a> 。
+	</p>
+	<div class="line"></div>
+	<h2>更先进的浏览器</h2>
+	<p>推荐使用以下浏览器的最新版本。如果你的电脑已有以下浏览器的最新版本则直接使用该浏览器访问即可。</p>
+	<ul class="browser">
+		<li><a
+			href="https://www.google.com/intl/zh-CN/chrome/browser/index.html?system=true&amp;standalone=1"><img
+				src="img/chrome.jpg" alt="谷歌浏览器"> 谷歌浏览器<span>Google
+					Chrome</span></a></li>
+		<li><a href="https://www.mozilla.org/zh-CN/firefox/new/"><img
+				src="img/firefox.jpg" alt="火狐浏览器"> 火狐浏览器<span>Mozilla
+					Firefox</span></a></li>
+		<li><a
+			href="https://support.microsoft.com/zh-tw/help/17621/internet-explorer-downloads"><img
+				src="img/ie.jpg" alt="IE浏览器"> IE浏览器<span>Internet
+					Explorer</span></a></li>
+		<li><a href="https://www.opera.com/zh-cn"><img
+				src="img/opera.jpg" alt="IE浏览器"> Opera浏览器<span>Opera
+					Explorer</span></a></li>
+		<div class="clean"></div>
+	</ul>
+	<div class="line"></div>
+	<h2>为什么会出现这个页面?</h2>
+	<p>如果你不知道升级浏览器是什么意思,请请教一些熟练电脑操作的朋友。如果你使用的不是IE6/7/8,而是360浏览器、QQ浏览器、搜狗浏览器等,出现这个页面是因为你使用的不是该浏览器的最新版本,升级至最新即可。</p>
+	<div class="line"></div>
+	<h2>一起抵制IE6、IE7、IE8</h2>
+	<p>为了兼容这个曾经的浏览器霸主,网页设计人员需要做大量的代码工作,而且最终效果也始终不能让人满意。对于普通用户而言,低版本IE更是一个岌岌可危的安全隐患,在Windows历史上几次大的木马病毒事件都是利用IE漏洞进行传播。所以,请和我们一起抵制IE6、IE7、IE8!</p>
+
+
+</body>
+
+</html>

+ 86 - 0
src/index.jsp

@@ -0,0 +1,86 @@
+<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
+<%
+	String path = request.getContextPath();
+	String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
+			+ path + "/";
+%>
+<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
+<%@page isELIgnored="false"%>
+<!DOCTYPE html>
+<head>
+<meta charset="UTF-8">
+<meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible">
+<meta name="viewport"
+	content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no, width=device-width">
+<title>主页</title>
+<link rel="stylesheet" type="text/css"
+	href="${pageContext.request.contextPath}/css/normalize.css" />
+<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/css/index_PC.css"  />
+</head>
+
+<body>
+	<noscript>
+		<center>
+			<h1>请勿禁止当前页面脚本!</h1>
+		</center>
+	</noscript>
+	<div class="main">
+		<div class="m-left">
+			<span id="title" class="title-text"> <br /> 当前文件
+			</span>
+			<div id="list">
+				<form action="GetNumber" method="get">
+					<c:forEach items="${pdfdata}" var="li">
+						<ul>
+							<li><input type="radio" name="radio" value="${li}" />${li}</li>
+						</ul>
+					</c:forEach>
+			</div>
+			<input type="submit" value="开始批注" id="button_correct" />
+			</form>
+
+		</div>
+		<div class="m-right">
+			<div class="upload" id="drop_area">
+				<img src="${pageContext.request.contextPath}/img/file.png"
+					id="img_file" />
+			</div>
+			<span id="tips">
+				<form action="UploadServlet" method="post"
+					enctype="multipart/form-data" id="form_auto">
+					<span id="t_right" class="tips-text"> <input type="file"
+						name="fileUpload" accept=".pdf" id="upload-link" /> <label
+						for="upload-link">选择文件上传 </label>
+					</span> <span id="t_left" class="tips-text"> 或拖拽文件到上面</span>
+			</span>
+			</form>
+
+		</div>
+	</div>
+	<script src="${pageContext.request.contextPath}/js/jquery-3.3.1.min.js"
+		type="text/javascript" charset="utf-8"></script>
+	<script src="${pageContext.request.contextPath}/js/main.js"
+		type="text/javascript" charset="utf-8"></script>
+	<script type="text/javascript">
+		if (document.all && document.addEventListener && !window.atob) {
+			location.href("incompatible.jsp");
+		}
+		if (document.all && document.querySelector && !document.addEventListener) {
+			location.href("incompatible.jsp")
+		}
+		if (document.all && !document.querySelector) {
+			location.href("incompatible.jsp")
+		}
+		if(/AppleWebKit.*mobile/i.test(navigator.userAgent) || (/MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TCL|Alcatel|BIRD|DBTEL|Dopod|PHILIPS|HAIER|LENOVO|MOT-|Nokia|SonyEricsson|SIE-|Amoi|ZTE/.test(navigator.userAgent))) {
+				if(window.location.href.indexOf("?mobile") < 0) {
+					if(/Android|webOS|iPhone|iPod|iPad|BlackBerry/i.test(navigator.userAgent)) {
+						window.location.href = "index_Phone.jsp";
+					}
+				}
+			}
+				
+		
+	</script>
+</body>
+
+</html>