master
dida 5 years ago
commit 522fd0980c

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="melibrary.com.genuitec.eclipse.j2eedt.core.MYECLIPSE_JAVAEE_5_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
<classpathentry kind="con" path="melibrary.com.genuitec.eclipse.hibernate.MYECLIPSE_HIBERNATE3_3_EM"/>
<classpathentry kind="con" path="melibrary.com.genuitec.eclipse.hibernate.MYECLIPSE_HIBERNATE3_3_CORE"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/mysql-connector-java-5.1.47-bin.jar"/>
<classpathentry kind="con" path="melibrary.com.genuitec.eclipse.struts2.MYECLIPSE_STRUTS21_CORE"/>
<classpathentry kind="output" path="WebRoot/WEB-INF/classes"/>
</classpath>

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="PropertiesComponent">
<property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
<property name="nodejs_npm_path_reset_for_default_project" value="true" />
</component>
</project>

@ -0,0 +1,24 @@
#MyEclipse Hibernate Properties
#Fri Jan 03 19:00:56 CST 2020
sessionFactoryName=
genBasicCompId=true
profile=
daoSFId=
version=3.3
jndiPath=
detectM2M=false
reStrategyClass=
detectO2O=false
springDaoFile=
useJavaTypes=true
keyGenerator=native
libInstallFolder=WebRoot/WEB-INF/lib
addLibs2Project=true
genVersionTag=false
sessionFactoryId=
basePersistenceClass=
genAnnotations=false
reSettingsFile=
configFile=/Lesson12/src/hibernate.cfg.xml
createConfigFile=true
addLibs2Classpath=true

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<project-module
type="WEB"
name="Lesson12"
id="myeclipse.1559700929068"
context-root="/Lesson12"
j2ee-spec="5.0"
archive="Lesson12.war">
<attributes>
<attribute name="webrootdir" value="WebRoot" />
</attributes>
</project-module>

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<MyEclipseStrutsProperties>
<strutsVersion>4</strutsVersion>
<basePackage></basePackage>
<strutsPattern>0</strutsPattern>
<servletName>action</servletName>
</MyEclipseStrutsProperties>

@ -0,0 +1,65 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>Lesson12</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.wst.common.project.facet.core.builder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.genuitec.eclipse.j2eedt.core.WebClasspathBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.genuitec.eclipse.j2eedt.core.J2EEProjectValidator</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.genuitec.eclipse.j2eedt.core.DeploymentDescriptorValidator</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.validation.validationbuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.genuitec.eclipse.hibernate.HibernateBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.genuitec.eclipse.ast.deploy.core.DeploymentBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>com.genuitec.eclipse.ast.deploy.core.deploymentnature</nature>
<nature>com.genuitec.eclipse.hibernate.hibernatenature</nature>
<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
<nature>com.genuitec.eclipse.j2eedt.core.webnature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
<nature>com.genuitec.eclipse.cross.easystruts.eclipse.easystrutsnature</nature>
</natures>
</projectDescription>

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="WebRoot"/>
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.WebProject">
<attributes>
<attribute name="hide" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.baseBrowserLibrary"/>
<classpathentry kind="output" path=""/>
</classpath>

@ -0,0 +1,8 @@
#Wed Jun 05 10:15:29 CST 2019
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
org.eclipse.jdt.core.compiler.compliance=1.6
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.6

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<project-modules id="moduleCoreId" project-version="1.5.0">
<wb-module deploy-name="Lesson12">
<wb-resource deploy-path="/" source-path="/WebRoot"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src"/>
<property name="context-root" value="/Lesson12"/>
<property name="java-output-path" value="/Lesson12/WebRoot/WEB-INF/classes"/>
</wb-module>
</project-modules>

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
<fixed facet="wst.jsdt.web"/>
<installed facet="java" version="1.6"/>
<installed facet="jst.web" version="2.5"/>
<installed facet="wst.jsdt.web" version="1.0"/>
</faceted-project>

@ -0,0 +1 @@
org.eclipse.wst.jsdt.launching.baseBrowserLibrary

@ -0,0 +1,249 @@
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>登录|注册</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<script src="js/jquery-1.11.3.js"></script>
<style>
*{
-moz-user-select: none; /*火狐*/
-webkit-user-select: none; /*webkit浏览器*/
-ms-user-select: none; /*IE10*/
-khtml-user-select: none; /*早期浏览器*/
user-select: none;
}
#back{
background-image:url('./img/login2.png');
background-repeat: no-repeat,no-repeat;
background-size:contain,contain;
background-position: bottom;
height:93%;
width:100%;
}
.loginform{
position: relative;
width:350px;
margin-top: 8%;
margin-left: 15%
}
.loginform .logtype{
text-align: center;
margin-bottom: 30px;
letter-spacing: 1px;
}
.loginform .logtype a{
margin-right: 10px;
font-weight: bold;
font-size: 23px;
cursor: pointer;
}
.loginform .logtype a:ACTIVE{
color:#EEAD0E;
}
form{
}
form .info{
margin-bottom: 20px;
width:100%;
height:43px;
border-radius:7px;
background: rgb(235 ,235, 235);
border: none;
text-indent: 15px;
letter-spacing: 1px;
font-size: 95%;
outline-color: #FFB90F;
}
form .info:FOCUS{
background: white;
}
input::-moz-placeholder { /* Mozilla Firefox 4 to 18 适配火狐 */
color: rgb(180 ,180, 180);;
}
input::-webkit-input-placeholder { /* WebKit browsers 适配谷歌 */
color: rgb(180 ,180, 180);
}
.sub{
width:40%;
height:35px;
border-radius:7px;
border: none;
background: #FFB90F;
color: white;
font-size:120%;
letter-spacing: 4px;
display: inline;
vertical-align: top;
margin-top: 20px;
outline: none;
}
.sub:ACTIVE{
background: #EEAD0E;
}
.reg{
display: inline-block;
vertical-align: top;
margin-left: 40%;
text-align: right;
margin-top: 20px;
}
.reg p{
font-size: 80%;
color: rgb(180 ,180, 180);
margin-top: 0px;
margin-bottom: 5px;
cursor: pointer;
}
.reg p:ACTIVE {
color: #EEAD0E;
}
</style>
<style>/*导航*/
.newheader{
height: 60px;
background-color: #3CB371;
}
.head-nav{
height: 60px;
color: yellow;
position:relative;
left:-20px;
}
.head-nav #header-nav{
height: 60px;
color: yellow;
margin-top:0;
}
.logo{
}
.logo img{
height: 40px;
width: 40px;
float: left;
margin: auto 20px;
position:relative;
top:-10px;
}
.pr{
float: left;
margin: auto 10px;
}
.pr a{
color: white;
text-decoration: none;
position:relative;
top:20px;
}
.login{
height:60px;
}
</style>
<div class="newheader">
<div class="head-nav pr" id="head-navpre1">
<ul id="header-nav">
<a class="logo">
<img alt="" src="./img/sLogo.png" >
</a>
<li class="pr" style="display: block;">
<a href="/paths" >跳蚤市场</a>
</li>
<li class="pr" style="display: block;">
<a href="/courses" >校园超市</a>
</li>
<li class="pr" style="display: block;">
<a href="/shixuns">失物招领</a>
</li>
<li class="pr" style="display: block;">
<a href="/competitions">资源共享</a>
</li>
<li class="pr" style="display: block;">
<a href="/moop_cases">兴趣论坛</a>
</li>
</ul>
</div>
<span class="login pr" style="float: right;">
<a href="" class="mr5 color-white" >登录</a>
<em class="vertical-line" ></em>
<a href="/register" class="mr5 color-white">注册</a>
</span>
</div>
<div id="back" >
<div class="loginform">
<div class="logtype">
<a>登录</a>|
<a>注册</a>
</div>
<s:form action="Login" method="post" autocomplete="on">
<s:textfield name="user.username" cssClass="info" /><br/>
<s:password name="user.password" cssClass="info" placeholder="请输入密码" /><br/>
<input type="submit" class="sub" value="登录">
<div class="reg">
<p>注册</p>
<p>忘记密码</p>
</div>
</s:form>
<p style="text-align: center;font-family:cursive;">———其他登录方式 ———</p>
</div>
<div>
<script type="text/javascript">
var h=document.getElementById("back").clientHeight;
var w=document.getElementById("back").clientWidth;
if(h==null) console.log(0);
console.log(h);
console.log(w);
</script>
</body>
</html>

