这是我测试用的servlet:
<servlet>
    <servlet-name>UploadServlet</servlet-name>
    <servlet-class>com.xiaofeng.servlet.UploadServlet</servlet-class>
</servlet><servlet-mapping>
    <servlet-name>UploadServlet</servlet-name>
    <url-pattern>/servlet/UploadServlet</url-pattern>
</servlet-mapping>调用这个servlet时:<form enctype="multipart/form-data" method = "post" action = "servlet/UploadServlet">action不能加.do
这是我学习servlet时见到的:
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>action里面就要加.do
我想请问如果我的action是web.up.upload.action.do,能调用第二个servlet吗?为什么啊?
新手求教高手指点一下

解决方案 »

  1.   

    就是你action要和<url-pattern>里的格式一样
    如果<url-pattern>里写了.do,action里就要写啊
      

  2.   

    就是你action要和<url-pattern>里的格式一样
    如果<url-pattern>里写了.do,action里就要写啊
      

  3.   

    你想要问什么呢  <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
      </servlet-mapping>
    是配置servlet的映射。
    你在<servlet>的设定里设定了servlet名字所对应的类了,
    下面要在<servlet-mapping>设置用什么URL来驱动那个servlet里配置的类。
    <url-pattern>就是你输入URL的类型
    *.do 的意思是URL里一切以.do结尾的URL都驱动servlet里设置的那个类。
    至于调用哪个servlet自然要在那个类里判断
    你说的这个好像是struts的配置吧,在web里加这句话的意思,就是把.do结尾的action都交给
    struts框架处理,你看看struts里面那个Aciton的源代码就能明白了。讲到这里,我就不明白你问
    >>我想请问如果我的action是web.up.upload.action.do,能调用第二个servlet吗?为什么啊?
    到底是想问什么
      

  4.   

    就是这样的如果我配置了这样一个servlet:  ...
      <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
      </servlet-mapping>我在提交form的时候<form enctype="multipart/form-data" method = "post" action = "xx.xxx.xxxx.action.do">这样可以调用到那个servlet吗?我认为貌似应该要写成这样*.*.*.do才可以的吧还有就是form里面的action="",servlet/xxxServlet,xxx.xxx.xxx.do这两种写法都可以吗?
      

  5.   

    如果一对一的话用这个
    <servlet-mapping>
        <servlet-name>xxxxxx</servlet-name>
        <url-pattern>/xx.xxx.xxxx.action.do</url-pattern>
    </servlet-mapping>
      

  6.   

    给你解释一下url-pattren吧
    假设你的contextroot是
    http://localhost:8080/sample
    那你配置url-pattern
    1.<url-pattern>*.do</url-pattern>
    下面的url都会驱动这个servlet
    http://localhost:8080/sample/.do
    http://localhost:8080/sample/xyz.do
    http://localhost:8080/sample/abc/xyz.co
    2.<url-pattern>/*</url-pattern>
    下面的url都会驱动这个servlet
    http://localhost:8080/sample/
    http://localhost:8080/sample/.do
    http://localhost:8080/sample/xyz.do
    http://localhost:8080/sample/abc/xyz.co
    http://localhost:8080/sample/abc/
    http://localhost:8080/sample/abc/xyz
    3.<url-pattern>/hello</url-pattern>
    http://localhost:8080/sample/hello前两种是多对1,最后一种是1对1
    这样讲不知道你明白没
      

  7.   

    改错
    上面的
    .co -> .do
      

  8.   

    好详细啊,多谢这位大侠,请问大侠知道jsp文件上传是怎么弄的吗?我最近就在忙这个东西,忙得我的头比较大......
    好不容易找到一个能够上传的案例,确出现了一个莫名奇妙的问题:http://topic.csdn.net/u/20101222/13/58dd156f-06ac-43af-9a41-6e71cc063a45.html
    本人邮箱[email protected]
    多谢了
      

  9.   

    引用楼主 xiaoair 的回复:
    这是我测试用的servlet:Java code
    <servlet>
    <servlet-name>UploadServlet</servlet-name>
    <servlet-class>com.xiaofeng.servlet.UploadServlet</servlet-class>
    </servlet><servlet-mapping>
    <se……