[深入浅出jetty 03]简单的restful入门 -凯发k8网页登录

关注后端架构、中间件、分布式和并发编程

   :: 凯发k8网页登录首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  111 随笔 :: 10 文章 :: 2680 评论 :: 0 trackbacks
老实说本来这是一篇简单的restful的入门demo,和jetty无关,但是为了方便,用到了jetty的maven插件。勉勉强强算是和jetty有关吧。

项目地址: 

文件列表


包含如下文件:

  • git忽略文件
  • readme文件
  • pom文件
  • 一个简单的controller文件
  • 一个log4j的配置文件
  • 一个简单的spring mvc配置
  • 一个简单的web.xml

maven配置

为了能够方便从jetty:run来启动web容器,使用jetty的maven插件。
需要特别注意的是,从jetty7.5.3开始就必须用maven 3了,以前使用的maven 2不能使用了,就为了这问题,我跟踪了很久,大囧。
这里使用jetty最新的maven插件,同样会启动最新的jetty8.1.1 来测试。

    
        
            org.mortbay.jetty
            jetty-maven-plugin
            8.1.1.v20120215
        

    

web.xml

这是一个简单的web.xml配置,主要配置spring servlet。当然这里也辅助配置了一个log4j,方便查看日志输出,不配置也没关系。
另外也没有使用servlet 3.0的配置。

xml version="1.0" encoding="utf-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"
    xsi:schemalocation
="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version
="2.4">
    <display-name>jetty-rest-demodisplay-name>
    <context-param>
        <param-name>log4jconfiglocationparam-name>
        <param-value>classpath:log4j.propertiesparam-value>
    context-param>
    <listener>
        <listener-class>org.springframework.web.util.log4jconfiglistenerlistener-class>
    listener>
    <servlet>
        <servlet-name>dispatcherservlet-name>
        <servlet-class>org.springframework.web.servlet.dispatcherservletservlet-class>
        <load-on-startup>1load-on-startup>
    servlet>
    <servlet-mapping>
        <servlet-name>dispatcherservlet-name>
        <url-pattern>/*url-pattern>
    servlet-mapping>
web-app>

dispatcher-servlet.xml

接下来是spring mvc的配置。
包含三部分:要扫描的住解包,mvc注解驱动以及jsp的渲染映射(其实这个例子中没有用到)。
xml version="1.0" encoding="utf-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"
    xmlns:context
="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemalocation
="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
            http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd"
>
    <context:component-scan base-package="info.imxylz.study.jetty.rest" />
    <mvc:annotation-driven />
    <bean class="org.springframework.web.servlet.view.internalresourceviewresolver">
        <property name="prefix" value="/web-inf/pages/">property>
        <property name="suffix" value=".jsp">property>
        <property name="viewclass" value="org.springframework.web.servlet.view.jstlview">property>
    bean>
beans>

controller

下载开始写第一个controller,当然这个controller稍微有一点点别扭。
直接返回字符串,另外将索引页映射到一个字符串上。(也不对中文进行处理)

package info.imxylz.study.jetty.rest.controller;

import org.springframework.stereotype.controller;
import org.springframework.web.bind.annotation.pathvariable;
import org.springframework.web.bind.annotation.requestmapping;
import org.springframework.web.bind.annotation.responsebody;

/**
 * a rest demo (spring 3.x)
 * 
 * 
@author adyliu (imxylz@gmail.com)
 * 
@since 2012-3-9
 
*/
@controller
public class democontroller {

    @responsebody
    @requestmapping("/index/{name}/")
    public string index(@pathvariable("name") string name) {
        return "welcome, "   name;
    }
    @responsebody
    @requestmapping("")
    public string index() {
        return "this is a rest demo";
    }
}

access

现在该是打开浏览器显示下了。
http://localhost:8080/index/ady/
http://localhost:8080/index/ady liu/
http://localhost:8080/

好了,这算是一个最简单的入门例子了。
下面的参考资源中有git的源码。

resources

  • source code: git@github.com:adyliu/jetty-rest-demo.git (branch: v1.0-helloworld)
  • jetty maven plugin: 
  • spring mvc: 


©2009-2014 imxylz
|求贤若渴
posted on 2012-03-09 17:52 imxylz 阅读(8330) 评论(0)  编辑  收藏 所属分类: jetty

©2009-2014
网站地图