(7)基于hadoop的简单网盘应用实现3
一、login.jsp登陆界面实现
创建head.jsp文件。用于将一些药固定引用的css、js文件放到这里。作为公共调用文件。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head> <link rel="stylesheet" type="text/css" href="assets/css/bootmetro.css">
<link rel="stylesheet" type="text/css" href="assets/css/bootmetro-responsive.css">
<link rel="stylesheet" type="text/css" href="assets/css/bootmetro-icons.css">
<link rel="stylesheet" type="text/css" href="assets/css/bootmetro-ui-light.css">
<link rel="stylesheet" type="text/css" href="assets/css/datepicker.css"> <!-- these two css are to use only for documentation -->
<link rel="stylesheet" type="text/css" href="assets/css/site.css"> <!-- Le fav and touch icons -->
<link rel="shortcut icon" href="assets/ico/favicon.ico">
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="assets/ico/apple-touch-icon-144-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="assets/ico/apple-touch-icon-114-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="assets/ico/apple-touch-icon-72-precomposed.png">
<link rel="apple-touch-icon-precomposed" href="assets/ico/apple-touch-icon-57-precomposed.png"> <!-- All JavaScript at the bottom, except for Modernizr and Respond.
Modernizr enables HTML5 elements & feature detects; Respond is a polyfill for min/max-width CSS3 Media Queries
For optimal performance, use a custom Modernizr build: www.modernizr.com/download/ -->
<script src="assets/js/modernizr-2.6.2.min.js"></script> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title>
</head> </html>
创建login.jsp文件:
<%@ include file="head.jsp"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%> <body style="text-align:center;margin-bottom:100px;">
<div class="navbar" >
<div class="navbar-inner">
<a class="brand" href="#" style="margin-left:200px;">网盘</a> </div>
</div>
<div style="text-align:left;margin:0px auto;margin-top:50px; width:1200px;height:500px;">
<div style="float:left;width:800px; height:100%;background:#009900"></div>
<div style="float:left;width:400px; height:100%; background:#00CC33">
<fieldset>
<form action="LoginServlet" method="post" class="form-horizontal" style="margin-top:150px;margin-left:100px;"> 用户 <input type="text" id="inputEmail" name="username" >
<br><br>
密码 <input type="password" id="inputPassword" name="password">
<br><br>
<button type="submit" class="btn">登陆</button>
<button type="submit" class="btn">注冊</button> </form>
</fieldset>
</div> </div> </body>
启动tomcatserver測试效果,想要很多其它绚丽的小姑。大家能够自己去实现。(这里还无法实现登陆)
二、连接数据库
(1)将mysql-connector-java-commercial-5.1.25.jar拷贝到/WEB-INF/lib文件夹下。
(2)创建user表和加入数据
打开navicat for mysql 软件。连接hadoop数据库并创建user表,然后向表里加入3个数据。
三、创建操作数据库的model文件
(1)ConnDB.java
package com.model; import java.sql.Connection;
import java.sql.DriverManager; public class ConnDB {
private Connection ct = null;
public Connection getConn(){ try {
//载入驱动
Class.forName("com.mysql.jdbc.Driver"); //得到连接
ct = DriverManager.getConnection("jdbc:mysql://localhost:3306/hadoop?user=root&password=");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} return ct;
}
}
(2)UserBean.java
package com.model; public class UserBean {
String id;
String username;
String email;
String password;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
} }
(3)UserBeanCl.java
package com.model; import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; public class UserBeanCl {
private Statement sm = null;
private Connection ct = null;
private ResultSet rs = null; public void close(){
try { if(sm != null){
sm.close();
sm = null;
} if(ct != null){
ct.close();
ct = null;
} if(rs != null){
rs.close();
rs = null;
} }
catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} //检查登录用户是否合法
public boolean checkUser(String user, String password){
boolean b = false;
try { //获得连接
ct = new ConnDB().getConn();
//创建statement
sm = ct.createStatement(); rs = sm.executeQuery("select * from user where username=\""+user+"\""); if(rs.next()){
//说明用户存在
String pwd = rs.getString(3);
if(password.equals(pwd)){
//说明密码正确
b = true;
}else{
b = false;
} }else{
b = false;
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
this.close();
} return b;
} }
(3)创建LoginServlet文件处理登陆的用户
package com.controller; import java.io.IOException; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession; import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.mapred.JobConf; import com.model.*; /**
* Servlet implementation class ListServlet
*/
public class LoginServlet extends HttpServlet { /**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
} /**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username");
String password = request.getParameter("password"); UserBeanCl ubc = new UserBeanCl();
if(ubc.checkUser(username, password)){
//用户合法。跳转到界面
HttpSession session = request.getSession();
session.setAttribute("username", username); JobConf conf = HdfsDAO.config();
HdfsDAO hdfs = new HdfsDAO(conf);
FileStatus[] list = hdfs.ls("/"+username);
request.setAttribute("list",list);
request.getRequestDispatcher("index.jsp").forward(request, response);
}else{
//用户不合法。调回登录界面,并提示错误信息
request.getRequestDispatcher("login.jsp").forward(request, response);
} } }
(4)重新启动tomcatserver測试,这次就能够实现用户登陆页面跳转了(从login.jsp跳转到index.jsp)
(7)基于hadoop的简单网盘应用实现3的更多相关文章
- 基于Hadoop开发网络云盘系统客户端界面设计初稿
基于Hadoop开发网络云盘系统客户端界面设计初稿 前言: 本文是<基于Hadoop开发网络云盘系统架构设计方案>的第二篇,针对界面原型原本考虑有两个方案:1.类windows模式,文件夹 ...
- 基于Hadoop开发网络云盘系统架构设计方案
基于Hadoop开发网络云盘系统架构设计方案第一稿 引言 云计算技术的发展,各种网络云盘技术如雨后春笋,层出不穷,百度.新浪.网易都推出了自己的云盘系统,本文基于开源框架Hadoop设计实现了一套自己 ...
- USB系列之六:基于DOSUSB的简单U盘驱动程序
首先要说明的是,该驱动程序仅实现了部分块设备的功能,如果作为成品软件使用,会感觉性能比较差,而且有些功能(比如FORMAT)是不能完成的,发表此驱动程序的目的旨在说明USB的编程原理以及DOS下驱动程 ...
- 基于Hadoop开发网络云盘系统架构设计方案第一稿
引言 云计算技术的发展,各种网络云盘技术如雨后春笋,层出不穷,百度.新浪.网易都推出了自己的云盘系统,本文基于开源框架Hadoop设计实现了一套自己的网络云盘系统,方案为初步设计方案,不断完善中. 一 ...
- ubuntu服务器 安装 seafile 个人网盘
目录 ubuntu服务器 安装 seafile 个人网盘 一.实验环境: 二.实验流程介绍 三.网盘搭建 1.安装依赖环境 2.安装seafile 三.配置QQ域名邮箱 四.配置seafile邮件服务 ...
- 『实践』VirtualBox 5.1.18+Centos 6.8+hadoop 2.7.3搭建hadoop完全分布式集群及基于HDFS的网盘实现
『实践』VirtualBox 5.1.18+Centos 6.8+hadoop 2.7.3搭建hadoop完全分布式集群及基于HDFS的网盘实现 1.基本设定和软件版本 主机名 ip 对应角色 mas ...
- The Road To Hadoop(网盘系统的实现)
因为毕业设计的原因,得从零开始学习hadoop.虽然接触Hadoop也有一段时间了,但是没有一个完整的时间段去学习,在公司实习的同时,只能利用零零碎碎的时间学习,今天完成了第一个版本的基于Hadoop ...
- [原创] 【2014.12.02更新网盘链接】基于EasySysprep4.1的 Windows 7 x86/x64 『视频』封装
[原创] [2014.12.02更新网盘链接]基于EasySysprep4.1的 Windows 7 x86/x64 『视频』封装 joinlidong 发表于 2014-11-29 14:25:50 ...
- 自己搭建云盘 – 简单的PHP网盘程序
自己搭建云盘 – 简单的PHP网盘程序 Veno File Manager 2.6.3 汉化版 相信大家都比较熟悉或使用过 Owncloud 网盘程序,Owncloud 虽强大,不过太过于臃肿,而 V ...
随机推荐
- 【BOI2007】【BZOJ1176】Mokia
1176: [Balkan2007]Mokia Time Limit: 30 Sec Memory Limit: 162 MB Submit: 1059 Solved: 432 [Submit][St ...
- [hadoop系列]Pig的安装和简单演示样例
inkfish原创,请勿商业性质转载,转载请注明来源(http://blog.csdn.net/inkfish ).(来源:http://blog.csdn.net/inkfish) Pig是Yaho ...
- 细节!重点!易错点!--面试java基础篇(二)
今天来给大家分享一下java的重点易错点第二部分,也是各位同学面试需要准备的,欢迎大家交流指正. 1.字符串创建与存储机制:当创建一个字符串时,首先会在常量池中查找是否已经有相同的字符串被定义,其判断 ...
- Qt递归拷贝和删除目录
最近在翻看项目代码时,看到了这两个函数,想到这个功能十分常用,因此拿出来与大家分享,希望对大家有用.几点说明: 1.记得当初写代码那会,是参考了网上的帖子写的,做了一点小修改.因此代码源于网络. 2. ...
- VB与报表的交互
还接着上次说.在上个博客中已经说到建立好表的步骤了,接下来就是怎么使表与vb连接. 先看一下代码. Option Explicit Dim WithEvents Report As grproLibC ...
- 【AllJoyn专题】基于AllJoyn和Yeelink的传感器数据上传与指令下行的研究
接触高通物联网框架AllJoyn不太久,但确是被深深地吸引了.在我看来,促进我深入学习的原因有三点:一.AllJoyn开源,对开源的软硬件总会有种莫名的喜爱,虽然或许不会都深入下去:二.顺应潮流,物联 ...
- shell oracle
#!/bin/sh traffic= rm -rf test.txt data=`sqlplus -S anoscfg/anoscfg <<EOF spool test.txt set f ...
- Thinkphp入门 一 (45)
原文:Thinkphp入门 一 (45) 什么是框架? 就是一堆代码的集合,这些代码可以有变量.常量.函数.类等等.这些代码彼此紧密联系,彼此有合作关系.里边还有设计模式:MVC.单例.工厂等等. 为 ...
- MySqlClient访问tinyint字段返回布尔值
原文 MySqlClient访问tinyint字段返回布尔值 症状: 使用MySqlClient访问tinyint unsign 字段返回布尔值 true 和 false,但 ...
- 以&运行在后台的程序,关闭terminal后,相应进进程自动关闭
以&运行在后台的程序,关闭terminal后,相应进进程自动关闭