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

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

 
阅读更多

之前做过一个可以同步联系人信息到服务器的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

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









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

分享到:
评论

相关推荐

    ios mdm 设备管理服务器搭建

    "ios mdm 设备管理服务器搭建"这个主题涉及了如何构建一个用于管理iOS设备的MDM服务器,以确保企业数据的安全并优化设备的使用效率。 MDM解决方案允许IT管理员远程控制和管理组织内的各种移动设备,包括配置设置、...

    发布服务器搭建和使用手册.docx

    发布服务器搭建和使用手册 发布服务器是企业内部或外部用于分发、管理和更新应用程序的关键基础设施。本手册将详细讲解如何搭建和使用发布服务器,确保您的系统能够高效、安全地进行软件发布。 一、环境搭建 环境...

    windows xp搭建服务器

    IIS是Microsoft提供的用于搭建Web和FTP服务器的服务组件。 - 确认本机IP地址。 2. **启动IIS管理器**: - 在【开始】菜单中选择【控制面板】。 - 进入【控制面板】后找到并双击【管理工具】。 - 在打开的【管理...

    测试环境的搭建

    测试环境的搭建是软件开发和测试的重要步骤,它对软件的运行环境、硬件环境和网络环境进行了简单的介绍。本文将从软件环境、硬件环境和网络环境三个方面对测试环境的搭建进行详细的介绍。 软件环境 在测试环境的...

    cdn环境搭建与测试|cdn服务器搭建软件v1.7

    在本主题中,“cdn环境搭建与测试|cdn服务器搭建软件v1.7”涉及到如何配置和测试一个CDN环境,以及使用特定版本的CDN服务器搭建软件。 首先,我们需要理解CDN的基本工作原理。CDN主要由以下几个部分组成: 1. **源...

    android studio连接云服务器mysql实现登录注册

    总之,实现"android studio连接云服务器mysql实现登录注册"涉及到Android应用开发、网络编程、数据库操作和服务器端API设计等多个方面。理解并掌握这些知识点,将有助于你构建出稳定、安全的移动应用。在实际开发...

    Asterisk服务器搭建和配置文档.docx

    本文档旨在详细介绍如何在Ubuntu操作系统上搭建和配置Asterisk服务器,包括安装Asterisk软件、配置用户信息以及进行简单的电话呼叫测试。 #### 二、环境准备 1. **操作系统**:Ubuntu Server版(推荐使用最新稳定...

    H.248 协议的VOIP测试环境搭建操作指导书.docx

    搭建H.248协议的VOIP测试环境的目的是为了确保VoIP通信的正常运行,包括语音通话的质量、注册过程和通话过程的稳定性等。这有助于测试工程师在不依赖他人的情况下独立完成环境构建,便于后续的测试和故障排查。 **...

    php电子邮件服务器搭建

    5. **测试和调试**:在实际部署之前,确保在本地环境中测试邮件发送功能。你可以使用像Gmail这样的免费SMTP服务进行测试。同时,可以开启PHPMailer的调试模式以获取更详细的错误信息。 通过以上步骤,你可以在PHP...

    搭建windows WHLK/WHCK/WHQL测试平台,获取微软数字签名

    搭建Windows WHLK/WHCK/WHQL测试平台是微软驱动程序认证流程的一部分,目的是确保驱动程序的兼容性和稳定性,以便在Windows环境下顺利运行。WHLK、WHCK和WHQL是同一认证过程的不同称呼。这个过程对于驱动程序的最终...

    syslog-搭建日志服务器.docx

    总的来说,搭建syslog服务器能有效收集和管理网络设备的日志信息,提供统一的监控和分析平台。Kiwi Syslog Server提供了直观的界面和丰富的配置选项,使得这一过程相对简便。在实际部署时,应根据网络环境和设备类型...

    用winmydns搭建DNS服务器

    对于想要拥有自定义域名的企业或个人来说,搭建自己的DNS服务器不仅可以实现更灵活的域名管理和解析控制,还能够提升网站的稳定性和安全性。本文将详细介绍如何使用WinMyDns这款工具来搭建DNS服务器。 #### 一、...

    web服务器搭建和域名访问网站.docx

    根据提供的文件信息,“web服务器搭建和域名访问网站.docx”,我们可以从中提炼出一系列与Web服务器搭建及域名访问相关的知识点。 ### Web服务器搭建 #### 1. Web服务器的概念 Web服务器是一种计算机程序或设备,...

    svn+myeclipse集成和本地服务器搭建步骤详解

    本文将详细介绍如何在Windows环境下使用TortoiseSVN软件搭建本地SVN服务器,并将它集成到MyEclipse开发环境中,目的是为新手提供一套完整的SVN版本控制系统的搭建和集成步骤。 首先,我们需要了解SVN是什么。SVN...

    用花生壳搭建服务器【用花生壳如何搭建FTP服务器】.docx

    需要注册登录nat123客户端,然后设置映射信息,包括选择全端口映射类型、填写内网FTP服务器IP地址和域名等。 5. 如何测试FTP服务器? 可以使用IE浏览器测试FTP服务器,输入ftp://内网IP地址来访问FTP服务器。 6. ...

    本地搭建测试源的服务器环境.doc

    本文将基于提供的文档内容,详细介绍如何在本地搭建测试服务器环境,以及该过程中常见问题的解答。 #### 二、本地测试空间与虚拟主机的区别 **本地测试空间**主要用于开发者在本地计算机上测试源代码或进行学习。...

    搭建测试环境之java练手项目

    在IT行业中,搭建测试环境是开发和学习过程中不可或缺的一环,尤其对于Java开发者而言,一个良好的测试环境可以提升代码质量,加速项目进展。本项目主要介绍如何搭建一个基于Java的测试环境,具体针对的是Jeecms v...

    搭建手机服务器

    #### 五、测试服务器 完成上述步骤后,即可在iOS模拟器或真实设备上运行项目。接下来的步骤是在另一台设备(如Mac电脑)上测试HTTP服务器是否正常工作: 1. **获取iPhone IP地址**:在iPhone的“设置”-&gt;“Wi-Fi”...

    windows2008搭建radius测试指导.pdf

    #### 服务器搭建部分 1. **系统重封装** 在开始搭建之前,由于可能存在的克隆问题,应使用sysprep命令对Windows Server 2008 R2系统进行重封装,以消除任何可能的配置冲突。 2. **AD和DNS搭建** - 首先,给...

    winmail邮件服务器的搭建剖析.pdf

    此外,通过WEB方式注册和收发邮件也是便捷的测试方法,登录地址可在快速设置向导的结果中获取。 至于安装过程,Winmail Server的安装类似常规软件,但要注意选择合适的语言、安装目录(避免中文路径)、安装组件...

Global site tag (gtag.js) - Google Analytics