1.1 用户/管理员登录注册
网页用于注册,输入http://localhost:8080/ecywz/login.html进入用户注册模块,右上角有5个按钮,点击更换动态背景,如图5-1;输入手机号,并过去验证码,有个手机号不正确,会返回输入放不是手机号。在成功获取手机号并发送的时候,发送验证码的按钮会进入60秒倒计时并且禁用,验证码会存入临时验证码数据库,包括创建时间和对应手机号,如图5-2,如果在获取后更换手机号,输入的验证码无效,会返回手机号错误,验证码同理。
图 5-1 网页注册
图 5-2 验证码倒计时
登录和注册模块类似,点击下面两个字体即可,管理员在右上角切换,有两个一个是管理员注册,一个是管理员登录,注册是为了方便老板注册新管理员而设置的,管理员只能进入登录模块,如图5-3所示:
图5-3 网页登录
1.2 主页模块
主页模块是二次元系统的主心骨,它是让二次元系统的主要部分,主页的内容是用iframe小模块组成的,而里面的内容是js根据sql传回来的商量,进行for循环直接创造元素,数量是30,但由于资源不好找,无法找到30个动漫,而且一个动漫有5到20个视频,只能演示3个如图5-4所示:
图 5-4 主页
里面的分类按钮也是会根据传回来的数量进行无限创建,同时增加主页的长度,与刚刚进入不同,主页只能容纳30个,整体使用的是透明风格,可以让画面更加好看和整洁,点击搜索会出现搜索模块,左上角也会显示搜索的内容,同意是无线创建。如图5-5所示:
图5-5 搜索功能
如果搜索的内容不在资源库目录里,会返回查无结果,如图5-6所示:
图 5-6 搜索无的反馈
在点击动漫的图片或者文字的时候,会进入播放模块,省去了介绍的模块,这个参考了哔哩哔哩的处理方式,让繁琐的步骤减少,在视频的右侧是更换视频的按钮,这个会根据动漫的最新集数创建都是的按钮,同时显示现在多少集和最新多少集,如图5-7、5-8所示:
图5-7 播放模块1
图5-8 播放模块2
1.3 个人模块
个人模块是点击主页的头像和名字进入的,如果没有登录,主页上不会有头像和名字,只有登录和注册;在进入个人模块后可以查看信息,手机号,头像等等,如图5-9、5-10所示:
图5-9 主页
图 5-10 个人模块
因为头像有严格要求,想要比例为1:1不然会显示错误,左边的图片剪切就有了很大作用,进去后点击左边的上传按钮,在点击右边的1:1,然后进行下载,原本想在点击更换头像后自动进入,并且把剪辑后的图片上传到数据库,但是弄不出来,只能退而求其次。如图5-11所示:
图5-11 图片剪切
部分代码:
//60秒倒计时
var countdownHandler = function(){
var $button = $(".code-b");
var number = 60;
var countdown = function(){
if (number == 0) {
$button.attr("disabled",false);
$button.html("发送验证码");
number = 60;
return;
} else {
$button.attr("disabled",true);
$button.html(number + "秒 重新发送");
number--;
}
setTimeout(countdown,1000);
};
setTimeout(countdown,1000);
}
package Dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import javaBean.jcxxbean;
import dbConnection.dbConnection;
public class yzmdao {
Connection conn = null;// 塞在外面 全局
PreparedStatement pre = null;
ResultSet rs=null;
// 验证码判断
public int insertyzm(jcxxbean u) throws SQLException {
int insert=0;
try {
conn = dbConnection.getConnection();
String sql2="select * from yzm where 手机='"+u.getSj()+"'";
pre = conn.prepareStatement(sql2);
if(pre.executeQuery().next()){
System.out.println(pre.executeQuery().next());
String sql3="update yzm set 验证码='"+u.getCode()+"' , 创建时间='"+u.getCreateTime()+"' where 手机='"+u.getSj()+"'";
pre = conn.prepareStatement(sql3);
int m=pre.executeUpdate();
System.out.println("zw2");
if(m>0){
System.out.println("zw3");
insert=1;
}
}else{
System.out.println(pre.executeQuery().next());
String sql = "insert into yzm (验证码,手机,创建时间)values(?,?,?)";
pre = conn.prepareStatement(sql);
pre.setString(1,u.getCode());
pre.setString(2, u.getSj());
pre.setLong(3, u.getCreateTime());
int i = pre.executeUpdate();
System.out.println("zw4");
if(i>0){
System.out.println("zw5");
insert=1;
}
}
} catch (Exception e) {
e.printStackTrace();
}
finally {
try {
dbConnection.dbClose(conn, pre, null);
} catch (Exception e) {
e.printStackTrace();
}
}
return insert;
}
//验证码删除
public int yzmdate(jcxxbean x) throws SQLException {
int yzmdate=0;
try {
conn = dbConnection.getConnection();
String sql="delete from yzm where 手机='"+x.getSj()+"'";
pre = conn.prepareStatement(sql);
int m=pre.executeUpdate();
if(m>0){
yzmdate=1;
}
}catch(Exception e) {
e.printStackTrace();
}
finally {
try {
dbConnection.dbClose(conn, pre, null);
} catch (Exception e) {
e.printStackTrace();
}
}
return yzmdate;
}
//验证码获取
public List<jcxxbean> yzmpd(String sjh){
List<jcxxbean> list=new ArrayList<jcxxbean>();
jcxxbean jcbn;
try {
conn=dbConnection.getConnection();
String sql="select * from yzm where 手机='"+sjh+"'";
pre=conn.prepareStatement(sql);
rs=pre.executeQuery();
while(rs.next()){
jcbn=new jcxxbean();
jcbn.setSj(rs.getString("手机"));
jcbn.setCode(rs.getString("验证码"));
jcbn.setCreateTime(rs.getLong("创建时间"));
list.add(jcbn);
}
}
catch (Exception g) {
g.printStackTrace();
}
finally {
try {
dbConnection.dbClose(conn, pre, null);
} catch (Exception e) {
e.printStackTrace();
}
}
return list;
}
}
总结:功能许多尚未开发,安全性并不完善,
若有大佬看到希望回答我的几个疑惑:
1、在播放视频的时候,发现chome支持部分音频和视频,而有的视频格式支持,音频不正常,导致播放没有声音,有什么解决方法吗
2、在上传图片的时候发现上传到数据库一个图片,存储太大,所以选择上传图片的相对地址,但是在java中下载到的是猫这个文件夹的里面,不好提取,有什么好的解决方法吗