我想实现一个表示Web服务端点的servlet。该servlet应拦截发送给它的XML,并在其收到的其他信息中读取其内容。我知道这是可能的,因为Spring-WS采用了类似的方法。你能建议我如何实现这样的servlet吗?
答案 0 :(得分:1)
这是一种天真的方式,可以满足您的需求,希望它能帮助您入门。
你有一个图书馆应用程序。假设您希望拥有一个API端点,客户端可以使用该端点创建由xml文件描述的书籍。 xml文件将被发送到Servlet
示例端点API网址是:
http://localhost:8080/api/books
创建一个名为CreateBookServlet的Servlet
// servlet mapping
<servlet-mapping>
<servlet-name>CreateBookServlet</servlet-name>
<url-pattern>/api/books</url-pattern>
</servlet-mapping>
// ...
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 {
}
}
向CreateBookServlet(http://localhost:8080/api/books)发送一个帖子请求,其参数名称为&#34; xmlbook&#34;和value是一个简单的字符串,包含要创建的新书的xml代码。当然,可以通过读取xml文件来创建xml字符串。
这里省略了许多重要的事情,比如安全性,xml解析等等,但是我希望这个简单的方法可以满足你的要求。