我需要创建一个处理http请求和路由然后到适当操作的服务器。我打算只使用Java,因为这是我最熟悉的。
我在使用Java和Jersey之前创建了一个Web应用程序。但是,或者这个Web服务器,它不需要是Restful。它需要发送RPC样式的请求。所以url会有查询参数。
使用什么好的Java框架?我试过Spring但是因为它对我来说似乎非常矫枉过正。我如何理解Spring是一个用于具有许多活动部件的大型项目的框架。 Spring使这些部分之间的连接更容易。
我在考虑使用jax-ws,但它似乎已经从我找到的资源中过时了。
答案 0 :(得分:1)
如果您不喜欢OR,您不愿意使用Spring /任何其他框架,那么您只需编写一个简单Servlet,它通过不同的Controller类处理您的请求(确实处理业务逻辑)。
为整个应用程序保留ONE Single Servlet只不过是遵循FrontController模式,大多数流行的框架(Spring / Struts / JSF / etc ..)都有,这有几个优点。
<强> Web.xml中:强>
<web-app>
<display-name>MyApplication</display-name>
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>com.myapp.MyServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
MyServlet.java(充当前端控制器处理所有应用程序请求):
package com.myapp;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class MyServlet extends HttpServlet {
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException {
if(request.getRequestURI().equals("/abc")) {
new ABC().callabc();
} else if(request.getRequestURI().equals("/def")) {
new DEF().calldef();
}
//ADD Code here to Send Ack back to the caller
// Ack Code Ends here
}
}