【发布时间】:2012-01-22 10:09:50
【问题描述】:
我需要使用具有不同 URL 模式的单个 servlet。我已经在tomcat服务器中尝试了如下。但是我想知道真正的编码标准请帮帮我?
String servletPath = request.getServletPath();
if("/HelloServletone".equalsIgnoreCase(servletPath))
{
System.err.println("1?*");
///logic move to controller one
}
if("/HelloServlettwo".equalsIgnoreCase(servletPath))
{
System.err.println("2*");
///logic move to controller two
}
web.xml
<servlet>
<servlet-name>Hello</servlet-name>
<servlet-class>HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Hello</servlet-name>
<url-pattern>/HelloServletone</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Hello</servlet-name>
<url-pattern>/HelloServlettwo</url-pattern>
</servlet-mapping>
jsp1:
<form method="post" action="HelloServletone">
//getting inputs and move to servlet
<input type="submit" value="login " />
jsp2:
<form method="post" action="HelloServlettwo">
//getting inputs and move to servlet
【问题讨论】:
-
我的 servlet 根据调用它的路径做了两件不同的事情,为什么不创建两个不同的 servlet?
-
Nizet 我的目标是使用单个 servlet 并为每个不同的 jsp 使用多个控制器..
-
除非这是为了学习,否则你就是在重新发明轮子。使用 MVC 框架来为你做这件事:Stripes、Spring MVC、Struts2 等等。
-
所以你的建议是,必须为不同的逻辑使用不同的servlet...有没有办法在servlet中定义不同的方法并从不同的jsp调用它...如果是,我们可以使用单个 servlet 对 NIzet 有什么想法吗?
-
这种功能由 MVC 框架(如 Stripes、Spring MVC 等)提供。除非您尝试实现这样的框架是为了娱乐或学习,否则请选择其中一个(Stripes非常简单,而且设计得非常好)并使用它。