java web 部署的问题

qq_25000867 2018-01-23 11:11:27
最近做一个小项目,模块做好后调试没有问题,但部署到服务器访问servlet时出现404错误,部署的路径是webroot/project,模块做的时候是放在webroot目录下的,调试可以正常运行,但是放在webroot/project下就不行了,部署方法是在Cataline/localhost目录下添加Employee1.2.xml(模块名字)

servlet的路径是:project/Employee1.2/web-inf/classes/Servlet/AddUserServlet
网页的路径是:project/Employee1.2/AddNewUser.html

Employee1.2.xml代码:
 <?xml version="1.0" encoding="UTF-8"?>
<Context docBase="E:\WebRoot\project" reloadable="ture" ></Context>


网页代码:
<body>
<form id="form1" name="form1" method="post" action="AddUserServlet">
<p>用户名:
<label for="textfield"></label>
<input type="text" name="uname" id="uname" />
</p>
<p>密码:
<label for="textfield2"></label>
<input type="password" name="upass" id="upass" />
</p>
<p>姓名:
<label for="textfield3"></label>
<input type="text" name="uxingming" id="uxingming" />
</p>
<p>用户权限:
<select name="uauthority" id="uauthority">
<option value="管理员">管理员</option>
<option value="操作员">操作员</option>
</select>
</p>
<p>
<input type="submit" name="button" id="button" value="提交" />
</p>
</form>
</body>


web.xml代码:
 <servlet>
<servlet-name>AddUserServlet</servlet-name>
<servlet-class>Servlet.AddUserServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>AddUserServlet</servlet-name>
<url-pattern>/AddUserServlet</url-pattern>
</servlet-mapping>

404错误:

请教各位大虾,问题出在哪里?
...全文
755 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_25000867 2018-01-25
  • 打赏
  • 举报
回复
引用 8 楼 u014042623 的回复:
部署后直接访问都报404错,那就和前台没有关系,你的项目classes目录里又有AddUserServlet.class等文件生成,那只能是你访问路径错了,如果是用MyEclipse的tomcat应该会有me-webapps和webapps,项目应该是生成在me-webapps里面而不是webapps,右键你的项目,选择Properties,搜索Web,看Web Context-root,这就是你的项目访问路径,结合你的web.xml,你可以再请求一下别的servlet,看能够访问吗?
在web context-root 里是Employee1.2,是项目名称,访问别的servlet还是404,这个Employee1.2是放在project文件夹里,服务器的根目录是webroot,估计是这个路径应在Employee1.2里体现出来吧,但是在哪里修改,怎么改一直找不到
雪飞梦魂天 2018-01-25
  • 打赏
  • 举报
回复
部署后直接访问都报404错,那就和前台没有关系,你的项目classes目录里又有AddUserServlet.class等文件生成,那只能是你访问路径错了,如果是用MyEclipse的tomcat应该会有me-webapps和webapps,项目应该是生成在me-webapps里面而不是webapps,右键你的项目,选择Properties,搜索Web,看Web Context-root,这就是你的项目访问路径,结合你的web.xml,你可以再请求一下别的servlet,看能够访问吗?
sjjk 2018-01-24
  • 打赏
  • 举报
回复
那么

<servlet-mapping>
        <servlet-name>AddUserServlet</servlet-name>
        <url-pattern>/AddUserServlet</url-pattern>
    </servlet-mapping>
就应该改成

<servlet-mapping>
        <servlet-name>AddUserServlet</servlet-name>
        <url-pattern>/Employee1.2/AddUserServlet</url-pattern>
    </servlet-mapping>
雪飞梦魂天 2018-01-24
  • 打赏
  • 举报
回复
部署后直接访问project/Employee1.2/Servlet/AddUserServlet报什么错?你的tomcat下webapps有生成.class文件吗?
qq_25000867 2018-01-24
  • 打赏
  • 举报
回复
引用 4 楼 sanjuejianke 的回复:
那么

<servlet-mapping>
        <servlet-name>AddUserServlet</servlet-name>
        <url-pattern>/AddUserServlet</url-pattern>
    </servlet-mapping>
就应该改成

<servlet-mapping>
        <servlet-name>AddUserServlet</servlet-name>
        <url-pattern>/Employee1.2/AddUserServlet</url-pattern>
    </servlet-mapping>
web.xml改成/Employee1.2/AddUserServlet依然报404错误,太头疼了,在Eclipse里是正常的,放在WebRoot根目录下也能用,换个路径就不行了,有关路径的设置应该都在那里设?除了web.XML还应该在哪里改路径呢?表单里直接写servlet的类名应该没问题吧,这里不用改,tomcat部署后静态页面可以访问,应该也没问题,静态页面找servlet就找不到了
qq_25000867 2018-01-24
  • 打赏
  • 举报
回复
引用 3 楼 u014042623 的回复:
部署后直接访问project/Employee1.2/Servlet/AddUserServlet报什么错?你的tomcat下webapps有生成.class文件吗?
报404错误 项目里clesses目录里有class文件
qq_25000867 2018-01-23
  • 打赏
  • 举报
回复
project是项目名称,employee1.2是项目里的一个模块,还有其他模块要放在project目录里,所以docbase应该指向project
sjjk 2018-01-23
  • 打赏
  • 举报
回复
docBase应该等于E:\WebRoot\project\Employee1.2 吧

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