sevlet表单处理无法相应问题及web.xml配置.

这几天学习sevlet,对于小白来说配置就是一个很操蛋的事情。有一个很重要的就是路径问题。
首先架构如下:
这里写图片描述
因为我的test1.html是写在cainiao文件夹里面,如果直接调用action=helloworld2;将找不到sevlet。因为相对路径是相对与webroot里面的,相当于你无法使用相对路径去调用你的上一层文件,所以要使用绝对路径,在hello这个文件下的sevlet。
在看下web.xml配置。

<web-app>
  <servlet>
    <servlet-name>HelloWorld1</servlet-name>
    <servlet-class>com.runoob.test.HelloWorld</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>HelloWorld1</servlet-name>
    <url-pattern>/HelloWorld</url-pattern>
  </servlet-mapping>

  <servlet-mapping>
    <servlet-name>HelloWorld1</servlet-name>
    <url-pattern>/HelloWorld2</url-pattern>
  </servlet-mapping>

这里面servlet-calss是找在src中的java文件,文件名要一致,其他的名称都可以修改,但是在mapping中要保持和前面name的一致性。之前一直很糊涂这些名字是干什么的,后来这样总结下,sevlet-name只是在web.xml中起作用,他把各个相关联起来,在外面的h5或jsp中使用的是url-pattern的名称.这样就是在文件内部的用法。注意符号”/”;
如果是在webroot下的直接目录下

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>相应sevlet</title>
</head>
<body>
<form action="HelloWorld2" method="GET">
网址名:<input type="text" name="name">
<br />
网址:<input type="text" name="url" />
<input type="submit" value="提交" />
</form>
</body>
</html>

可以直接使用sevlet名。使用起来不同的原因主要还是web应用中的路径问题。

猜你喜欢

转载自blog.csdn.net/qq_40693171/article/details/80380696
今日推荐