@ -0,0 +1,570 @@
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>MyDay-我的美好一天</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script src="js/jquery-1.11.3.js"></script>
</head>
<style>
*{
margin: 0;
padding: 0;
}
.newheader{
height: 60px;
background-color: #00CD66;
width:1520px;
position: fixed;
z-index: 11;
}
.head-nav{
height: 60px;
color: yellow;
position:relative;
left:-20px;
}
.head-nav #header-nav{
height: 60px;
color: yellow;
margin-top:0;
}
.logo{
}
.logo img{
height: 60px;
width: 60px;
float: left;
margin: auto 20px;
position:relative;
top:-15px;
}
.pr{
float: left;
margin: auto 10px;
}
.pr a{
color: white;
text-decoration: none;
position:relative;
top:20px;
}
.login{
height:60px;
}
.color-white{
margin: 10px 10px 10px 10px;
}
.mr5{
position:relative;
bottom: -20px;
}
body{
background-repeat: no-repeat;
background-size:cover;
background-position: 0 60px;
height:100%;
}
.homeback{
z-index: -1;
position:absolute;
width:1520px;
height:2440px;
top:60px;
}
</style>
<body>
<img class="homeback" alt="" src="./img/home.png" style="z-index: -1">
<div class="newheader">
<div class="head-nav pr" id="head-navpre1">
<ul id="header-nav">
<a class="logo">
<img alt="" src="./img/sLogo.png" >
</a>
<li class="pr" style="display: block;">
<a href="./market.jsp" >跳蚤市场</a>
</li>
<li class="pr" style="display: block;">
<a href="./404.jsp" >校园超市</a>
</li>
<li class="pr" style="display: block;">
<a href="./LostAndFound.jsp">失物招领</a>
</li>
<li class="pr" style="display: block;">
<a href="./404.jsp">资源共享</a>
</li>
<li class="pr" style="display: block;">
<a href="./404.jsp">兴趣论坛</a>
</li>
</ul>
</div>
<span class="login pr" style="float: right;">
<a href="./1.jsp" class="mr5 color-white" >登录</a>
<em class="vertical-line" ></em>
<a href="/register" class="mr5 color-white">注册</a>
</span>
</div>
<!-- 以上导航 -->
<style>
*::selection{
background: none;
}
#box ul li{
margin: 0;
padding:0;
list-style: none;
text-align: center;
line-height: 270px;
font-size: 30px;
}
#box{
width:650px;
height:320px;
position:relative;
bottom: -180px;
}
#box li{
width:100%;
height:100%;
position:absolute;
opacity:0;
transition:1s;
}
#box ul li:FIRST-CHILD {
opacity:1;
}
.btn{
witdh:80px;
height:30px;
background: rgba(0,0,0,0);
color:#fff;
top:135px;
position:absolute;
text-align: center;
line-height: 30px;
cursor: pointer;
}
#nextt{
right:0;
}
.btn:HOVER {
background: rgba(0,0,0,0.05);
}
.btn:ACTIVE {
background: rgba(0,0,0,0.5);
}
.shouye{
height:500px;
position: relative;
width:1520px;
}
.sub{
width:100px;
height:35px;
border-radius:7px;
border: none;
background: #FFB90F;
color: white;
font-size:120%;
letter-spacing: 4px;
display: inline-block;
text-align:center;
vertical-align: middle;
margin-top: 20px;
padding-top:5px;
outline: none;
position: relative;
top:180px;
left:250px;
text-decoration: none;
}
.sub:HOVER{
background: #EEAD0E;
}
.sub:ACTIVE{
background: #FFB90F;
}
</style>
<div class="shouye">
<a href="./1.jsp" class="sub" >登录</a>
<div id="box">
<ul>
<li class="ll" id=0>美好的一天从MyDay开始</li>
<li class="ll" id=1>校园超市为你方便购物</li>
<li class="ll" id=2>失物招领让你的宝贝回家</li>
<li class="ll" id=2>资源共享丰富你的知识</li>
<li class="ll" id=2>跳蚤市场轻松解决你不需要的物品</li>
</ul>
<div class="btn" id="prevv" onclick="clickprev()">prev</div>
<div class="btn" id="nextt" onclick="clicknext()">next</div>
</div>
</div>
<script type="text/javascript">
var ll = document.getElementsByClassName("ll");
var pre = document.getElementById("prevv");
var next = document.getElementById("nextt");
var index = 0;
var int;
//定时器
int=self.setInterval("wrapernext()",3000);
//3秒后开始定时
//setTimeout("SetInterval()",3000);
function wrapernext(){
index++;
if(index == ll.length) index=0;
console.log(ll.length);
for(var i=0;i<ll.length;i++){
ll[i].style.opacity=0;
}
ll[index].style.opacity=1;
};
function clicknext(){
window.clearInterval(int) ;
int=null;
wrapernext();
if(int==null){
int=self.setInterval("wrapernext()",3000);
}
};
function wraperprev(){
index--;
if(index == -1) index=ll.length-1;
console.log(ll.length);
for(var i=0;i<ll.length;i++){
ll[i].style.opacity=0;
}
ll[index].style.opacity=1;
};
function clickprev(){
window.clearInterval(int) ;
int=null;
wraperprev();
if(int==null){
int=self.setInterval("wrapernext()",3000);
}
}
</script>
<!-- 以上是主题介绍 -->
<!--
<style>
.adv{
: 4px solid yellow;
position: relative;
height: 600px;
}
.circle{
width:150px;
height:150px;
border-radius:50%;
background: #48D1CC;
position: relative;
float:left;
color:white;
line-height:120px;
display:inline-block;
text-align: center;
}
.cir-one,.cir-one+a{
left:150px;
}
.cir-two,.cir-two+a{
right:-700px;
}
.cir-three,.cir-three+a{
left:350px;
}
.cir-four,.cir-four+a{
right:-1200px;
}
.good{
: 4px solid yellow;
float:left;
color:#ADD8E6;
position:relative;
display:inline-block;
}
.inline{
height:150px;
padding: 0px;
position: relative;
}
</style>
<div class="adv">
<div style="border: 1px solid red;" class="inline">
<div class="circle cir-one">跳蚤市场</div>
<a class="good">
很好不错特别棒
</a>
</div>
<div style="border: 1px solid red;" class="inline">
<div class="circle cir-two">校园超市</div>
<a class="good">
很好不错特别棒
</a>
</div>
<div style="border: 1px solid red;" class="inline">
<div class="circle cir-three">失物招领</div>
<a class="good">
很好不错特别棒
</a>
</div>
<div style="border: 1px solid red;" class="inline">
<div class="circle cir-four">资源共享</div>
<a class="good">
很好不错特别棒
</a>
</div>
</div>
</div>
-->
<!-- background-image:url('./img/timg.jfif');
-->
<!-- 以下功能介绍 -->
<style>
.backch{
width:1520px;
height:620px;
position: relative;
bottom: -830px;
background-image: url('./img/hover.jpg');
background-repeat: no-repeat;
background-size:cover;
}
.homepage_introduce{
position: relative;
bottom: -950px;
width:1520px;
height:360px;
}
.active{
width: 258.4px;
height: 300px;
position: relative;
display: inline-block;
vertical-align: top;
background-size:contain;
background-repeat:no-repeat;
z-index:2;
border-radius:10px;
margin-top: 30px;
margin-right: 20px;
}
.action img{
width: 258.4px;
height: 300px;
position: relative;
z-index: -1;
}
/*
.active:HOVER{
background-image: linear-gradient(45deg, #FBDA61 0%, #FF5ACD 100% );
background:rgba(,,,0.1);
color:white;
height: 320px;
margin-top: 20px;
}*/
.homepage_introduce ul{
list-style-type:none;
padding-top: 0;
position:relative;
text-align: center;
display: inline-block;
height:360px;
width:1520px;
}
.colorWhite{
text-decoration: none;
}
.active div{
visibility: hidden;
}
</style>
<div class="backch">
<div class="homepage_introduce" >
<ul>
<li class="active one" onmouseenter="onmove(this,'hover1') " onmouseleave="onout(this,'hover1')" >
<div id="hover1" style="height:100% ;">
<p class="f18 floatingName"><a href="http://ossean.trustie.net/" class="colorWhite">OSSEAN</a></p>
<p class="f16 mb20">资源共享平台</p>
<p class="f12 mb30 break_full_word floatingContent">高效汇聚全球开源开放的软件工程大数据,持续分析与评估开源生态发展态势</p>
</div>
</li>
<li class="active" onmouseenter="onmove(this,'hover2') " onmouseleave="onout(this,'hover2')" >
<div id="hover2" style="height:100% ;">
<p class="f18 floatingName"><a href="http://ossean.trustie.net/" class="colorWhite">OSSEAN</a></p>
<p class="f16 mb20">资源共享平台</p>
<p class="f12 mb30 break_full_word floatingContent">高效汇聚全球开源开放的软件工程大数据,持续分析与评估开源生态发展态势</p>
</div>
</li>
<li class="active" onmouseenter="onmove(this,'hover3') " onmouseleave="onout(this,'hover3')" >
<div id="hover3" style="height:100% ;">
<p class="f18 floatingName"><a href="http://ossean.trustie.net/" class="colorWhite">OSSEAN</a></p>
<p class="f16 mb20">资源共享平台</p>
<p class="f12 mb30 break_full_word floatingContent">高效汇聚全球开源开放的软件工程大数据,持续分析与评估开源生态发展态势</p>
</div>
</li>
<li class="active" onmouseenter="onmove(this,'hover4') " onmouseleave="onout(this,'hover4')" >
<div id="hover4" style="height:100% ;">
<p class="f18 floatingName"><a href="http://ossean.trustie.net/" class="colorWhite">OSSEAN</a></p>
<p class="f16 mb20">资源共享平台</p>
<p class="f12 mb30 break_full_word floatingContent">高效汇聚全球开源开放的软件工程大数据,持续分析与评估开源生态发展态势</p>
</div>
</li>
<li class="active" onmouseenter="onmove(this,'hover') " onmouseleave="onout(this,'hover')" ">
<div id="hover" style="height:100% ;">
<p class="f18 floatingName"><a href="http://ossean.trustie.net/" class="colorWhite">OSSEAN</a></p>
<p class="f16 mb20">资源共享平台</p>
<p class="f12 mb30 break_full_word floatingContent">高效汇聚全球开源开放的软件工程大数据,持续分析与评估开源生态发展态势</p>
</div>
</li>
</ul>
</div>
</div>
<script type="text/javascript">
function onmove(x,ho){
x.style.visibility="hidden";
document.getElementById(ho).style.visibility="visible";
}
function onout(x,ho){
x.style.visibility="visible";
document.getElementById(ho).style.visibility="hidden";
}
</script>
<!--
<ul >
<li class="active">
<div>
<p class="f18 floatingName"><a href="https://www.trustie.net" class="colorWhite">TrustieForge</a></p>
<p class="f16 mb20"></p>
<p class="f12 mb30 break_full_word floatingContent">开源创作与软件生产相结合,支持大规模群体开展软件协同创新活动。</p>
</div>
</li>
<li class="active">
<div>
<p class="f18 floatingName"><a href="http://codepedia.trustie.net/" class="colorWhite">Codepedia</a></p>
<p class="f16 mb20">众包标注平台</p>
<p class="f12 mb30 break_full_word floatingContent">也为软件领域积累丰富的自然语言标注。</p>
</div>
</li>
<li class="active">
<div>
<p class="f18 floatingName"><a href="https://www.trustie.net" class="colorWhite">TrustieForge</a></p>
<p class="f16 mb20"></p>
<p class="f12 mb30 break_full_word floatingContent"></p>
</div>
</li>
<li class="active">
<div>
<p class="f18 floatingName"><a href="http://ossean.trustie.net/" class="colorWhite">OSSEAN</a></p>
<p class="f16 mb20">资源共享平台</p>
<p class="f12 mb30 break_full_word floatingContent">高效汇聚全球开源开放的软件工程大数据,持续分析与评估开源生态发展态势</p>
</div>
</li>
<li class="active">
<div>
<p class="f18 floatingName"><a href="https://www.trustie.net" class="colorWhite">TrustieForge</a></p>
<p class="f16 mb20"></p>
<p class="f12 mb30 break_full_word floatingContent"></p>
</div>
</li>
</ul>
-->
</div>
</body>
</html>

