注册和登录的测试服务器搭建
来源:互联网 发布:淘宝店主真人内衣展示 编辑:程序博客网 时间:2024/05/21 11:24
之前做过一个可以同步联系人信息到服务器的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 用户对象 * @return1 注册成功 * @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
之后就可以在此基础上写登录和和注册的客户端了
- 注册和登录的测试服务器搭建
- 注册页面的服务器校验和登录
- 在服务器上登录注册的实现
- 数据库的登录和注册
- Tomcat服务器的搭建和测试(启动和关闭)
- VLC搭建RTSP服务器和客户端的测试过程
- arm-linux的TFTP 服务器搭建和测试
- SSH2环境搭建+简单的登录测试
- 简易的用户注册和登录系统.
- Ucenter的用户注册和登录分析
- Axure登录和注册界面的学习
- Ucenter的用户注册和登录分析
- 新版本struts2的注册和登录校验
- APP的注册和登录功能设计
- XUtils结合使用的登录和注册
- svn服务器搭建和访问测试
- webrtc测试服务器编译和搭建
- web功能测试-登录、注册
- *LeetCode-Longest Palindromic Substring
- gcc与g++的区别
- Shortest Palindrome
- Android Api Demos登顶之路(八十五)Graphics-->PurgeableBitmap
- Expression Add Operators
- 注册和登录的测试服务器搭建
- Dungeon Game
- Minimum Window Substring
- Best Time to Buy and Sell Stock IV
- Adaboost 算法的原理与推导
- *LeetCode-Largest Number
- Regular Expression Matching
- QSqlDatabase类
- QSqlQuery类