【发布时间】:2014-07-07 09:13:59
【问题描述】:
我有一个使用 JSF 和 Spring 开发的项目。
我的实习生必须创建一种“网络服务”来返回 json,他使用该 json 来使用 ajax/jquery 查询制作一些图形。
We read jsf 并不是制作 Web 服务风格应用程序的最佳材料。我们让它与 jsf 一起工作,但我们了解到最好的方法是制作一个简单的 servlet 或使用 JAX-RS。
为了尽可能简单,并使其理解基础,我们通过一个简单的 servlet 类。
所以我们只在web.xml中配置
<servlet>
<servlet-name>ServletNormal</servlet-name>
<servlet-class>com.clb.genomic.lyon.beans.ServletNormal</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ServletNormal</servlet-name>
<url-pattern>/ServletNormal.do/*</url-pattern>
</servlet-mapping>
然后是实习生一个简单的垃圾代码来测试:
public class ServletNormal extends HttpServlet{
private static final long serialVersionUID = 123L;
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("application/json");
String paramAuteur = request.getParameter( "projet" );
String message= "";
// Test with harcoded json
if(paramAuteur.equals("Profile")) {
message = "{\"value\":[23,58,87,115],\"Categorie\":[\"1-2013\",\"2-2013\",\"3-2013\",\"4-2013\"]}" ;
}
else if(paramAuteur.equals("Fake1")){
message = "{\"value\":[23,58,87,115,141,173,203],\"Categorie\":[\"1-2013\",\"2-2013\",\"3-2013\",\"4-2013\",\"5-2013\",\"6-2013\",\"7-2013\"]}" ;
}
else{
message = "{\"value\":[23,58,87,115,141,173,203,227,245,262,277,300],\"Categorie\":[\"1-2013\",\"2-2013\",\"3-2013\",\"4-2013\",\"5-2013\",\"6-2013\",\"7-2013\",\"8-2013\",\"9-2013\",\"10-2013\",\"11-2013\",\"12-2013\"]}" ;
}
PrintWriter out = response.getWriter();
out.print(message);
}
}
然后在 ajax/jquery 中,我们将 servlet 称为:/ServletNormal.do/?projet=Profile 以获取用于图形绘制的 json。
这很好用......但可以肯定的是,这种方法是否干净(硬编码 Json 除外)?还是它很脏,我们不应该这样做?有没有更好的办法?
【问题讨论】:
标签: java spring web-services jsf-2 servlet-3.0