@ -0,0 +1,317 @@
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>登录|注册</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<script src="js/jquery-1.11.3.js"></script>
<style>
*{
-moz-user-select: none; /*火狐*/
-webkit-user-select: none; /*webkit浏览器*/
-ms-user-select: none; /*IE10*/
-khtml-user-select: none; /*早期浏览器*/
user-select: none;
}
#back{
background-image:url('./img/login2.png');
background-repeat: no-repeat,no-repeat;
background-size:contain,contain;
background-position:0 150px;
height:100%;
width:100%;
}
.logback{
padding-top:0.5px;
border-radius:7px;
width:450px;
height:600px;
margin-left: 300px;
z-index: 6;
background: #F8F8FF;
opacity:0.95;
box-shadow:10px 10px 20px 10px rgba(220 ,220 ,220,0.5)
}
.loginform{
position: relative;
width:350px;
margin:auto auto;
margin-top: 12%;
}
.loginform .logtype{
text-align: center;
margin-bottom: 30px;
letter-spacing: 1px;
}
.loginform .logtype a{
margin-right: 10px;
font-weight: bold;
font-size: 23px;
cursor: pointer;
}
.loginform .logtype a:ACTIVE{
color:#EEAD0E;
}
form{
}
form .info{
margin-bottom: 20px;
width:100%;
height:43px;
border-radius:7px;
background: rgb(235 ,235, 235);
border: none;
text-indent: 15px;
letter-spacing: 1px;
font-size: 95%;
outline-color: #FFB90F;
}
form .info:FOCUS{
background: white;
}
select:FOCUS{
background: white;
outline-color: #FFB90F;
}
input::-moz-placeholder { /* Mozilla Firefox 4 to 18 适配火狐 */
color: rgb(180 ,180, 180);;
}
input::-webkit-input-placeholder { /* WebKit browsers 适配谷歌 */
color: rgb(180 ,180, 180);
}
.sub{
width:40%;
height:35px;
border-radius:7px;
border: none;
background: #FFB90F;
color: white;
font-size:120%;
letter-spacing: 4px;
display: inline;
vertical-align: top;
margin-top: 20px;
outline: none;
}
.sub:HOVER{
background: #EEAD0E;
}
.sub:ACTIVE{
background: #EEAD0E;
}
.reg{
display: inline-block;
vertical-align: top;
margin-left: 40%;
text-align: right;
margin-top: 20px;
}
.reg p{
font-size: 80%;
color: rgb(180 ,180, 180);
margin-top: 0px;
margin-bottom: 5px;
cursor: pointer;
}
.reg p:ACTIVE {
color: #EEAD0E;
}
select {
width:350px;
height:43px;
margin-bottom: 20px;
background: rgb(235 ,235, 235);
border: none;
}
#tip{
display: block;
}
</style>
<style>/*导航*/
/*
.newheader{
height: 60px;
background-color: #3CB371;
}
.head-nav{
height: 60px;
color: yellow;
position:relative;
left:-20px;
}
.head-nav #header-nav{
height: 60px;
color: yellow;
margin-top:0;
}
.logo{
}
.logo img{
height: 40px;
width: 40px;
float: left;
margin: auto 20px;
position:relative;
top:-10px;
}
.pr{
float: left;
margin: auto 10px;
}
.pr a{
color: white;
text-decoration: none;
position:relative;
top:20px;
}
.login{
height:60px;
}
*/
</style>
<!-- <div class="newheader">
<div class="head-nav pr" id="head-navpre1">
<ul id="header-nav">
<a class="logo">
<img alt="" src="./img/sLogo.png" >
</a>
<li class="pr" style="display: block;">
<a href="/paths" >跳蚤市场</a>
</li>
<li class="pr" style="display: block;">
<a href="/courses" >校园超市</a>
</li>
<li class="pr" style="display: block;">
<a href="/shixuns">失物招领</a>
</li>
<li class="pr" style="display: block;">
<a href="/competitions">资源共享</a>
</li>
<li class="pr" style="display: block;">
<a href="/moop_cases">兴趣论坛</a>
</li>
</ul>
</div>
<span class="login pr" style="float: right;">
<a href="" class="mr5 color-white" >登录</a>
<em class="vertical-line" ></em>
<a href="/register" class="mr5 color-white">注册</a>
</span>
</div>
-->
<div id="back" >
<div class="logback">
<div class="loginform">
<div class="logtype">
<a class="register">注册</a>
</div>
<s:form action="Register" method="post" autocomplete="on">
<s:textfield name="user.username" cssClass="info" placeholder="请使用用户名进行注册" /><br/>
<s:password name="user.password" cssClass="info" placeholder="设置新密码" id="pwd1" /><br/>
<input type="password" class="info" placeholder="再次输入密码" id="pwd2" required/ onkeyup="validate()"><br/>
<s:textfield name="user.age" label="年龄" />
<s:textfield name="user.email" label="Email地址" />
<a id="tip"><font color='red' style='visibility: hidden;'>12</font></a>
<input type="submit" id="submit" class="sub" onkeyup="" value="注册" />
<script>
function validate() {
var pwd1 = document.getElementById("pwd1").value;
var pwd2 = document.getElementById("pwd2").value;
console.log(pwd1);
if(pwd1 == pwd2) {
document.getElementById("tip").innerHTML="<font color='green'>√</font>";
if(document.getElementById("submit").disabled==null)
console.log("null");
else console.log("not null");
document.getElementById("submit").disabled = false;
document.getElementById("submit").style.background="#FFB90F";
console.log("same");
}else if(pwd2=="")
{
document.getElementById("tip").innerHTML="<font color='red' style='visibility: hidden;'>12</font>";
}
else {
console.log("same");
document.getElementById("tip").innerHTML="<font color='red'>两次密码不相同</font>";
document.getElementById("submit").disabled=true;
document.getElementById("submit").style.background="rgb(235 ,235, 235)";
}
}
</script>
<div class="reg">
<p>注册</p>
<p>忘记密码</p>
</div>
</s:form>
<p style="text-align: center;font-family:cursive;">———其他登录方式 ———</p>
</div>
</div>
<div>
<script type="text/javascript">
var h=document.getElementById("back").clientHeight;
var w=document.getElementById("back").clientWidth;
if(h==null) console.log(0);
console.log(h);
console.log(w);
</script>
</body>
</html>

@ -0,0 +1,250 @@
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'PubLost.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
<style>
body{
background: #FFF8DC;
}
.nav{
position:relative;
width:900px;
margin: 0 auto;
height:100px;
text-align: center;
background: #3CB371;
}
.bord{
position:relative;
width:900px;
margin: 0 auto;
background: white;
}
.nav a{
position: relative;
margin-top: 10px;
color: black;
top:30px;
font-size: 30px;
color: white;
}
select{
height:40px;
width:400px;
border: 1px solid #D4D4D4;
}
.form-control{
height:40px;
width:263px;
border: 1px solid #D4D4D4;
}
.container{
border: 1px solid #DCDCDC;
padding-left: 50px;
padding-top: 30px;
}
input {
height:40px;
border-radius:5px;
border: 1px solid #D4D4D4;
text-indent: 20px;
}
.row{
margin-top: 10px;
}
.lbl{
margin-bottom: 5px;
}
input{
width:800px;
}
.submit{
margin-top: 40px;
}
.in{
width:800px;
}
</style>
<body>
<div class="nav">
<a>————</a><a style="margin: 0 40px;">发布闲置</a><a>————</a>
</div>
<div class="bord">
<div class="container">
<form class="contact" action="#" method="post" id="form" enctype="multipart/form-data" onsubmit="" name="form">
<div class="row clearfix">
<div class="lbl">
<label for="name">
标题</label>
</div>
<div class="ctrl">
<input type="text" id="name" name="lxr" data-required="true" data-validation="text" data-msg="Invalid Name" placeholder="很重要,显示在列表页">
</div>
</div>
<div class="row clearfix">
<div class="lbl">
<label for="email">
简介</label>
</div>
<div class="ctrl">
<textarea class="in" id="message" name="body" rows="6" cols="10" placeholder="描述一下你曾经的宝贝吧~"></textarea>
</div>
</div>
<div class="row clearfix">
<div class="lbl">
<label for="微信号">
标价</label>
</div>
<div class="ctrl">
<input type="text" calss="in" id="phone" name="wx" data-required="true" data-validation="custom" data-msg="Invalid Phone #" placeholder="想多少钱出手呢?">
</div>
</div>
<div class="row clearfix">
<div class="lbl">
<label for="微信号">
原价</label>
</div>
<div class="ctrl">
<input type="text" calss="in" id="phone" name="wx" data-required="true" data-validation="custom" data-msg="Invalid Phone #" placeholder="购买时的价格哦">
</div>
</div>
<div class="row clearfix">
<div class="lbl">
<label for="微信号">
邮费</label>
</div>
<div class="ctrl">
<input type="text"class="in" id="phone" name="choujin" data-required="true" data-validation="custom" data-msg="Invalid Phone #" placeholder="也可以选择商议哦">
</div>
</div>
<div class="row clearfix">
<div class="lbl">
<label for="微信号">
微信号</label>
</div>
<div class="ctrl">
<input type="text"class="in" id="phone" name="choujin" data-required="true" data-validation="custom" data-msg="Invalid Phone #" placeholder="微信号手机号QQ号要至少填一项的">
</div>
</div>
<div class="row clearfix">
<div class="lbl">
<label for="微信号">
手机号</label>
</div>
<div class="ctrl">
<input type="text"class="in" id="phone" name="choujin" data-required="true" data-validation="custom" data-msg="Invalid Phone #" placeholder="微信号手机号QQ号要至少填一项的 ">
</div>
</div>
<div class="row clearfix">
<div class="lbl">
<label for="微信号">
QQ号</label>
</div>
<div class="ctrl">
<input type="text"class="in" id="phone" name="choujin" data-required="true" data-validation="custom" data-msg="Invalid Phone #" placeholder="微信号手机号QQ号要至少填一项的 ">
</div>
</div>
<div class="row clearfix"><div class="lbl">
<label>上传图片:</label></div>
<div class="ctrl">
<div style="display: none" id="myss"> <img id="img" src="">
<div style="height: 20px"></div>
</div>
<input id="file" type="file" onchange="compress()" name="file" style="height:25px;border:none">
<input type="hidden" value="" name="image" id="image">
<script>
// 对图片进行压缩
function compress() {
let fileObj = document.getElementById('file').files[0] ;//上传文件的对象
let reader = new FileReader();
reader.readAsDataURL(fileObj);
reader.onload = function(e) {
let image = new Image() //新建一个img标签还没嵌入DOM节点)
image.src = e.target.result
image.onload = function() {
let canvas = document.createElement('canvas'),
context = canvas.getContext('2d'),
may=300/image.width,
imageWidth =300, //压缩后图片的大小
imageHeight = image.height*may,
data = '';
canvas.width = imageWidth;
canvas.height = imageHeight;
context.drawImage(image, 0, 0, imageWidth, imageHeight);
data = canvas.toDataURL('image/jpeg');
//压缩完成
document.getElementById('img').src = data;
document.getElementById('image').value =data;
var div = document.getElementById("myss");
div.style.setProperty('display','block');
}
}
}
</script>
</div>
</div>
<input type="hidden" value="1577948535" name="senddate">
<input type="hidden" value="1577948535" name="sortrank">
<input type="hidden" value="1577948535" name="arcrank">
<input type="hidden" value="1" name="typeid">
<input type="hidden" value="20" name="channelid">
<input type="hidden" value="1" name="type">
<div class="row clearfix">
<div class="span10 offset2">
<input type="submit" name="submit" class="submit" value="确认发布">
</div>
</div>
<div style="clear: both"></div>
</form>
<div style="clear: both"></div>
</div>
</div>
</body>
</html>

