使用Servlet的自定义Web服务

时间:2016-05-13 11:26:50

标签: web-services servlets

我想实现一个表示Web服务端点的servlet。该servlet应拦截发送给它的XML,并在其收到的其他信息中读取其内容。我知道这是可能的,因为Spring-WS采用了类似的方法。你能建议我如何实现这样的servlet吗?

1 个答案:

答案 0 :(得分:1)

这是一种天真的方式,可以满足您的需求,希望它能帮助您入门。

方案

你有一个图书馆应用程序。假设您希望拥有一个API端点,客户端可以使用该端点创建由xml文件描述的书籍。 xml文件将被发送到Servlet 示例端点API网址是:
http://localhost:8080/api/books

第1步

创建一个名为CreateBookServlet的Servlet

// servlet mapping
<servlet-mapping>
    <servlet-name>CreateBookServlet</servlet-name>
    <url-pattern>/api/books</url-pattern>
</servlet-mapping>

第2步

// ...
public class CreateBookServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String xmlStr = request.getParameter("xmlbook");

        // better use some xml library to parse xml to Book object
        Book book = xmlLibrary.parse(xmlStr);
        //save the Book object to database
        bookService.create(book);
    }

    // since it's a creation of an entity, we use POST instead of GET method
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }
}

第3步

向CreateBookServlet(http://localhost:8080/api/books)发送一个帖子请求,其参数名称为&#34; xmlbook&#34;和value是一个简单的字符串,包含要创建的新书的xml代码。当然,可以通过读取xml文件来创建xml字符串。

摘要

这里省略了许多重要的事情,比如安全性,xml解析等等,但是我希望这个简单的方法可以满足你的要求。