`
Dikaros
  • 浏览: 3398 次
文章分类
社区版块
存档分类
最新评论

注册和登录的测试服务器搭建

 
阅读更多

之前做过一个可以同步联系人信息到服务器的app,由于要实现在内外网环境中都可以使用软件,现在把其中需要测试登录和注册的服务器搭建过程分享一下

使用的技术servlet

使用的数据库mysql

数据库可视化操作软件SQLyog

服务器软件tomcat 7.0

域名解析软件 花生壳

数据库和其他工具软件可以从网上下载到,其下载和安装过程就不在这里说了

一、创建数据库

1、打开sqlyog,连接到数据库,如图1,点击Connect

图1

2、创建一个新的数据库,右键刚才的连接,选择create database,如图2

图2

设置数据库的名称为cloudserver,编码gbk,如图3

图3

3、在刚创建的数据库中创建一张表user,展开刚才创建的数据库,右键table,选择创建表,这里只设置两个字段,一个为userName表示用户名,并设置为主键,另一个为userPassword,如图4.这样这个数据库就创建好了

图4


二、配置tomcat服务器

1、在tomcat的webapps文件夹下创建一个文件夹名为cloud的文件夹,创建子文件夹名为WEB-INF,在这个文件下下增加一个文件web.xml如下

<?xml version="1.0" encoding="ISO-8859-1"?>


<web-app 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_3_0.xsd"
  version="3.0"
  metadata-complete="true">
</web-app>

2、下载mysql的jdbc包,并在cloud文件夹下WEB-INF文件夹下创建文件夹libs,把下载好的mysql的jdbc包放在这个文件夹中。

3、数据库链接测试,创建一个文件Dao.java,在WEB-INF文件夹下创建classes文件夹,将Dao.java放在com/dikaros/dao,文件夹下(文件夹是包名,根据包名创建不同文件夹)

package com.dikaros.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class Dao {
	protected Connection connection;

	/**
	 * 初始化数据库
	 */
	public Dao(){
		String driverName = "com.mysql.jdbc.Driver";
		String dbURL = "jdbc:mysql://localhost:3306/clodyserver";
		String userName = "root";
		String password = "123456";

		try {
			Class.forName(driverName);
			connection = DriverManager.getConnection(dbURL, userName, password);
			System.out.println("success");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * 释放连接
	 */
	public void disconnect(){
		if (connection!=null) {
			try {
				connection.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
}

测试链接

package com.dikaros.dao;

public class Test {
	public static void main(String[] args) {
		Dao dao = new Dao();
	}
}

在WEB-INF/classes文件夹下按下shift并右键打开命令窗口,输入javac com/dikaros/dao/Test.java 回车,无异常后输入java com/dikaros/dao/Test如果控制台出现seccess则说明连接成功

3、将用户信息抽象成类,创建User.java 置于classes/com/user/bean 文件夹下

package com.dikaros.bean;
public class User {
	private String userName;
	private String userPassword;
	

	public User(){
		userName=null;
		userPassword=null;
	}
	
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	public String getUserPassword() {
		return userPassword;
	}
	public void setUserPassword(String userPassword) {
		this.userPassword = userPassword;
	}

}

4、登录注册的实现创建UserDao.java 置于classes/com/dikaros/dao 文件夹下

package com.dikaros.dao;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import com.dikaros.bean.User;

public class UserDao extends Dao{
	
	Statement statement;
	/**
	 * 初始化数据库
	 */
	public UserDao() {
		
		super();
	}
	
	/**
	 * 注册
	 * @param u 用户对象
	 * @return	1 注册成功
	 * @return  0用户名已存在
	 * @return  -1服务器异常
	 */
	public int regist(User u) {
		try {
			statement = connection.createStatement();
			

				String QUERY = "SELECT * from user WHERE userName='"
						+ u.getUserName()+"';";
				ResultSet resultSet = statement.executeQuery(QUERY);
				
				if (!resultSet.next()) {
					PreparedStatement preparedStatement=null;
					
					preparedStatement=connection.prepareStatement("INSERT INTO user(userName,userPassword) VALUES(?,?)");
					preparedStatement.setString(1, u.getUserName());
					preparedStatement.setString(2, u.getUserPassword());
					preparedStatement.execute();
					preparedStatement.close();
					statement.close();
					preparedStatement.close();
					
					return 1;
					
				}else {
					return 0;
				}
				
		} catch (Exception e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
			
		}
		return -1;
	}
	
	/**
	 * 	登陆
	 * @param name 用户名
	 * @param password 密码
	 * @return 1 成功
	 * @return 0 密码错误
	 * @return 2用户名不存在
	 * @return-1服务器异常
	 */
	public int logIn(User u) {
		
		try {
			 statement = connection.createStatement();
			String QUERY = "SELECT * from user WHERE userName='"+u.getUserName()+"';";
			ResultSet resultSet = statement.executeQuery(QUERY);
			
			if (resultSet.next()) {
				if (resultSet.getString("userPassword").equals(u.getUserPassword())) {
					statement.close();
					return 1;
				}
				else {
					statement.close();
					return 0;
				}
				
			}else {
				statement.close();
				return 2;
				
			}
			
		} catch (SQLException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}catch (Exception e) {
			e.printStackTrace();
		}
		
		return -1;
	}
	
	


	public int getContact(int state,User u){
		if (state==1) {
			String QUERY = "SELECT * from contactlist WHERE userName='"+u.getUserName()+"';";
			return 1;
		}
		return -1;
	}
	

}


5、创建类Treat继承servlet,将Treat.java放在classes/com/dikaros/treat文件夹下,这个类处理从客户端发来的请求,请求方式仅限于post,客户端通过http通信发送三个字段

action,param1,param2,服务器通过不同的的字段信息向客户端返回不同的值

package com.dikaros.servlet;


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 com.dikaros.dao.*;
import com.dikaros.user.*;

import java.io.IOException;

/**
 * Created by dikaros on 15-5-16.
 */
public class Treat extends HttpServlet{
	/**
	 * 使用http 的 post方式进行 通信
	 * 为客户端提供一些接口
	 * 可以接收的值 action 
	 */
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    	
    	resp.setContentType("text/html;charset=GBK");//设置页面显示内容编码可以显示中文
		req.setCharacterEncoding("GBK");//设置可以传递中文参数
    	String action =req.getParameter("action");
    	String param1=req.getParameter("param1");
    	String param2=req.getParameter("param2");

    	
    	String result=getMethod(action, param1, param2);
    	resp.getWriter().print(result);
        
        
    }
    
    public String getMethod(String action,String param1,String param2){
    	User user=new User();
    	ContactList contactList;
    	//登录
    	if (action.equals("login")&&!param1.equals("")&&!param2.equals("")) {
    		user.setUserName(param1);//设置用户名
    		user.setUserPassword(param2);//设置密码
			UserDao dao=new UserDao();
			int result=dao.contains(user);
			return String.valueOf(result);
			
		}
    	else if (action.equals("regist")&&!param1.equals("")&&!param2.equals("")) {
    		
    		user.setUserName(param1);
    		user.setUserPassword(param2);
			UserDao dao=new UserDao();
			int result=dao.addToDataBase(user);
			return String.valueOf(result);
		}
    	else {
			return String.valueOf(-99);
		}
    }


}


6、配置servlet,修改WEB-INF下的web.xml文件

<?xml version="1.0" encoding="ISO-8859-1"?>


<web-app 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_3_0.xsd"
  version="3.0"
  metadata-complete="true">

<!-- Servlet的class -->
    <servlet>
        <servlet-name>treat</servlet-name>
        <servlet-class>com.dikaros.Treat</servlet-class>
    </servlet>
	<!-- Servlet的访问形式 -->
    <servlet-mapping>
        <servlet-name>treat</servlet-name>
        <url-pattern>/treat</url-pattern>
    </servlet-mapping>

</web-app>




7、上面的java文件是不能直接使用的,需要编译成class文件才可以,编译方法与测试数据库连接时的方法一样

8、打开tomcat

现在,这个测试服务器就可以在内网中运行了,本机测试地址为localhost:8080/cloud/treat 局域网测试地址 局域网地址如172.30.16.1:8080/cloud/treat

接下来说明怎么在外网中测试

三、映射到外网

1、在花生壳官网上注册用户,成功注册后就会获得一个免费的域名,当然也可以在这里购买新的域名。下载花生壳软件并安装

2、打开花生壳软件,选择一个域名右键如图5

图5


选择花生壳管理,点击增加映射如图6

图6

填入如图7所示内容,其中应用名称自定义,内网主机填自己当前的内网ip地址,端口号填8080之后点击确定即可

图7

这样就可以通过外网访问了,外网访问的地址为 域名\treat 如我的是dikaros.oicp.net\treat

之后就可以在此基础上写登录和和注册的客户端了









版权声明:本文为博主原创文章,未经博主允许不得转载。

分享到:
评论

相关推荐

    毕业设计&课程设计-搭建TCP服务器,实现注册、登录、查看和控制家庭环境等功能。.zip

    上位机采用QT框架设计用户界面,搭建TCP服务器,实现注册、登录、查看和控制家庭环境等功能。. qt项目,工具源码,适合毕业设计、课程设计作业,所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何...

    使用易邮真实环境搭建网络邮件服务器

    这是本人真实网络环境下使用易邮服务器软件搭建的邮件服务器的实例。从域名解析、注册MX记录到邮件服务器的配置以及测试有详细的介绍,欢迎评论!

    免服务器域名低成本运营工具箱微信小程序源码多功能集合一体

    因为该小程序无需服务器和域名即可搭建,只需要注册一个小程序账号即可 该小程序安装方法也简单,用微信开发者工具打开源码,然后上传审核即可 对了还需要设置几个合法域名,合法域名也打包在压缩包里面了

    免服务器软件库微信小程序源码

    )当前完成功能用户登录用户注册软件投稿(可使用链接上传或者服务器存储)动态发布会员系统卡密系统充值对接卡密网软件发布板块后台功能如下软件管理分类管理公告管理弹窗管理卡密管理动态管理轮播图管理用户管理...

    Juddi2.0.1+Apache-Tomcat-6.0.36+MySQL环境搭建测试

    主要是搭建JUDDI服务器,然后通过UDDI4J注册级发布WebService。

    网狐荣耀版开发使用常见问题解答

    网狐荣耀版教程六服务器端的搭建 网狐荣耀版教程七PC客户端的打包 网狐荣耀版教程八子游戏的添加 网狐荣耀版教程九安卓端的签名 网狐荣耀版教程十苹果环境的搭建 网狐荣耀版教程十一苹果端ios的修改和打包 ...

    基于SpringBoot框架搭建的物联网数据采集系统服务器端(源码+项目说明).zip

    * 提供查看IP和端口API方便进行nginx反向代理和负载均衡的部署和测试 * 分布式session共享避免了集群环境下用户登录信息失效的问题 * 5.测试页面优化 * 模拟传感器数据提交页面支持批量数据提交 * 按时间段查询...

    C#物联网平台服务器框架源码(自带WEB API,硬件数据接收服务,一键部署,无需IIS)

    WEB API功能有服务器日志查询、WEB API接口认证用户管理、远端设备注册管理、服务器轮询读取任务启停、服务器参数设置、查询历史数据记录、下发指令到终端设备。 3、系统目前支持modbus 、modbus rtu协议,可定制开发...

    TinyWebServer.zip

    Linux下C++轻量级Web服务器,助力初学...访问服务器数据库实现web端用户注册、登录功能,可以请求服务器图片和视频文件 实现同步/异步日志系统,记录服务器运行状态 经Webbench压力测试可以实现上万的并发连接数据交换

    OPC使用插件、客户端测试工具、服务端软件

    首先需要安装插件才可以运行opc client客户端测试工具,这里面是将一些dll注册到注册包和DCOM环境中。OPC Core Components Redistributable,该插件分为x86和x64两版,根据现场服务器情况,选择安装。OPC Core ...

    Redis windows 集群搭建

    我的集群式在此服务器中搭建3个master+3个Slave,总共6个节点。 准备3台机器,拷贝Redis安装包到指定目录,例:D:/Redis下解压文件并拷贝一份,分别修改成对应端口的文件夹(例如:Redis6379,Redis6380)。 分别...

    DNS服务器的架设.pptx

    项目6 DNS服务器的架设 知识目标 了解:域名解析、域名空间的概念 熟悉:DNS服务的工作过程 掌握:安装、配置DNS服务器的方法步骤,配置、测试DNS客户机的方法步骤 能力目标 会搭建主DNS服务器和辅助DNS服务器 能在...

    【7A文】服务器性能计算.docx

    GGG业务服务器性能计算 GGG业务服务器作为GGGGG项目最基本的处理单元,同时部署业务层、服务层和部分第三方软件,为保证系统的稳定和高效,因此GGG业务服务器必须进行负载均衡。 【7A文】服务器性能计算全文共6页,...

    Android项目源码仿微信登录注册聊天换肤二维码扫描.zip

    搭建的时候,把服务器配到8G内存笔记本上,网上得知,Openfire每个线程大约占4k内存,那理论上是可以80w 用户,当然实际肯定没那么多,Openfire在一台8G的主流服务器上支持30W的用户肯定没有问题。 简单说明一下...

    WindowsServer2019主副AD及DNS主备搭建

    公司准备上域控,自己搭了几次,今天搞测试环境,边搭边亲自把一步一步的操作步骤写了一个文档,比较啰嗦,非常适合新手参照,需要的拿去吧

    xycmsjyd[服务器,本地测试小工具]

    可以管理是否关闭网站,注册是否审核,留言是否审核 LOGO/形象图片管理:首页LOGO管理,可以设置长宽大小 安全管理:看相关违规操作记录,查询攻击IP地址,自动封闭IP,管理SQL信息 安全设置:根据需要设置一些...

    Oracle服务器配置和管理.pptx

    本节以其最新的数据库产品Oracle 11g为例,介绍(jièshào)如何在Red Hat Eneterprise Linux 5.2上搭建和管理Oracle数据库服务器。 第一页,共33页。 Oracle服务器配置和管理全文共33页,当前为第1页。 28.1 Oracle ...

    一个java页游服务器框架

    一、前言  此游戏服务器架构是一个单服的形式,也...  测试客户端—TestClient,模拟客户端与服务器通信,用于测试服务器功能  项目工具 —Tools,服务器搭建用到的jar包以及相关eclipse插件  二、服务器运行环

    fiora二次元聊天室宝塔源码+搭建教程 附演示站

    ①一键安装apache网站搭建环境 ②在 软件商店 安装好PM2管理器、MongoDB、Redis,三个应用 ③在服务器防火墙放行9200和mong数据库默认27017端口 2.建议手动下载源码放入根目录/opt文件夹,wwwroot根目录新建opt...

    基于SSM的专创融合网站设计与实现_kaic.docx

    5.1开发环境的搭建和配置 5.2系统前台模块实现 5.2.1注册登录及首页实现 5.2.2在线课程模块实现 5.2.3大赛模块实现 5.3系统后台模块实现 5.3.1用户管理实现 5.3.2业务管理实现 6 系统测试45 6.1前台模块测试 6.1.1...

Global site tag (gtag.js) - Google Analytics