@ -0,0 +1,799 @@
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.5.11/p5.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/matter-js/0.12.0/matter.min.js"></script>
<div class="height-warning"></div>
<style>
/* apply a natural box layout model to all elements, but allowing components to change */
html {
box-sizing: border-box;
}
*,
*:before,
*:after {
box-sizing: inherit;
}
body {
background-image: url('./img/404.png');
background-repeat:repeat-y;
background-attachment:fixed;
background-position:center;
}
canvas {
display: block;
width: 100%;
height: 100%;
}
.height-warning {
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
background: #fee096 url(http://www.jq22.com/tp/6370907262946157816840415.png) center no-repeat;
background-size: auto 40%;
opacity: 0;
transition: opacity 0.4s;
pointer-events: none;
z-index: 10;
}
@media(max-height: 499px) {
.height-warning {
opacity: 1;
}
}
.instructions {
display: none;
line-height: 26px;
}
.instructions a {
color: #7f6e4a;
}
@media(min-width: 768px) {
.instructions {
z-index: 5;
position: absolute;
top: 20px;
left: 20px;
color: #000000;
display: block;
font-family: 'Open Sans', sans-serif;
font-weight: 300;
font-size: 13px;
letter-spacing: 0.010em;
}
}
</style>
<script>
// Module aliases
var Engine = Matter.Engine,
World = Matter.World,
Bodies = Matter.Bodies,
Body = Matter.Body,
Constraint = Matter.Constraint,
Composite = Matter.Composite,
Composites = Matter.Composites,
MouseConstraint = Matter.MouseConstraint,
Mouse = Matter.Mouse,
Events = Matter.Events,
Vertices = Matter.Vertices;
var engine = Engine.create();
var world = engine.world;
var floor;
var cup;
var cupLeft;
var cupRight;
var cupHandle;
var chain = null;
var heatLines = [];
var distanceToCup = 10000;
var distanceFromCup = {size: 500, towards: true};
var firstAnimation = {max: 241, min: 171, percent: 1};
var secondAnimation = {max: 170, min: 100, percent: 0};
var thirdAnimation = {max: 241, min: 100, percent: 0};
// ---------------
// Box Constructor
// ---------------
function Box(x, y, w, h, options) {
this.w = w;
this.h = h;
this.body = Bodies.rectangle(x, y, w, h, options);
World.add(world, this.body);
}
//
function calculateLinks() {
// 77 is the offset from the bottom and the top
// 200 is the amount of space we want between the marshmallow and cup when hanging
var spaceLeft = window.innerHeight - (125 + 100 + 77 + 200);
var links = spaceLeft / 26;
if(links < 3) {
return Math.ceil(3);
} else if(links > 6) {
return Math.ceil(6);
} else {
return Math.ceil(links);
}
}
// ------------
// Create chain
// ------------
function CreateChain(x, y, chainLinks, linkLength) {
this.x = x;
this.y = y;
this.hinges = [];
this.constraints = [];
this.chainLinks = chainLinks;
this.linkLength = linkLength;
}
CreateChain.prototype.remove = function() {
for(let i = 0; i < this.constraints.length; i++) {
World.remove(world, this.constraints[i]);
}
chain = null;
};
CreateChain.prototype.init = function() {
// Create hinges
for(var i = 0; i < this.chainLinks; i++) {
var staticCheck = (i === 0) ? true : false ;
var anchor = new Box(this.x, this.y + (this.linkLength * i), 5, 5, {
isStatic: staticCheck,
collisionFilter: {
category: 0x0001
}
});
this.hinges.push(anchor);
}
// Create links between hinges
for(let i = 0; i < this.hinges.length; i++) {
var constraint;
if(i === this.chainLinks - 1) {
constraint = Constraint.create({
bodyA: this.hinges[i].body,
bodyB: marshmallow.body,
pointB: { x: 0, y: (marshmallow.h/2 * -1) + 12 },
length: this.linkLength,
damping: 0.5,
stiffness: 0.1,
label: 'marshmallowAttachment'
});
} else {
constraint = Constraint.create({
bodyA: this.hinges[i].body,
bodyB: this.hinges[i + 1].body,
length: this.linkLength,
damping: 0.5,
stiffness: 0.1
});
}
this.constraints.push(constraint);
World.add(world, constraint);
}
};
function createChain() {
chain = new CreateChain(width/2, 50, calculateLinks(), 10);
chain.init();
}
// --------------
// Heat particles
// --------------
function HeatParticle(x, y) {
this.position = createVector(x, y);
this.index = 0;
}
HeatParticle.prototype.render = function() {
push();
noStroke();
fill('#f0d38d');
ellipse(this.position.x, this.position.y, this.parent.particleSize);
pop();
};
HeatParticle.prototype.updatePos = function() {
this.position.y -= 0.5;
this.position.x = Math.sin((frameCount + this.index/0.4) / 35) * 10 + this.parent.position.x;
};
HeatParticle.prototype.checkPos = function() {
if(this.position.y < this.parent.position.y - this.parent.height) {
this.reset();
}
};
HeatParticle.prototype.reset = function() {
this.parent.particleIndex += 1;
this.index = this.parent.particleIndex;
this.position.y = this.parent.position.y;
};
// ----------
// Heat lines
// ----------
function HeatLine(x, y, height, particleSize) {
this.position = createVector(x, y);
this.particles = [];
this.particleIndex = 0;
this.height = height;
this.particleSize = particleSize;
}
HeatLine.prototype.render = function() {
for(var i = 0; i < this.particles.length; i++) {
this.particles[i].updatePos();
this.particles[i].render();
this.particles[i].checkPos();
}
};
HeatLine.prototype.init = function() {
var particleCount = this.height / (this.particleSize / 6);
for(var i = 0; i < particleCount; i++) {
this.particleIndex += 1;
var particle = new HeatParticle(this.position.x, this.position.y + (i * this.particleSize / 6));
particle.index = this.particleIndex;
particle.parent = this;
this.particles.push(particle);
}
};
function populateHeatLines() {
heatLines.push(new HeatLine(cup.body.position.x, cup.body.position.y - cup.h/2, 50, 5));
heatLines.push(new HeatLine(cup.body.position.x - 60, cup.body.position.y - cup.h/2, 50, 5));
heatLines.push(new HeatLine(cup.body.position.x + 60, cup.body.position.y - cup.h/2, 50, 5));
for(var i = 0; i < heatLines.length; i++) {
heatLines[i].init();
}
}
// -----------
// Cup + Floor
// -----------
// Change this to an object since we don't need it to construct anything
function CupFloor() {}
CupFloor.prototype.destroy = function() {
World.remove(world, [
floor.body,
cup.body,
cupLeft.body,
cupRight.body,
cupHandle.body,
]);
floor = null;
cup = null;
cupLeft = null;
cupRight = null;
cupHandle = null;
};
CupFloor.prototype.init = function() {
// All of the magic numbers here are to position the elements relative to the marshmallow body
floor = new Box(width/2, height - 31.75, 320, 3.5, {isStatic: true, collisionFilter: {category: 0x0002}});
cup = new Box(width/2, height - 93, 259, 125.5, {isStatic: true, isSensor: true, label: 'cup', collisionFilter: {category: 0x0002}});
cupLeft = new Box(width/2 - 134.5, height - 93, 10, 125.5, {isStatic: true, collisionFilter: {category: 0x0002}});
cupRight = new Box(width/2 + 134.5, height - 93, 10, 125.5, {isStatic: true, collisionFilter: {category: 0x0002}});
cupHandle = new Box(width/2 + 153, height - 114, 31, 60.5, {isStatic: true, collisionFilter: {category: 0x0002}});
};
var cupFloor = new CupFloor();
// ---------
// P5 Resize
// ---------
function windowResized() {
resizeCanvas(windowWidth, windowHeight);
cupFloor.destroy();
cupFloor.init();
heatLines = [];
populateHeatLines();
marshmallow.body.isStatic = true;
marshmallow.body.angle = 0;
if(chain) {
chain.remove();
}
createChain();
marshmallow.body.isStatic = false;
Body.setVelocity(marshmallow.body, {
x: 0,
y: 0
});
marshmallow.angularVelocity = 0;
marshmallow.angularSpeed = 0;
firstAnimation.percent = 0;
secondAnimation.percent = 0;
thirdAnimation.percent = 0;
}
// --------
// P5 Setup
// --------
function setup() {
// Setup the canvas
var canvas = createCanvas(windowWidth, windowHeight);
rectMode(CENTER);
// Setup the mouse events
var mouse = Mouse.create(canvas.elt);
mouse.pixelRatio = pixelDensity();
var mouseConstraint = MouseConstraint.create(engine, {mouse: mouse, constraint: {stiffness: 0.2}});
mouseConstraint.collisionFilter.category = 0x0002;
World.add(world, mouseConstraint);
// Load all of the image assets
marshmallowBody = loadImage('https://s3-us-west-2.amazonaws.com/s.cdpn.io/49240/body.png');
floorImg = loadImage('https://s3-us-west-2.amazonaws.com/s.cdpn.io/49240/ground.png');
cupImg = loadImage('https://s3-us-west-2.amazonaws.com/s.cdpn.io/49240/cup.png');
cupHandleImg = loadImage('https://s3-us-west-2.amazonaws.com/s.cdpn.io/49240/cupHandle.png');
// Create the boundaries
cupFloor.init();
// -----------
// Marshmallow
// -----------
// The marshmallow code below is very messy and should be refactored into a constructor
marshmallow = new Box(width/2, 0, 80, 100, {
density: 0.00001,
label: 'marshmallow',
collisionFilter: {
category: 0x0001,
mask: 0x0002
}
});
createChain();
armLeft = Bodies.circle(width/2 - 40, 300, 5, {
collisionFilter: {
category: 0x0001
},
density: 0.00001
});
armRight = Bodies.circle(width/2 + 40, 300, 5, {
collisionFilter: {
category: 0x0001
},
density: 0.00001
});
var legRight = Bodies.circle(width/2 + 20, 300 + 50, 0.1, {
collisionFilter: {
category: 0x0001
},
density: 0.00001
});
var legLeft = Bodies.circle(width/2 - 20, 300 + 50, 0.1, {
collisionFilter: {
category: 0x0001
},
density: 0.00001
});
constraintArmLeft = Constraint.create({
bodyA: marshmallow.body,
bodyB: armLeft,
pointA: { x: -39, y: -20 },
length: 40,
damping: 0.5,
stiffness: 1,
label: 'limb'
});
constraintArmRight = Constraint.create({
bodyA: marshmallow.body,
bodyB: armRight,
pointA: { x: 39, y: -20 },
length: 40,
damping: 0.5,
stiffness: 1,
label: 'limb'
});
constraintLegRight = Constraint.create({
bodyA: marshmallow.body,
bodyB: legRight,
pointA: { x: 20, y: 49 },
length: 30,
damping: 0.5,
stiffness: 1,
label: 'limb'
});
constraintLegLeft = Constraint.create({
bodyA: marshmallow.body,
bodyB: legLeft,
pointA: { x: -20, y: 49 },
length: 30,
damping: 0.5,
stiffness: 1,
label: 'limb'
});
World.add(world, [
armLeft,
armRight,
legRight,
legLeft,
constraintArmLeft,
constraintArmRight,
constraintLegRight,
constraintLegLeft
]);
// Create and initialize the heat lines
populateHeatLines();
// Start the engine
Engine.run(engine);
}
// -------
// P5 Draw
// -------
function draw() {
clear();
// ----------------------
// Outline matter objects
// ----------------------
// push();
// var bodies = Composite.allBodies(engine.world);
//
// drawingContext.beginPath();
// for (var i = 0; i < bodies.length; i += 1) {
// var vertices = bodies[i].vertices;
// drawingContext.moveTo(vertices[0].x, vertices[0].y);
// for (var j = 1; j < vertices.length; j += 1) {
// drawingContext.lineTo(vertices[j].x, vertices[j].y);
// }
// drawingContext.lineTo(vertices[0].x, vertices[0].y);
// }
//
// drawingContext.lineWidth = 1;
// drawingContext.strokeStyle = '#9e9e9e';
// drawingContext.stroke();
// pop();
if(cup) {
// heatLines
for(var i = 0; i < heatLines.length; i++) {
heatLines[i].render();
}
}
// --------------------
// Draw the marshmallow
// --------------------
push();
translate(marshmallow.body.position.x, marshmallow.body.position.y);
rotate(marshmallow.body.angle);
image(marshmallowBody, marshmallow.w/2 * -1, marshmallow.h/2 * -1, marshmallow.w, marshmallow.h);
pop();
// --------------
// Draw the chain
// --------------
var allConstraints = Composite.allConstraints(engine.world);
var marshmallowAttachment;
// Rope hole at the top of the page
if(chain) {
push();
noStroke();
fill('black');
ellipse(chain.x, chain.y, 25, 6);
pop();
}
for(let i = 0; i < allConstraints.length; i++) {
if(allConstraints[i].label === 'marshmallowAttachment') {
marshmallowAttachment = allConstraints[i];
}
if(allConstraints[i].label !== 'Mouse Constraint') {
push();
strokeWeight(2.5);
line(
allConstraints[i].bodyA.position.x + allConstraints[i].pointA.x,
allConstraints[i].bodyA.position.y + allConstraints[i].pointA.y,
allConstraints[i].bodyB.position.x + allConstraints[i].pointB.x,
allConstraints[i].bodyB.position.y + allConstraints[i].pointB.y
);
pop();
}
}
// Rope attachment on top of head
if(marshmallowAttachment) {
push();
noStroke();
fill('black');
translate(marshmallowAttachment.bodyB.position.x + marshmallowAttachment.pointB.x, marshmallowAttachment.bodyB.position.y + marshmallowAttachment.pointB.y);
rotate(marshmallow.body.angle);
ellipse(0, 0, 10, 3);
pop();
}
// Draw arms
push();
strokeWeight(2.5);
ellipse(armLeft.position.x, armLeft.position.y, 10);
ellipse(armRight.position.x, armRight.position.y, 10);
pop();
// When the arms enter the cup, raise them
if(cup) {
if(marshmallow.body.position.y / height > 0.75 && marshmallow.body.position.x > cup.body.position.x - cup.w/2 && marshmallow.body.position.x < cup.body.position.x + cup.w/2) {
Matter.Body.setVelocity(armLeft, { x: 0, y: -3 });
Matter.Body.setVelocity(armRight, { x: 0, y: -3 });
}
}
// Facial expression
if(cup) {
distanceToCup = Math.sqrt(Math.pow(marshmallow.body.position.x - cup.body.position.x, 2) + Math.pow(marshmallow.body.position.y - cup.body.position.y, 2));
} else {
distanceToCup = 1000;
}
if(distanceToCup <= firstAnimation.max && distanceToCup >= firstAnimation.min) {
firstAnimation.percent = (distanceToCup - firstAnimation.min) / (firstAnimation.max - firstAnimation.min);
}
if(distanceToCup < secondAnimation.max && distanceToCup >= secondAnimation.min) {
secondAnimation.percent = ((distanceToCup - secondAnimation.min) / (secondAnimation.max - secondAnimation.min) - 1) * -1;
}
if(distanceToCup < thirdAnimation.max && distanceToCup >= thirdAnimation.min) {
thirdAnimation.percent = ((distanceToCup - thirdAnimation.min) / (thirdAnimation.max - thirdAnimation.min) - 1) * -1;
}
if(distanceToCup < secondAnimation.max) {
firstAnimation.percent = 0;
}
if(distanceToCup > firstAnimation.max) {
firstAnimation.percent = 1;
secondAnimation.percent = 0;
}
// Marshmallow eye left
push();
translate(marshmallow.body.position.x, marshmallow.body.position.y);
strokeWeight(3);
noFill();
rotate(marshmallow.body.angle);
bezier(
-20, -5 + (secondAnimation.percent * 5) + (secondAnimation.percent * -4),
-20, -5 + (firstAnimation.percent * -7) + (secondAnimation.percent * 5) + (secondAnimation.percent * -4),
-10, -5 + (firstAnimation.percent * -7) + (secondAnimation.percent * -4),
-10, -5 + (secondAnimation.percent * -4)
);
pop();
// Marshmallow eye right
// The second parameter, (secondAnimation.percent * -4), is to move the item up when the animation happens
push();
translate(marshmallow.body.position.x, marshmallow.body.position.y);
strokeWeight(3);
noFill();
rotate(marshmallow.body.angle);
bezier(
20, -5 + (secondAnimation.percent * 5) + (secondAnimation.percent * -4),
20, -5 + (firstAnimation.percent * -7) + (secondAnimation.percent * 5) + (secondAnimation.percent * -4),
10, -5 + (firstAnimation.percent * -7) + (secondAnimation.percent * -4),
10, -5 + (secondAnimation.percent * -4)
);
pop();
// Marshmallow mouth
push();
stroke('#000');
strokeJoin(ROUND);
strokeWeight(2);
fill('black');
translate(marshmallow.body.position.x, marshmallow.body.position.y);
rotate(marshmallow.body.angle);
arc(0, 12 + (thirdAnimation.percent * 5), 16, firstAnimation.percent * 14, 0, 3.14, CHORD);
arc(0, 12 + (thirdAnimation.percent * 5), 16, thirdAnimation.percent * 14, 3.14, 0, CHORD);
pop();
// ---
// Cup
// ---
if(cup) {
push();
noStroke();
fill('#fee096');
translate(cup.body.position.x, cup.body.position.y);
rect(0, 60, cup.w + 20, cup.h + 100);
pop();
push();
translate(floor.body.position.x, floor.body.position.y);
image(floorImg, floor.w/2 * -1, floor.h/2 * -1, floor.w, floor.h);
pop();
push();
translate(cup.body.position.x, cup.body.position.y);
image(cupImg, (cup.w/2 * -1) - 10, cup.h/2 * -1, cup.w + 20, cup.h);
pop();
push();
noFill();
noStroke();
translate(cupHandle.body.position.x, cupHandle.body.position.y);
image(cupHandleImg, cupHandle.w/2 * -1, cupHandle.h/2 * -1, cupHandle.w, cupHandle.h);
pop();
// Outer eye Left
push();
noStroke();
fill('white');
translate(cup.body.position.x - 76.5, cup.body.position.y - 5.5);
ellipse(0, 0, 34);
rotate(thirdAnimation.percent * 1.3);
stroke('#812d29');
strokeWeight(3.5);
line(-24, 2, 2, -24);
pop();
// Outer eye right
push();
noStroke();
fill('white');
translate(cup.body.position.x + 76.5, cup.body.position.y - 5.5);
ellipse(0, 0, 34);
rotate(thirdAnimation.percent * -1.3);
stroke('#812d29');
strokeWeight(3.5);
line(24, -2, -2, -24);
pop();
// Cheek right
push();
noStroke();
fill('#f6554f');
translate(cup.body.position.x + 76.5, cup.body.position.y);
ellipse(0, 10 + thirdAnimation.percent * 3, 34, 10);
pop();
// Cheek left
push();
noStroke();
fill('#ff635b');
translate(cup.body.position.x - 76.5, cup.body.position.y);
ellipse(0, 10 + thirdAnimation.percent * 3, 34, 10);
pop();
// Blush left
push();
noStroke();
fill('#ff847e');
translate(cup.body.position.x - 76.5, cup.body.position.y);
ellipse(-20, 18.5, 18.5, 11);
pop();
// Blush right
push();
noStroke();
fill('#ff635b');
translate(cup.body.position.x + 76.5, cup.body.position.y);
ellipse(20, 18.5, 18.5, 11);
pop();
// Inner eyes
push();
noStroke();
fill('black');
translate(cup.body.position.x, cup.body.position.y);
ellipse(
-76.5 + (marshmallow.body.position.x / width - 0.5) * 10,
-7 + (marshmallow.body.position.y / height - 0.5) * 10,
9.5
);
ellipse(
76.5 + (marshmallow.body.position.x / width - 0.5) * 10,
-7 + (marshmallow.body.position.y / height - 0.5) * 10,
9.5
);
pop();
// Cup mouth
push();
stroke('#812d29');
strokeJoin(ROUND);
strokeWeight(2);
fill('#812d29');
translate(cup.body.position.x, cup.body.position.y);
rotate(cup.body.angle);
arc(0, -10 + (thirdAnimation.percent * 18), 46, firstAnimation.percent * 44, 0, 3.14, CHORD);
arc(0, -10 + (thirdAnimation.percent * 18), 46, thirdAnimation.percent * 44, 3.14, 0, CHORD);
pop();
}
}
</script>

