这几天学习sevlet,对于小白来说配置就是一个很操蛋的事情。有一个很重要的就是路径问题。
首先架构如下:
因为我的test1.html是写在cainiao文件夹里面,如果直接调用action=helloworld2;将找不到sevlet。因为相对路径是相对与webroot里面的,相当于你无法使用相对路径去调用你的上一层文件,所以要使用绝对路径,在hello这个文件下的sevlet。
在看下web.xml配置。
HelloWorld1</servlet-name> com.runoob.test.HelloWorld</servlet-class> </servlet> HelloWorld1</servlet-name> /HelloWorld</url-pattern> </servlet-mapping> HelloWorld1</servlet-name> /HelloWorld2</url-pattern> </servlet-mapping>
这里面servlet-calss是找在src中的java文件,文件名要一致,其他的名称都可以修改,但是在mapping中要保持和前面name的一致性。之前一直很糊涂这些名字是干什么的,后来这样总结下,sevlet-name只是在web.xml中起作用,他把各个相关联起来,在外面的h5或jsp中使用的是url-pattern的名称.这样就是在文件内部的用法。注意符号"/";
如果是在webroot下的直接目录下
相应sevlet</title> </head> 网址名: 网址: </form> </body> </html>
可以直接使用sevlet名。使用起来不同的原因主要还是web应用中的路径问题。