restlet 是今年比较流行一个实现rest设计理想的一个框架。
首先我们去官网下载restlet 百度一下很快就能看到
然后我们先在eclipse下新建一个java项目
java项目导入一个包
就是你刚刚下载的restlet包 把的lib文件夹 找到restlet.jar和restlet.JSON.JAR 载入包以后
我们就可以好好干活了
首先建立个main的类
import org.restlet.Application;
import org.restlet.Component;
import org.restlet.Server;
import org.restlet.data.CharacterSet;
import org.restlet.data.Protocol;
public class Index {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Component component = new Component();//
Server server = component.getServers().add(Protocol.HTTP , 8000);
component.getClients().add(Protocol.FILE);
Application aa=new Application();/*建立一个应用*/
aa.getMetadataService().setDefaultCharacterSet(CharacterSet.UTF_8);/*使用一个字符集*/
component.getDefaultHost().attachDefault(aa);/*默认的处理组件*/
try {
component.start();
} catch (Exception e) {
e.printStackTrace();
}
}
}
先建一个组件component 从组件类得到一个服务server对象
建立个应用,从应用上添加协议,如http协议。
客服端的client协议。
建立一个应用
应用的编码设计成UTF—8
然后component开始执行
import org.app.Index;
import org.restlet.Application;
import org.restlet.Restlet;
import org.restlet.resource.Directory;
import org.restlet.routing.Router;
import org.restlet.routing.TemplateRoute;
public class MyApplication extends Application{
/**
* @param args
*/
@Override
public Restlet createInboundRoot() {
Router router = new Router(getContext());//建立一个路由器,每个类来分析。
TemplateRoute route = router.attach("/hello", HelloWorldResource.class);//
Directory dir=new Directory(getContext(), "file:///D:/xiangmu1/text2");
router.attach("/",dir);
}
}
刚刚有个MyApplication 是继承制Application
这个函数 先新建一个函数,在函数里面建立路由,路由里面有
getContext()是得到上下文
建立一个路由器 router 参数是getContext();
路由还能接路由
也能接处理的类。
也能接静态文件。
现在创造一个App 应用
后面跟一个
也是router.attche();
用一个类来解决
这个类是继承来ServerResoure.这个函数
@get 表示请求方式是get
@post 表示是请求是post
@delete 表示请求是delete
package org.flacro;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.jar.JarEntry;
import org.apache.ibatis.session.SqlSession;
import org.database.DBconnetor;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.po.MyBatisManager;
import org.po.User;
import org.po.UserMapper;
import org.restlet.data.Form;
import org.restlet.ext.json.JsonRepresentation;
import org.restlet.representation.Representation;
import org.restlet.resource.Delete;
import org.restlet.resource.Get;
import org.restlet.resource.Post;
import org.restlet.resource.ServerResource;
/**
* Resource which has only one representation.
* @param <UseMapper>
*/
public class HelloWorldResource<UseMapper> extends ServerResource {
@Get
public String represent() {
Form form =getQuery();//这是获得query
String query=form.getFirstValue("query");//
try{
int number =Integer.parseInt(query);
return "你输入的是:"+number;
}catch(Exception e){
return "go nothings";
}
}
@Post /*接受一个json对象。。*/
public Representation create(JsonRepresentation e) throws JSONException {
/*Form form =new Form(e);
String paents= form.getFirstValue("query");
System.out.println(paents);*/
/* JSONObject jo =e.getJsonObject();//Json
String username=jo.getString("user");
String password=jo.getString("password");*/
SqlSession session =MyBatisManager.getSession();
UserMapper user =session.getMapper(UserMapper.class);
User user1 =user.selectByPrimaryKey("flacro0");
JSONObject result=new JSONObject();
JSONArray jaArray = new JSONArray();
/*数据库链接和发送!*/
/*DBconnetor db=new DBconnetor();
Connection connection=db.getConnection();
String sql="select * from user";
PreparedStatement ps=null;
try{
ps=connection.prepareStatement(sql);
ResultSet rs=ps.executeQuery();
while (rs.next()) {
System.out.println(rs.getString("username"));
jaArray.put(rs.getString("username"));
}
}catch(SQLException e1){
e1.printStackTrace();
}*/
System.out.print("~!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
result.put("message", user1.getEmail());
Representation re=new JsonRepresentation(result);
return re;
}
@Delete
public String delete1(JsonRepresentation e){
return "succssful";
}
}
上面讲述了 如何使用get post delete函数。
这里用到了一个 MyBatis (主要是方便数据库操作)
所需要jar包:mybatis-3.x.x.jar 、如果需要和spring整合,还需要加入相关的包
1:看项目目录 红颜色不要关心
2:按照步骤:
1:加入jar包
2:创建数据源(configuration.xml)创建数据库(此处省略)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED"><!--这里是配置文件。。 -->
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/juddiv3" />
<property name="username" value="root" />
<property name="password" value="admin" />
<property name="driver.encoding" value="UTF8"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="org/po/UserMapper.xml" /> <!-- 这个事映射映射到哪···又里面的东西决定 -->
</mappers>
</configuration>
还有个eclipse 下的工具
如果你使用过hibernate的eclipse插件自动创建DAO文件,那么就容易理解下面介绍的内容;如果你还没有用过hibernate也无妨。下面介绍使用mybatis 3的eclipse插件自动生成相关文件以及如何使用这些文件。
eclipse插件安装地址:http://mybatis.googlecode.com/svn/sub-projects/generator/trunk/eclipse/UpdateSite/
附件有link安装包,link安装方式参考http://maimode.iteye.com/admin/blogs/1164524
MyBatis Generator详细介绍参见:http://code.google.com/p/mybatis/wiki/Generator
安装插件的过程就不说了,安装完后,eclipse中File-》new-》other中会发现多了mybatis选项说明插件安装成功。
如何使用插件
在任意项目中利用上图中的向导创建generatorConfig.xml文件(名称可修改)然后修改文件内容,主要是设置连接数据的相关参数:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" >
<generatorConfiguration>
<classPathEntry
location="D:\eclipse-jee-juno-SR1-win32-x86_64\workplace\mysql-connector-java-5.1.22-bin.jar" /><!-- 数据库的链接包 -->
<context id="context1">
<jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/juddiv3"
userId="root" password="admin" /><!-- 数据的链接 -->
<javaModelGenerator targetPackage="org.po" targetProject="TestA" /><!-- 将TestA转化的对象全部放到org。po -->
<sqlMapGenerator targetPackage="org.po" targetProject="TestA" />
<javaClientGenerator targetPackage="org.po" targetProject="TestA" type="XMLMAPPER" />
<table schema="juddiv3" tableName="user">
<!-- <generatedKey column="username" identity="true" sqlStatement="JDBC" /> --><!-- generatedKey自动生成的 -->
</table>
<!-- <table schema="juddiv3" tableName="approve">
<generatedKey column="id" identity="true" sqlStatement="JDBC" />
</table> -->
</context>
</generatorConfiguration>
然后用右键点击这个xml文件 映射了
这些事自己做了个一个小小demo的想法
可能写的比较乱