サーブレットジャンプ失敗問題:HTTP Status 404 not found

2018 ワード

背景:
1、servlet Javaファイルパス:src/com.Servlet/xx.java
url-patternパス:/RegisterService
2、jspページパス:Webcontent/thirdTest/register.jsp

3~149 !
@WebServlet("/RegisterServlet")
public class RegisterServlet extends HttpServlet {
 //doGet
 //doPost
 //...
}

解決プロセス:
1、サーブレットファイルを実行して、ブラウザのアドレスバーのアドレスを得る:localhost:8080/Javaee/Registerサーブレット
2、jspファイルを実行し、ブラウザのアドレスバーのアドレス:localhost:8080/Javaee/thirdTest/registerを得る.jsp
3、ジャンプに失敗したアドレス(出現404のアドレス):localhost:8080/Javaee/thirdTest/RegisterService
ここで、最初のアドレスと3番目のアドレスが異なることに気づくことができます.これはnot foundの問題を招きます.もともとjspがジャンプするのは最初のアドレスですが、3番目のアドレスにジャンプしたので、servletは見つかりません.したがって,第1アドレスと第3アドレスが同じであればnot found問題は発生せず,問題を解決する方法が見つかったように見える.
解決方法:
1.jspページのaction属性のパスを変更する(この例:action="/RegisterService")
2、servletファイルのurl-patternマッピングアドレスを修正する
3.servlet注釈を使用する場合、同じようにマッピングアドレスを変更する(この例:注釈@WebServiceを設定する(「/thirdTest/RegisterService」)
三者一を取ればいい.