@ -0,0 +1,28 @@
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'LostAndFound.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
This is my JSP page. <br>
</body>
</html>

@ -0,0 +1,3 @@
Manifest-Version: 1.0
Class-Path:

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.Userinfo" table="userinfo" catalog="postgres">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="identity" />
</id>
<property name="username" type="java.lang.String">
<column name="username" length="45" />
</property>
<property name="password" type="java.lang.String">
<column name="password" length="45" not-null="true" />
</property>
<property name="age" type="java.lang.Integer">
<column name="age" />
</property>
<property name="email" type="java.lang.String">
<column name="email" length="45" unique="true" />
</property>
</class>
</hibernate-mapping>

@ -0,0 +1,38 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.Xz" table="xz" catalog="postgres">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="identity" />
</id>
<property name="title" type="java.lang.String">
<column name="title" length="45" not-null="true" />
</property>
<property name="desc" type="java.lang.String">
<column name="desc" length="45" />
</property>
<property name="sep" type="java.lang.Integer">
<column name="sep" not-null="true" />
</property>
<property name="orp" type="java.lang.Integer">
<column name="orp" />
</property>
<property name="postage" type="java.lang.String">
<column name="postage" length="45" />
</property>
<property name="wx" type="java.lang.String">
<column name="wx" length="45" />
</property>
<property name="tel" type="java.lang.String">
<column name="tel" length="45" />
</property>
<property name="qq" type="java.lang.String">
<column name="qq" length="45" />
</property>
</class>
</hibernate-mapping>

