一.服务器开发所需环境
myeclipse、tomcat、mysql
1)安装myeclipse,下载地址 http://pan.baidu.com/s/1eR4UT6E
2)安装tomcat,下载地址 http://pan.baidu.com/s/1c2EIFEo 。解压后无需安装,配置到环境变量
(TOMCAT_HOME=你的tomcat所在路径 ,Path里配置%TOMCAT_HOME%\lib;%TOMCAT_HOME%\bin;),启动
bin目录下的startup.bat,浏览器输入http://localhost:8080/回车如果看到apache页面,表示安装成
功。注意在myeclipse里要添加自己安装的这个tomcat,而不是用myeclipse里自带的;在myeclipse里的
window-->preferences-->MyEclipse-->Servers-->add-->你安装的tomcat的路径。
3)安装mysql,下载地址 http://pan.baidu.com/s/1qY2iXbQ, 解压版mysql,解压后配置环境变量需
要配置到bin目录。然后cmd里输入net start mysql来启动数据库。进入到数据库所在bin目录,输入mysql
-u root -p设置密码,这个密码一定要记住,不然jdbc连接不上数据库哦。通过show databases可以查看现
有数据库,use databasename可以切换到这个数据库,show tables看表,select * from tablename查
看表数据。
到此为止,服务器所需的开发环境,运行环境已经搭建完成。接下来就是创建java web项目啦。
二.创建数据库
创建数据库good_db : create database good_db;
切换到此数据库:use good_db;
创建商品表:create table good(id int primary key not null,
goodName varchar(30),
goodNum varchar(20),
goodDate Date);
插入一条数据:insert into good values(1,
“milk”,
“20”,
“2017-04-07”);
三.创建Java Web项目
myeclipse-->file-->new-->web service project
此项目目录下src是用来写服务器代码的。WebRoot下是html+jsp+ajax的代码用来做管理界面,通过接口查询
数据等前端代码;其中WEB-INF目录下的web.xml是用来配置接口地址和对应servlet的,非常重要。
先附上我的项目目录结构:
接下来第一步就是jdbc,直接附图便于理解。
public class DAOutils {
private DAOutils(){};
private static String url="jdbc:mysql://localhost:3306/good_db";
private static String username="root";
private static String password="数据库登陆密码";
static{
try{
Class.forName("com.mysql.jdbc.Driver");
}catch(ClassNotFoundException e){
throw new ExceptionInInitializerError(e);
}
}
//外部通过调用getConnInstance来获取数据库连接
public static Connection getConnInstance(){
Connection conn = null;
try {
conn = DriverManager.getConnection(url,username,password);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
public static void release(Connection conn,java.sql.PreparedStatement pstm,ResultSet rs){
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(pstm!=null){
try {
pstm.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
接下来就是编写servlet。
public class GetGoodServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String id = request.getParameter("id");
DBdao dbd = new DBdao();
ItemBean selectGood = (ItemBean) dbd.GetGoodInfo(id);
String jsonString = JSON.toJSONString(selectGood);
out.print(jsonString);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
然后是DBdao
public class DBdao {
private static Connection conn = null;
SimpleDateFormat sdf;
public DBdao() {
sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
}
//根据商品id查询商品
public ItemBean GetGoodInfo(String good_id){
String sql = "select * from good where id=?";
ItemBean i = null;
ResultSet executeQuery = null;
PreparedStatement pstm =null;
try {
conn = DAOutils.getConnInstance();
pstm = (PreparedStatement) conn
.prepareStatement(sql);
pstm.setString(1, good_id);
executeQuery = pstm.executeQuery();
while (executeQuery.next()) {
ItemBean ib = new ItemBean();
ib.setId(executeQuery.getInt(1));
ib.setGoodName(executeQuery.getString(2));
ib.setGoodNum(executeQuery.getString(3));
ib.setGoodTime(executeQuery.getString(4));
i = ib;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
DAOutils.release(conn, pstm, executeQuery);
}
return i;
}
ItemBean如下:
public class ItemBean {
private int id;
private String goodName;
private String goodNum;
private String goodTime;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getGoodName() {
return goodName;
}
public void setGoodName(String goodName) {
this.goodName = goodName;
}
public String getGoodNum() {
return goodNum;
}
public void setGoodNum(String goodNum) {
this.goodNum = goodNum;
}
public String getGoodTime() {
return goodTime;
}
public void setGoodTime(String goodTime) {
this.goodTime = goodTime;
}
@Override
public String toString() {
return "ItemBean [id=" + id + ", goodName=" + goodName + ", goodNum="
+ goodNum + ", goodTime=" + goodTime + ", getId()=" + getId()
+ ", getGoodName()=" + getGoodName() + ", getGoodNum()="
+ getGoodNum() + ", getGoodTime()=" + getGoodTime()
+ ", getClass()=" + getClass() + ", hashCode()=" + hashCode()
+ ", toString()=" + super.toString() + "]";
}
}
最后注意web.xml里的配置:
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>GetGoodServlet</servlet-name>
<servlet-class>severlet.GetGoodServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>GetGoodServlet</servlet-name>
<url-pattern>/search</url-pattern>
</servlet-mapping>
四. jsp里请求服务器数据
index.jsp的代码
<%@page import="bean.ItemBean"%>
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'success.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<body>
<form action="search">
password:<input type="text" name="id">
<br>
<input type="submit">
</form>
</body>
</html>
其中需要输入的id是商品id,用来查询数据库条件。
五. 用浏览器测试
浏览器输入http://172.24.68.163:8080/TestServer/index.jsp回车,输入框内输入1,点提交,浏览器就会以json显示数据库查询到的id为1的数据:
{“goodName”:”milk”,”goodNum”:”20”,”goodTime”:”2017-04-07”,”id”:1}
到此,简单的服务器搭建部署测试就完成了,局域网内的安卓程序通过接口也可获取数据。虽然很简单,主要以此来记录开发中的步骤以防忘得干净。