Tomcat測試出現(xiàn)404問題出現(xiàn)的問題如下:
HTTP狀態(tài) 404 - 未找到
類型 狀態(tài)報告
消息 請求的資源[/chapter06/IndexServlet]不可用
描述 源服務(wù)器未能找到目標資源的表示或者是不愿公開一個已經(jīng)存在的資源表示。
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文件配置路由,具體配置有兩種方式:(這里只是簡述如果想了解更詳細內(nèi)容點擊這里)
(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
到此這篇關(guān)于詳解Tomcat出現(xiàn)404的解決方法的文章就介紹到這了,更多相關(guān)Tomcat出現(xiàn)404內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!