安卓系统部署java web_android实例讲解----Tomcat部署Web应用方法总结

一、架构介绍

在介绍这个之前,首先介绍下什么是ORM框架?

对象关系模型。或者称为映射。ORM主要是使得数据库中的关系数据映射为程序中的对象的桥梁。

MyBatis是另外一款优秀的ORM框架,前身为iBATIS。

整个架构图:

安卓系统部署java web_android实例讲解----Tomcat部署Web应用方法总结_第1张图片

上面这个图讲的是,如何通过mybatis实现orm,即对象与关系模型之间的转换。

我们是通过java里面的接口类与.xml里面的配置文件实现的。

如下面的文件所示:

安卓系统部署java web_android实例讲解----Tomcat部署Web应用方法总结_第2张图片

依据从上到下的顺序各个文件内容如下:

1)8c877572857205450d8e84fc9aabfbe6.png

package zhuxuekui.data;

import java.util.List;

import zhuxuekui.model.Poi;

public interface PoiMapper {

/*

* 存储poi信息

*/

void insertPoi(Poi poi);

/*

* 获取Poi列表,如果username为空则返回所有的poi信息

*/

List getPoi(String username);

}

2)cf0b1a03ae8e2a5ce9bc73e09237a05d.png

package zhuxuekui.data;

import zhuxuekui.model.User;

public interface UserMapper {

User selectUser(String username);

}

3)4cedfba05176ea1e6f04c99de8e56c19.png

/p>

PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-config.dtd">

//事务管理器

自动化配置,实现ORM转换。通过mybatis实现java与db之间的连接。

4)8af05a15473e15487b35a6154d22b802.png

/p>

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

select * from poi

where username like #{value}

insert into poi

(id,name,city,address,phone_num,lat,lon,username)

values

(#{id},#{name},#{city},#{address},#{phoneNum},#{lat},#{lon},#{username})

5)8d162ff1720ca430985e553aa3bde2d8.png

/p>

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

resultMap="userResultMap">

select

*

from user where username = #{username}

整体结构体如下:

安卓系统部署java web_android实例讲解----Tomcat部署Web应用方法总结_第3张图片

二、程序讲解

1、在程序开发当中,我们需要使用相对路径,绝对路径不利于他人使用。

比如下方的packages包,我们需要建立一个packages文件夹,然后将这些jar直接拖到这个文件夹下面。

然后,右击 构建路径---配置构建路径---添加JAR。如图所示,找到我们刚刚添加的jar包。添加引用。注:这就是相对路径,提高了重用性。

安卓系统部署java web_android实例讲解----Tomcat部署Web应用方法总结_第4张图片

安卓系统部署java web_android实例讲解----Tomcat部署Web应用方法总结_第5张图片

2、看下面的程序

安卓系统部署java web_android实例讲解----Tomcat部署Web应用方法总结_第6张图片

package zhuxuekui.model;

public class Poi {

public String id;

public String name;

public String city;

public String address;

public String phoneNum;

public long lat;

public long lon;

public String username;

}

没有用private,所以我们可以不用get与set方法。

这里只有一个public修饰,只是为了测试,所以不用get与set方法了。

3、如何通过配置文件链接java与mysql。

数据是怎么来的,这是我们需要关心的。

安卓系统部署java web_android实例讲解----Tomcat部署Web应用方法总结_第7张图片

安卓系统部署java web_android实例讲解----Tomcat部署Web应用方法总结_第8张图片

通过id以及一些sql语句实现。xml(配置文件)里面的id与java里面的接口类里面的函数是一一对应的。

然后xml配置里面也有一些个sql语句与mysql相连接。

4、configuration.xml文件介绍

/p>

PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-config.dtd">

//起别名,相当于C++里面的typedef。

//输出的

//java 开发环境, 开发,测试,预上线,上线。

//事物,业务处理器

//合并的

下面URL这句话告诉我们,通过什么方式,走什么协议,打开在哪的,哪一个数据库,他的编码是什么

通过jdbc方式,走mysql的数据访问协议,打开本地的3306端口的Poi数据库,以utf8编码方式打开。

数据库的

//路径

5、如何把java代码挂到tomcat上去

1)、更改此目录下的E:\Program Files\Apache Software Foundation\Tomcat 7.0\conf  中的service.xml文件,添加一行

unpackWARs="true" autoDeploy="true">