@ -0,0 +1,30 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration>
<session-factory>
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="connection.url">
jdbc:mysql://localhost:3306/postgres
</property>
<property name="connection.username">root</property>
<property name="connection.password">3141592653</property>
<property name="connection.driver_class">
com.mysql.jdbc.Driver
</property>
<property name="myeclipse.connection.profile">
postgres
</property>
<property name="connection.autocommit">true</property>
<mapping resource="com/Userinfo.hbm.xml" />
<mapping resource="com/Xz.hbm.xml" />
</session-factory>
</hibernate-configuration>

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<constant name="struts.devMode" value="false" />
<package name="basicstruts2" extends="struts-default">
<action name="registerInput">
<result>/register.jsp</result></action>
<action name="loginInput">
<result>/login.jsp</result></action>
<action name="Register" class="RegisterAction" method="register">
<result name="success">/success.jsp</result>
<result name="error">/error.jsp</result></action>
<action name="Login" class="RegisterAction" method="login">
<result name="success">/welcome.jsp</result>
<result name="error">/success.jsp</result></action>
<action name="Fbxz" class="SubmitXzAction" method="submit">
<result name="success">/welcome.jsp</result>
<result name="error">/success.jsp</result></action>
</package>
</struts>

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name></display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping></web-app>

@ -0,0 +1,231 @@
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'PubLost.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
<style>
body{
background: #FFF8DC;
}
.nav{
position:relative;
width:900px;
margin: 0 auto;
height:100px;
text-align: center;
background: #3CB371;
}
.bord{
position:relative;
width:900px;
margin: 0 auto;
background: white;
}
.nav a{
position: relative;
margin-top: 10px;
color: black;
top:30px;
font-size: 30px;
color: white;
}
select{
height:40px;
width:400px;
border: 1px solid #D4D4D4;
}
.form-control{
height:40px;
width:263px;
border: 1px solid #D4D4D4;
}
.container{
border: 1px solid #DCDCDC;
padding-left: 50px;
padding-top: 30px;
}
input {
height:40px;
border-radius:5px;
border: 1px solid #D4D4D4;
text-indent: 20px;
}
.row{
margin-top: 10px;
}
.lbl{
margin-bottom: 5px;
}
input{
width:800px;
}
.submit{
margin-top: 40px;
}
.in{
width:800px;
}
</style>
<body>
<div class="nav">
<a>————</a><a style="margin: 0 40px;">发布求购</a><a>————</a>
</div>
<div class="bord">
<div class="container">
<form class="contact" action="#" method="post" id="form" enctype="multipart/form-data" onsubmit="" name="form">
<div class="row clearfix">
<div class="lbl">
<label for="name">
标题</label>
</div>
<div class="ctrl">
<input type="text" id="name" name="lxr" data-required="true" data-validation="text" data-msg="Invalid Name" placeholder="很重要,显示在列表页">
</div>
</div>
<div class="row clearfix">
<div class="lbl">
<label for="email">
简介</label>
</div>
<div class="ctrl">
<textarea class="in" id="message" name="body" rows="6" cols="10" placeholder="让大家更清楚地了解你的需求吧~"></textarea>
</div>
</div>
<div class="row clearfix">
<div class="lbl">
<label for="微信号">
可接受价格</label>
</div>
<div class="ctrl">
<input type="text" calss="in" id="phone" name="wx" data-required="true" data-validation="custom" data-msg="Invalid Phone #" placeholder="想多少钱入手呢?">
</div>
</div>
<div class="row clearfix">
<div class="lbl">
<label for="微信号">
微信号</label>
</div>
<div class="ctrl">
<input type="text"class="in" id="phone" name="choujin" data-required="true" data-validation="custom" data-msg="Invalid Phone #" placeholder="微信号手机号QQ号要至少填一项的">
</div>
</div>
<div class="row clearfix">
<div class="lbl">
<label for="微信号">
手机号</label>
</div>
<div class="ctrl">
<input type="text"class="in" id="phone" name="choujin" data-required="true" data-validation="custom" data-msg="Invalid Phone #" placeholder="微信号手机号QQ号要至少填一项的 ">
</div>
</div>
<div class="row clearfix">
<div class="lbl">
<label for="微信号">
QQ号</label>
</div>
<div class="ctrl">
<input type="text"class="in" id="phone" name="choujin" data-required="true" data-validation="custom" data-msg="Invalid Phone #" placeholder="微信号手机号QQ号要至少填一项的 ">
</div>
</div>
<div class="row clearfix"><div class="lbl">
<label>上传图片:</label></div>
<div class="ctrl">
<div style="display: none" id="myss"> <img id="img" src="">
<div style="height: 20px"></div>
</div>
<input id="file" type="file" onchange="compress()" name="file" style="height:25px;border:none">
<input type="hidden" value="" name="image" id="image">
<script>
// 对图片进行压缩
function compress() {
let fileObj = document.getElementById('file').files[0] ;//上传文件的对象
let reader = new FileReader();
reader.readAsDataURL(fileObj);
reader.onload = function(e) {
let image = new Image() //新建一个img标签还没嵌入DOM节点)
image.src = e.target.result
image.onload = function() {
let canvas = document.createElement('canvas'),
context = canvas.getContext('2d'),
may=300/image.width,
imageWidth =300, //压缩后图片的大小
imageHeight = image.height*may,
data = '';
canvas.width = imageWidth;
canvas.height = imageHeight;
context.drawImage(image, 0, 0, imageWidth, imageHeight);
data = canvas.toDataURL('image/jpeg');
//压缩完成
document.getElementById('img').src = data;
document.getElementById('image').value =data;
var div = document.getElementById("myss");
div.style.setProperty('display','block');
}
}
}
</script>
</div>
</div>
<input type="hidden" value="1577948535" name="senddate">
<input type="hidden" value="1577948535" name="sortrank">
<input type="hidden" value="1577948535" name="arcrank">
<input type="hidden" value="1" name="typeid">
<input type="hidden" value="20" name="channelid">
<input type="hidden" value="1" name="type">
<div class="row clearfix">
<div class="span10 offset2">
<input type="submit" name="submit" class="submit" value="确认发布">
</div>
</div>
<div style="clear: both"></div>
</form>
<div style="clear: both"></div>
</div>
</div>
</body>
</html>

