大家看一下我使用Jersey做的一个简单的web程序,以下是程序主要的各个类:
类一,Main.java,代码如下:
import java.io.IOException; import com.sun.jersey.api.container.httpserver.HttpServerFactory; import com.sun.net.httpserver.HttpServer; public class Main { public static void main(String[] args) throws IOException { HttpServer server = HttpServerFactory.create("http://localhost:9998/"); server.start(); System.out.println("Server running"); System.out.println("Visit: http://localhost:9998/"); System.out.println("Hit return to stop..."); System.in.read(); System.out.println("Stopping server"); server.stop(0); System.out.println("Server stopped"); System.exit(-1); } }
类二,Urls.java,代码如下:
import java.util.HashMap; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import com.jersey.student.Words; import com.sun.jersey.spi.resource.Singleton; @Singleton //1. 访问路径 @Path("{name}") public class Urls { HashMap urls = new HashMap(); public Urls() { urls.put("www.163.com", new Words("欢欢喜喜", "过新年")); urls.put("www.sina.com", new Words("今年过节不送礼", "送礼只送脑白金!")); } // 表示返回的方法 @GET // 表示返回的格式 @Produces("text/xml") public String getInfo(@PathParam("name") String url) { // 2. 参数传入 Words ws = urls.get(url); return "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n <word>" + ws.getA() + ws.getB() + "</word>"; } }
类三,Words.java,代码如下:
import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement public class Words { String a; String b; public String getA() { return a; } public void setA(String a) { this.a = a; } public String getB() { return b; } public void setB(String b) { this.b = b; } public Words(String a,String b){ this.a=a; this.b=b; } }
由于本例并没有使用maven服务器,因此需要添加相应的jar包进行支持,具体的jar大家可以在https://jersey.dev.java.net/source/browse/*checkout*/jersey/tags/jersey-1.0.1/jersey/dependencies.html中找到。然后在Eclipse中通过运行Main.java启动服务。然后在浏览器中通过输入http://localhost:9998/+访问参数(“www.163.com”或者“www.sina.com”)查看效果。
通过这个简单的例子,我可以得到一些基本的结论:@GET标签是可以获得HTTP中GET请求的内容。在Urls.java中的@GET标签下的getInfo方法中,可以通过@PathParam("name")获得浏览器中所输入的访问参数,并且将其赋给String url参数以便进行相应的操作。
我看了网上的很多资料。Jersey一般要结合其他框架,如:Hibernate,Spring等一起使用。但是好多的例子和教程是说如何从数据库提取数据,没有一个例子是讲如何从form表单获取值添加到数据库的。对于这一点,我始终没有搞清楚!而且,Jersey中的其他方法该如何使用,目前正在实践中!希望大家能够积极献策!在此表示感谢!
附件中是相应的项目源码。项目文件夹中的lib文件夹是Jersey在没有maven时所需要的jar包。如果在Netbean的开发环境下,是不需要的。