reloadable="true"/>

docBase就是加载你的路径的,可以是相对路径,也可以是绝对路径。这个是写死的,后面会自动加载后面的WEB-INF后面的web.xml文件里面的内容。

注意两点:必须要重启电脑,路径必须要写对。是/。不是其他什么。

方法如下:

让tomcat只运行conf/server.xml中指定的web应用

可以有以下2种办法:

实现一:

1)将要部署的WEB应用放在webapps以外的路径, 并在server.xml相应的Context 中的docBase 指定.

2)删除webapps中的所有文件夹, 以及conf/catalina/localhost下所有xml文件.

注: webapps是server.xml中的Host 元素的appBase 属性的值.

实现二:

修改server.xml中Host 元素的属性, 添加或修改: deployXML ="false" deployOnStartup ="false" autoDeploy="false"

含义:

deployXML ="false" : 不部署conf/catalina/localhost下的xml相应的WEB应用

deployOnStartup ="false" :tomcat启动时, 不部署webapps下的所有web应用

autoDeploy ="false"  :避免tomcat在扫描改动时, 再次把webapps下的web应用给部署进来.

注:

Tomcat中webapps目录下不能直接存放网页格式的文件,否则无法访问到该文件,必须有子目录才能访问该网页文件。

例如:我们直接将index.html放在webapps目录中,通过浏览器http://localhost:8080/index.html是无法访问到index.html的。而必须要webapps/petweb/index.html才可以通过http://localhost:8080/petweb/index.html访问到index.html页面。

2)、在项目中建立指定的目录,如下所示。

这样一来,我们编译完之后,不是在bin之下了,可以删掉bin(也可以不删)。建立web.xml文件,它是在WEB-INF下面。

web.xml就是tomcat与servlet的一个桥梁。

安卓系统部署java web_android实例讲解----Tomcat部署Web应用方法总结_第9张图片

其内容为:

1:

2:

3:

4: login //给servlet起一个名字

5: zhuxuekui.service.SrvUser//执行的是哪一个类

6: 1 //当tomcat运行时候就预加载

7:

8:

9:

10: login

11: /login //url的表达式,访问login时候执行这个表达式

12:

13:

写完这个之后,我们要写zhuxuekui.service.SrvUser.java.这个就是我们自己写的一个servlet。

什么是servlet?

其实他就是一个壳子,它是java提供的webservice开发的一种接口。我们如果想要再tomcat上门挂一个服务的话,只需要实现类似于httpservlet这么一个接口即可。然后通过web.xml配置文件将我们所写的servlet的实例挂载到tomcat上面去。servlet里面有很多的方法,比如有service方法、doget方法、dopost方法等。

package zhuxuekui.service;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.ibatis.session.SqlSession;

import zhuxuekui.data.UserMapper;

import zhuxuekui.model.User;

/**

* 最简单的Servlet

*

*/

public class SrvUser extends HttpServlet {

private static final long serialVersionUID = 1L;

@Override

protected void service(HttpServletRequest req, HttpServletResponse res)

throws ServletException, IOException {

res.getWriter().println("Hello World||||!");

super.service(req, res);

}

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse res)

throws ServletException, IOException {

// String resource = "/com/arthur/data/Configuration.xml";

// Reader reader;

// try {

// reader = Resources.getResourceAsReader(resource);

// Constants.SQL_FACTORY = new SqlSessionFactoryBuilder()

// .build(reader);

// } catch (Exception e) {

// e.printStackTrace();

// e.printStackTrace(res.getWriter());

// }

}

// @Override

// protected void doPost(HttpServletRequest req, HttpServletResponse resp)

// throws ServletException, IOException {

// String userName = req.getParameter("username");

// SqlSession session = Constants.SQLFactory().openSession();

// UserMapper mapper = session.getMapper(UserMapper.class);

// User user = mapper.selectUser(userName);

// if (user != null) {

// resp.setStatus(200);

// } else {

// resp.sendError(345, "用户名密码不正确!");

// }

// }

}

弄完这个后,我们就需要编译了,项目---清理,然后会在我们建立的webapp下面生成.class等文件。

弄完这些后,我们就需要在浏览器中访问,界面如下:

安卓系统部署java web_android实例讲解----Tomcat部署Web应用方法总结_第10张图片

你可能感兴趣的:(安卓系统部署java,web)