@ -0,0 +1,256 @@
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'PubLost.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
<style>
body{
background: #FFF8DC;
}
.nav{
position:relative;
width:900px;
margin: 0 auto;
height:100px;
text-align: center;
background: #3CB371;
}
.bord{
position:relative;
width:900px;
margin: 0 auto;
background: white;
}
.nav a{
position: relative;
margin-top: 10px;
color: black;
top:30px;
font-size: 30px;
color: white;
}
select{
height:40px;
width:400px;
border: 1px solid #D4D4D4;
}
.form-control{
height:40px;
width:263px;
border: 1px solid #D4D4D4;
}
.container{
border: 1px solid #DCDCDC;
padding-left: 50px;
padding-top: 30px;
}
input {
height:40px;
border-radius:5px;
border: 1px solid #D4D4D4;
text-indent: 20px;
}
.row{
margin-top: 10px;
}
.lbl{
margin-bottom: 5px;
}
input{
width:800px;
}
.submit{
margin-top: 40px;
}
.in{
width:800px;
}
</style>
<body>
<div class="nav">
<a>————</a><a style="margin: 0 40px;">发布闲置</a><a>————</a>
</div>
<div class="bord">
<div class="container">
<s:form class="contact" action="Fbxz" method="post" id="form" enctype="multipart/form-data" onsubmit="" name="form">
<div class="row clearfix">
<div class="lbl">
<label for="name">
标题</label>
</div>
<div class="ctrl">
<s:textfield name="xz.title" data-required="true" data-validation="text" data-msg="Invalid Name" placeholder="很重要,显示在列表页" />
</div>
</div>
<div class="row clearfix">
<div class="lbl">
<label for="email">
简介</label>
</div>
<div class="ctrl">
<s:textfield name="xz.desc" cssClass="in" rows="6" cols="10" placeholder="描述一下你曾经的宝贝吧~" />
</div>
</div>
<div class="row clearfix">
<div class="lbl">
<label for="微信号">
标价</label>
</div>
<div class="ctrl">
<s:textarea cssClass="in" name="xz.sep" data-required="true" data-validation="custom" data-msg="Invalid Phone #" placeholder="想多少钱出手呢?"/>
</div>
</div>
<div class="row clearfix">
<div class="lbl">
<label for="微信号">
原价</label>
</div>
<div class="ctrl">
<s:textarea cssClass="in" name="xz.orp" data-required="true" data-validation="custom" data-msg="Invalid Phone #" placeholder="购买时的价格哦"/>
</div>
</div>
<div class="row clearfix">
<div class="lbl">
<label for="微信号">
邮费</label>
</div>
<div class="ctrl">
<s:textarea cssClass="in" id="phone" name="xz.postage" data-required="true" data-validation="custom" data-msg="Invalid Phone #" placeholder="也可以选择商议哦"/>
</div>
</div>
<div class="row clearfix">
<div class="lbl">
<label for="微信号">
微信号</label>
</div>
<div class="ctrl">
<s:textarea cssClass="in" id="phone" name="xz.wx" data-required="true" data-validation="custom" data-msg="Invalid Phone #" placeholder="微信号手机号QQ号要至少填一项的"/>
</div>
</div>
<div class="row clearfix">
<div class="lbl">
<label for="微信号">
手机号</label>
</div>
<div class="ctrl">
<s:textarea cssClass="in" id="phone" name="xz.tel" data-required="true" data-validation="custom" data-msg="Invalid Phone #" placeholder="微信号手机号QQ号要至少填一项的 "/>
</div>
</div>
<div class="row clearfix">
<div class="lbl">
<label for="微信号">
QQ号</label>
</div>
<div class="ctrl">
<s:textarea cssClass="in" id="phone" name="xz.qq" data-required="true" data-validation="custom" data-msg="Invalid Phone #" placeholder="微信号手机号QQ号要至少填一项的 "/>
</div>
</div>
<!--
<div class="row clearfix"><div class="lbl">
<label>上传图片:</label></div>
<div class="ctrl">
<div style="display: none" id="myss"> <img id="img" src="">
<div style="height: 20px"></div>
</div>
<input id="file" type="file" onchange="compress()" name="file" style="height:25px;border:none">
<input type="hidden" value="" name="image" id="image">
<script>
// 对图片进行压缩
function compress() {
let fileObj = document.getElementById('file').files[0] ;//上传文件的对象
let reader = new FileReader();
reader.readAsDataURL(fileObj);
reader.onload = function(e) {
let image = new Image() //新建一个img标签还没嵌入DOM节点)
image.src = e.target.result
image.onload = function() {
let canvas = document.createElement('canvas'),
context = canvas.getContext('2d'),
may=300/image.width,
imageWidth =300, //压缩后图片的大小
imageHeight = image.height*may,
data = '';
canvas.width = imageWidth;
canvas.height = imageHeight;
context.drawImage(image, 0, 0, imageWidth, imageHeight);
data = canvas.toDataURL('image/jpeg');
//压缩完成
document.getElementById('img').src = data;
document.getElementById('image').value =data;
var div = document.getElementById("myss");
div.style.setProperty('display','block');
}
}
}
</script>
</div>
</div>
<input type="hidden" value="1577948535" name="senddate">
<input type="hidden" value="1577948535" name="sortrank">
<input type="hidden" value="1577948535" name="arcrank">
<input type="hidden" value="1" name="typeid">
<input type="hidden" value="20" name="channelid">
<input type="hidden" value="1" name="type">
-->
<div class="row clearfix">
<div class="span10 offset2">
<s:submit cssClass="submit" value="确认发布" />
</div>
</div>
<div style="clear: both"></div>
</s:form>
<div style="clear: both"></div>
</div>
</div>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 207 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 872 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 259 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 468 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 481 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 483 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 712 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 KiB

@ -0,0 +1,18 @@
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Hello World</title>
</head>
<body>
<h1>Hello World From Struts2</h1>
<form action="hello">
<label for="name">Please enter your name</label><br/>
<input type="text" name="name"/>
<input type="submit" value="Say Hello"/>
</form>
</body>
</html>

@ -0,0 +1,16 @@
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head><title>登录页面</title></head>
<body>
<p>请输入用户名和密码</p>
<s:form action="Login">
<s:textfield name="user.username" label="用户名"
tooltip="输入用户名" labelposition="left" />
<s:password name="user.password" label="密码"
tooltip="输入密码" labelposition="left" />
<s:submit value="登录" align="center" />
</s:form>
</body></html>

@ -0,0 +1,28 @@
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'market.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
This is my JSP page. <br>
</body>
</html>

@ -0,0 +1,18 @@
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head><title>用户注册</title></head>
<body>
<p>注册一个新用户</p>
<s:form action="Register">
<s:actionerror /><s:fielderror />
<s:textfield name="user.username" label="用户名" />
<s:password name="user.password" label="口令" />
<s:textfield name="user.age" label="年龄" />
<s:textfield name="user.email" label="Email地址" />
<s:submit value="登录" />
</s:form>
</body></html>

@ -0,0 +1,9 @@
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head><title>注册成功页面</title></head>
<body>
<p>注册成功</p>
<s:property value="user" />
<p><a href="<s:url action='index' />" >返回首页</a></p>
</body></html>

@ -0,0 +1,7 @@
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<html>
<head><title>登陆成功</title></head>
<body>
<p align="center"><font color="#000080" size="5">欢迎登陆本系统</font></p>
</body></html>

@ -0,0 +1,70 @@
import java.util.List;
import javax.persistence.Entity;
import javax.persistence.ManyToOne;
import org.hibernate.Transaction;
import org.hibernate.Query;
import org.hibernate.Session;
import com.HibernateSessionFactory;
import com.Userinfo;
import com.opensymphony.xwork2.ActionSupport;
@Entity
public class RegisterAction extends ActionSupport {
@ManyToOne
private Userinfo user;
public Userinfo getUser() {
return user;
}
public void setUser(Userinfo user) {
this.user = user;
}
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
return SUCCESS;
}
public String register() throws Exception{
try{
Session session=HibernateSessionFactory.getSession();
Transaction tx=session.beginTransaction();
session.save(user);
tx.commit();
return SUCCESS;
}catch(Exception e){
e.printStackTrace();
HibernateSessionFactory.getSession().close();
return ERROR;
}
}
public String login() throws Exception{
try{
Session session=HibernateSessionFactory.getSession();
Transaction tx=session.beginTransaction();
// Query query=session.createQuery("from Userinfo where username=:uname");
Query query = session.createQuery("from Userinfo where username=:uname and password=:upassword");
query.setParameter("uname", user.getUsername());
query.setParameter("upassword", user.getPassword());
List list=query.list();
tx.commit();
if(list.size()>0){
return SUCCESS;
}else
return ERROR;
}catch(Exception e){
e.printStackTrace();
HibernateSessionFactory.getSession().close();
return ERROR;
}
}
}

