此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
楼主【Sunksubmarine】截止到2008-06-26 23:01:48的历史汇总数据(不包括此帖):
发帖数:9                  发帖分:320                
结贴数:8                  结贴分:220                
未结数:1                  未结分:100                
结贴率:88.89 %            结分率:68.75 %            
楼主加油

解决方案 »

  1.   

    action地址提交到服务器,由web.xml来转到相应的地址去的,似乎与servlet无关吧
      

  2.   

    应该是 当你提交一个表单后,将向服务器提交一个×××.do的请求,在你的tomcat端的web.xml中配置了servlet和servlet-mapping 设置了要拦截所有的.do请求
    当你的.do 请求到达服务器后,tomcat将此请求传递给该servlet,然后就是处理请求了。
      

  3.   

    lz用servlet+javaBean?request.getParameter();
    用struts?直接从form中取就可以了
      

  4.   

    你们误会我的意思了我是想自己开发MVC框架<servlet>
        <servlet-name>ControllerServlet</servlet-name>
        <servlet-class>controller.ControllerServlet</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>ControllerServlet</servlet-name>
        <url-pattern>*.action</url-pattern>
      </servlet-mapping>
    如上所示 我把所有.action的请求全部交给一个名为ControllerServlet来处理ControllerServlet为我的前端控制器之后我会实现读取我自己的XML然后利用反射机制将对应JavaBean加载进来其实就和struts的实现原理相同,只是为了学习而研究
    <form action="login.action"><form action="insert.action">
    我的问题是这个login.action和insert.action从servlet中的哪里获得?
      

  5.   

    如上所示 现在ControllerServlet接受的是所有.action的请求,我需要获得.action之前的URL进行ControllerMapping的映射;映射对应的javaBean
      

  6.   

    <servlet> 
        <servlet-name>ControllerServlet </servlet-name> 
        <servlet-class>controller.ControllerServlet </servlet-class> 
      </servlet> 
      <servlet-mapping> 
        <servlet-name>ControllerServlet </servlet-name> 
        <url-pattern>login.action </url-pattern> 
      </servlet-mapping>
    <servlet> 
        <servlet-name>ControllerServlet </servlet-name> 
        <servlet-class>controller.ControllerServlet </servlet-class> 
      </servlet> 
      <servlet-mapping> 
        <servlet-name>ControllerServlet </servlet-name> 
        <url-pattern>insert.action </url-pattern> 
      </servlet-mapping> 这样你的servlet就会映射到login.action和insert.action了..不过要注意的是"我的问题是这个login.action和insert.action从servlet中的哪里获得? "这不是从servlet里获得的,当servlet启动时候,首先要启动servletContext,
    那是servlet的上下文..
      

  7.   

    比如说login.action那么我需要获得login这个form action的值然后和我的XML经行比对然后找到LoginBean然后再利用反射构造javaBean:
    ......
    Class.forName("login.LoginBean")
    ......
    Method meth = cls.getMethod("setName", partypes); 
    ......
    Object arglist[] = new Object[1]; 
    arglist[0] = new String(request.getParameter("name"));
    Object obj = meth.invoke(t2, arglist);
    .....
    就和struts一样,反正我现在需要form action的值 就是login.action
    就是<form action="login.action">的login.action
      

  8.   


    servlet中不能获得吗?那struts是怎么实现的?struts1配制的是就是一个servlet:org.apache.struts.action.ActionServlet
    struts2配制的是一个filter:org.apache.struts2.dispatcher.FilterDispatcher
    webwork配制的也是一个servlet:com.opensymphony.webwork.dispatcher.ServletDispatcher
    Spring的MVC配制的还是一个servlet:org.springframework.web.servlet.DispatcherServlet他们都是*.action,所以我有理由相信servlet中仍然可以获得action的值
      

  9.   

    使用request.getServletPath()方法就可以获得请求的字符串