restlet开发实践

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选项说明插件安装成功。

 

插件安装成功后new选项中多了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的想法


可能写的比较乱 



 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值