@ -0,0 +1,40 @@
import org.hibernate.Session;
import org.hibernate.Transaction;
import com.Xz;
import com.HibernateSessionFactory;
import com.opensymphony.xwork2.ActionSupport;
public class SubmitXzAction extends ActionSupport {
private Xz xz;
public Xz getXz() {
return xz;
}
public void setXz(Xz xz) {
this.xz = xz;
}
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
return SUCCESS;
}
public String submit() throws Exception{
try{
Session session=HibernateSessionFactory.getSession();
Transaction tx=session.beginTransaction();
session.save(xz);
tx.commit();
return SUCCESS;
}catch(Exception e){
e.printStackTrace();
HibernateSessionFactory.getSession().close();
return ERROR;
}
}
}

@ -0,0 +1,92 @@
package com;
/**
* AbstractUserinfo entity provides the base persistence definition of the
* Userinfo entity. @author MyEclipse Persistence Tools
*/
public abstract class AbstractUserinfo implements java.io.Serializable {
// Fields
private Integer id;
private String username;
private String password;
private Integer age;
private String email;
// Constructors
/** default constructor */
public AbstractUserinfo() {
}
/** minimal constructor */
public AbstractUserinfo(Integer id, String password) {
this.id = id;
this.password = password;
}
/** full constructor */
/*public AbstractUserinfo(Integer id, String username, String password,
Integer age, String email) {
this.id = id;
this.username = username;
this.password = password;
this.age = age;
this.email = email;
}*/
public AbstractUserinfo( String username, String password,
Integer age, String email) {
//this.id = id;
this.username = username;
this.password = password;
this.age = age;
this.email = email;
}
// Property accessors
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
System.out.println(this.username);
return this.username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
System.out.println(this.password);
return this.password;
}
public void setPassword(String password) {
this.password = password;
}
public Integer getAge() {
return this.age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getEmail() {
return this.email;
}
public void setEmail(String email) {
this.email = email;
}
}

@ -0,0 +1,123 @@
package com;
/**
* AbstractXz entity provides the base persistence definition of the Xz entity. @author
* MyEclipse Persistence Tools
*/
public abstract class AbstractXz implements java.io.Serializable {
// Fields
// private Integer id;
private String title;
private String desc;
private Integer sep;
private Integer orp;
private String postage;
private String wx;
private String tel;
private String qq;
// Constructors
/** default constructor */
public AbstractXz() {
}
/** minimal constructor */
public AbstractXz(String title, Integer sep) {
// this.id=id;
this.title = title;
this.sep = sep;
}
/** full constructor */
public AbstractXz(String title, String desc, Integer sep, Integer orp,
String postage, String wx, String tel, String qq) {
this.title = title;
this.desc = desc;
this.sep = sep;
this.orp = orp;
this.postage = postage;
this.wx = wx;
this.tel = tel;
this.qq = qq;
}
// Property accessors
/* public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}*/
public String getTitle() {
return this.title;
}
public void setTitle(String title) {
this.title = title;
}
public String getDesc() {
return this.desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public Integer getSep() {
return this.sep;
}
public void setSep(Integer sep) {
this.sep = sep;
}
public Integer getOrp() {
return this.orp;
}
public void setOrp(Integer orp) {
this.orp = orp;
}
public String getPostage() {
return this.postage;
}
public void setPostage(String postage) {
this.postage = postage;
}
public String getWx() {
return this.wx;
}
public void setWx(String wx) {
this.wx = wx;
}
public String getTel() {
return this.tel;
}
public void setTel(String tel) {
this.tel = tel;
}
public String getQq() {
return this.qq;
}
public void setQq(String qq) {
this.qq = qq;
}
}

@ -0,0 +1,120 @@
package com;
import javax.persistence.Entity;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.cfg.Configuration;
/**
* Configures and provides access to Hibernate sessions, tied to the
* current thread of execution. Follows the Thread Local Session
* pattern, see {@link http://hibernate.org/42.html }.
*/
@Entity
public class HibernateSessionFactory {
/**
* Location of hibernate.cfg.xml file.
* Location should be on the classpath as Hibernate uses
* #resourceAsStream style lookup for its configuration file.
* The default classpath location of the hibernate config file is
* in the default package. Use #setConfigFile() to update
* the location of the configuration file for the current session.
*/
private static String CONFIG_FILE_LOCATION = "/hibernate.cfg.xml";
private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();
private static Configuration configuration = new Configuration();
private static org.hibernate.SessionFactory sessionFactory;
private static String configFile = CONFIG_FILE_LOCATION;
static {
try {
configuration.configure(configFile);
sessionFactory = configuration.buildSessionFactory();
} catch (Exception e) {
System.err
.println("%%%% Error Creating SessionFactory %%%%");
e.printStackTrace();
}
}
private HibernateSessionFactory() {
}
/**
* Returns the ThreadLocal Session instance. Lazy initialize
* the <code>SessionFactory</code> if needed.
*
* @return Session
* @throws HibernateException
*/
public static Session getSession() throws HibernateException {
Session session = (Session) threadLocal.get();
if (session == null || !session.isOpen()) {
if (sessionFactory == null) {
rebuildSessionFactory();
}
session = (sessionFactory != null) ? sessionFactory.openSession()
: null;
threadLocal.set(session);
}
return session;
}
/**
* Rebuild hibernate session factory
*
*/
public static void rebuildSessionFactory() {
try {
configuration.configure(configFile);
sessionFactory = configuration.buildSessionFactory();
} catch (Exception e) {
System.err
.println("%%%% Error Creating SessionFactory %%%%");
e.printStackTrace();
}
}
/**
* Close the single hibernate session instance.
*
* @throws HibernateException
*/
public static void closeSession() throws HibernateException {
Session session = (Session) threadLocal.get();
threadLocal.set(null);
if (session != null) {
session.close();
}
}
/**
* return session factory
*
*/
public static org.hibernate.SessionFactory getSessionFactory() {
return sessionFactory;
}
/**
* return session factory
*
* session factory will be rebuilded in the next call
*/
public static void setConfigFile(String configFile) {
HibernateSessionFactory.configFile = configFile;
sessionFactory = null;
}
/**
* return hibernate configuration
*
*/
public static Configuration getConfiguration() {
return configuration;
}
}

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.Userinfo" table="userinfo" catalog="postgres">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="identity" />
</id>
<property name="username" type="java.lang.String">
<column name="username" length="45" />
</property>
<property name="password" type="java.lang.String">
<column name="password" length="45" not-null="true" />
</property>
<property name="age" type="java.lang.Integer">
<column name="age" />
</property>
<property name="email" type="java.lang.String">
<column name="email" length="45" unique="true" />
</property>
</class>
</hibernate-mapping>

@ -0,0 +1,33 @@
package com;
import javax.persistence.Entity;
/**
* Userinfo entity. @author MyEclipse Persistence Tools
*/
@Entity
public class Userinfo extends AbstractUserinfo implements java.io.Serializable {
// Constructors
/** default constructor */
public Userinfo() {
}
/** minimal constructor */
public Userinfo(Integer id, String password) {
super(id, password);
}
/** full constructor */
/* public Userinfo(Integer id, String username, String password, Integer age,
String email) {
super(id, username, password, age, email);
}*/
public Userinfo( String username, String password, Integer age,
String email) {
super(username, password, age, email);
}
}

@ -0,0 +1,38 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.Xz" table="xz" catalog="postgres">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="identity" />
</id>
<property name="title" type="java.lang.String">
<column name="title" length="45" not-null="true" />
</property>
<property name="desc" type="java.lang.String">
<column name="desc" length="45" />
</property>
<property name="sep" type="java.lang.Integer">
<column name="sep" not-null="true" />
</property>
<property name="orp" type="java.lang.Integer">
<column name="orp" />
</property>
<property name="postage" type="java.lang.String">
<column name="postage" length="45" />
</property>
<property name="wx" type="java.lang.String">
<column name="wx" length="45" />
</property>
<property name="tel" type="java.lang.String">
<column name="tel" length="45" />
</property>
<property name="qq" type="java.lang.String">
<column name="qq" length="45" />
</property>
</class>
</hibernate-mapping>

@ -0,0 +1,25 @@
package com;
/**
* Xz entity. @author MyEclipse Persistence Tools
*/
public class Xz extends AbstractXz implements java.io.Serializable {
// Constructors
/** default constructor */
public Xz() {
}
/** minimal constructor */
public Xz( String title, Integer sep) {
super(title, sep);
}
/** full constructor */
public Xz(String title, String desc, Integer sep, Integer orp,
String postage, String wx, String tel, String qq) {
super(title, desc, sep, orp, postage, wx, tel, qq);
}
}

@ -0,0 +1,30 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration>
<session-factory>
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="connection.url">
jdbc:mysql://localhost:3306/postgres
</property>
<property name="connection.username">root</property>
<property name="connection.password">3141592653</property>
<property name="connection.driver_class">
com.mysql.jdbc.Driver
</property>
<property name="myeclipse.connection.profile">
postgres
</property>
<property name="connection.autocommit">true</property>
<mapping resource="com/Userinfo.hbm.xml" />
<mapping resource="com/Xz.hbm.xml" />
</session-factory>
</hibernate-configuration>

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<constant name="struts.devMode" value="false" />
<package name="basicstruts2" extends="struts-default">
<action name="registerInput">
<result>/register.jsp</result></action>
<action name="loginInput">
<result>/login.jsp</result></action>
<action name="Register" class="RegisterAction" method="register">
<result name="success">/success.jsp</result>
<result name="error">/error.jsp</result></action>
<action name="Login" class="RegisterAction" method="login">
<result name="success">/welcome.jsp</result>
<result name="error">/success.jsp</result></action>
<action name="Fbxz" class="SubmitXzAction" method="submit">
<result name="success">/welcome.jsp</result>
<result name="error">/success.jsp</result></action>
</package>
</struts>
Loading…
Cancel
Save