Tomcat測試出現404問題出現的問題如下:
HTTP狀態 404 - 未找到
類型 狀態報告
消息 請求的資源[/chapter06/IndexServlet]不可用
描述 源服務器未能找到目標資源的表示或者是不愿公開一個已經存在的資源表示。
Apache Tomcat/9.0.37

問題原因,瀏覽器不能直接訪問Java文件
問題的解決方法
1、提交表單時遇到此問題
<form name = "reg" action="/login" method="post">
<meta charset="UTF-8">
賬號:<input type="text" name="username"/><br>
密碼:<input type="password" name="passward"/><br>
<input type="submit" value="提交" id="bt">
</form>
其中的<form name = "reg" action="/login" method="post">
action=" "里面引用的必須為路由地址(這個路由地址需要自己配置的(如:我自己配置的負責接收表單的Java類中的路由為 /login,而不是自身的Java類的訪問路徑 /chapter06/src/LoginServlet)
對Java文件配置路由方式在下面:
2、訪問src路徑里的Java文件報錯
需要對目標Java文件配置路由,具體配置有兩種方式:(這里只是簡述如果想了解更詳細內容點擊這里)
(1):基于注解的方式配置
只適用于Tomcat3以上版本(好像是3,記不清了)
在Java類里添加
package cn.itcast.chapter06.session.example;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/logout") //這里就是路由的配置
public class LogoutServlet extends HttpServlet {
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.getSession().removeAttribute("user");
resp.sendRedirect("/wel");
}
@Override
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
**@WebServlet("/logout") //這里就是路由的配置,此方法也是最常用的方法。**引號里面就是路由
(2)基于xml文件配置方式
點擊打開web.xml文件,然后對web.xml代碼進行更改,在< /app >前面添加映射
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>com.southwind.servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/demo2</url-pattern>
</servlet-mapping>
將demo2和hello進行映射 在瀏覽器直接訪問demo2就可以映射HelloServlet
到此這篇關于詳解Tomcat出現404的解決方法的文章就介紹到這了,更多相關Tomcat出現404內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!