日期:2014-05-17  浏览次数:20823 次

关于如何在一个servlet中实现多个功能
最近做项目,然后规范是实体对象的业务处理交给servlet完成。但是我觉得是一个新增的功能就是一个servlet一个修改的功能又是一个servlet我想能不能把这两个功能 同时放在一个servlet里。只是表单提交的时候传个值取判断。我记得自己是在哪里有看到过的,忘记了!还请高手赐教!

------解决方案--------------------
一个功能
<from action="servletName?op=1"...
另一个功能
<from action="servletName?op=2"...

if(op==1){ 一个功能

这个意思?
------解决方案--------------------
加个参数 根据参数调用不同的方法 例如action=add 或者action=update
------解决方案--------------------
可以啊,Struts 1 就是这么做的,不过 Struts 1 有另外的配置文件。
------解决方案--------------------
建议你先这样做吧,照你想的肯定是可以做到的,但是有点麻烦,对基础编程有很高的要求。除了 Servlet 之外,还要熟悉反射、XML 或者其他配置文件的解析。

你可以自己想想看该如何做,呵呵。

给你一个提示,将一个 Servlet 映射成为 *.htm 的 URL pattern,根据 xxx.htm 的 xxx 通过配置文件去寻找具体的执行类就可以了。当然了,这个 Servlet 在这里起了核心控制器的作用,呵呵。

这是一种 J2EE 的设计模式,名字叫“前端控制器”,可以在 Oracle 的 Sun 开发者网络上找到相关资料:

J2EE 核心模式目录及结构
http://java.sun.com/blueprints/corej2eepatterns/Patterns/

前端控制器(front controller)
http://java.sun.com/blueprints/corej2eepatterns/Patterns/FrontController.html
------解决方案--------------------
探讨

一个功能
<from action="servletName?op=1"...
另一个功能
<from action="servletName?op=2"...

if(op==1){ 一个功能

这个意思?

------解决方案--------------------
你的操作方法,挺好的~~

有空可以用用struts,用起来挺简单的~~~
------解决方案--------------------
有一个小的建议:

action.equals("remove")

关于这句话,建议写成"remove".equals(action)

针对你的话,你开始要判断action是否为空~
------解决方案--------------------
有时间看看struts1.x的源码吧,我给你个简单的实现方式

先写个接口,然后让所有的操作实现这个接口
Java code

public interface Action {      
          
  
    public String execute(HttpServletRequest request, HttpServletResponse response)  throws IOException, ServletException,ActionException;      
}