先看代码:一个html    <form action="aaa" method="get">
    请输入参数:<input type="text" name="ref">
    <input type="submit" value="tijiao">
    </form>一个servletpublic void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { String a=request.getParameter("ref");
System.out.println(a);
System.out.println("**************");
}
web.xml文件
<servlet>
    <servlet-name>Test</servlet-name>
    <servlet-class>com.ser.Test</servlet-class>
  </servlet>  <servlet-mapping>
    <servlet-name>Test</servlet-name>
    <url-pattern>/demo/MyHtml</url-pattern>
  </servlet-mapping>
我的问题是:
html提交请求,然后找到相应的servlet处理请求,这一步结果出来了,而<form action="aaa" method="get">中的action有什么作用,我把它的值改成别的都行,可是刚才看教材说不能随便改,我问的是这个action与servlet有什么关系,action要写成html的文件名吗?action通俗点说它是干什么的?谢谢各位了!

解决方案 »

  1.   

    <servlet-mapping>
        <servlet-name>Test</servlet-name>
        <url-pattern>/demo/MyHtml</url-pattern>
      </servlet-mapping>
    action=demo/MyHtml注意:没有/action 表示接受表单的后台文件(你的java类)
      

  2.   

    回楼上:我怎么执行成功了呢,这个程序执行成功后是一个空白页 然后再console窗口里打印你提交的东西,
    这个html里有个action,它后面没有页面,为什么写什么都行,我还是不是很明白你的意思....
      

  3.   

    action的名字哟要和web。xml中的映射路劲相同
    action用来处理jsp或html提交的请求。
      

  4.   

    Action当然不能随便写的了!
    Action可以是一个JSP,html文件,也可以是servlet或者Struts2里面的Action
    在你的例子里Action应该就是要处理的servlet吧,也就是你的xml文件里配置的映射路径
    <url-pattern>/demo/MyHtml</url-pattern>
    所以当你的Action值为demo/MyHtml这个的时候,提交表单后就会根据xml文件找到这个路径,然后找到你的servlet(Test),继而根据servlet找到对应的类(com.ser.Test),然后调用这个servlet类的dopost,或者doget方法
      

  5.   


    你把action中内容修改成其他的后,要在前台刷新你的界面(最好用察看源代码看看form里面的action是不是你修改完的那个).这样提交你就会出404错误了
      

  6.   

    action的值是url-pattern所指的内容
      

  7.   

    action是你当前页面要提交到的地方,默认是当前页面。不可以随便写的。
      

  8.   

    action是你表单要提交到的服务器地址里面可以写绝对路径(建议)
      

  9.   


     <form action="demo/MyHtml" method="get">
        请输入参数:<input type="text" name="ref">
        <input type="submit" value="tijiao">
        </form>
    这样改就OK了
    调用是这样的先通过<url-pattern>找到Demo/myHtml这个虚拟目录,然后就知道有text这个类名,在通过这个类名<servlet-name>,找到实际类地址<servlet-class>,然后就调用text这个类
      

  10.   

    学东西还是要了解里面的运行原理,知道每一步的过程。这样才能尽量少犯错!!good luck
      

  11.   

    lz 确定一下jsp页面编译之后是否是 action=‘aaa’ 如果你真的是这样不可能执行的 找不到对应的servlet
      

  12.   

    你应该是要跳转到 aaa这个servlet把。把地址配置正确把。不行就用Eclipse直接加一个不要手动写了。