當我試圖在eclipse 2021中使用tomcat server 10.0運行一個由servlet控制的簡單JSP登錄表單時,在eclipse的內置瀏覽器視窗上不斷彈出一個錯誤404,因為資源不可用,但據我理解,我在專案結構中的根目錄下也找到了該檔案。這是我的代碼,誰能幫我解決這個問題呢?
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<! DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Login</title>
</head>/span>
<body>
<form action="<%= request. getContextPath()%>/SiteController" method="post">
用戶名。<input type="text" name="username"> <br/>
密碼。<input type="text"/span> name="password"/span>> <br/>
< input type="submit" value="submit">
</form>/span>
</body>
這是我的login.jsp檔案
。package org.saboor.servlets;
import java.io.IOException;
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 javax.servlet.http.HttpSession。
/**。
* Servlet實作類SiteController
*/
@WebServlet("/SiteController")
public class SiteController extends HttpServlet {
private static final long serialVersionUID = 1L;
/**。
* @see HttpServlet#HttpServlet()
*/
public SiteController() {
super()。
// TODO 自動生成的建構式存根。
}
/**。
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest請求。HttpServletResponse response) throws ServletException, IOException {
// TODO 自動生成的方法存根
response.getWriter().append("Served at: ").append(request.getContextPath())。
}
/**。
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest請求。HttpServletResponse response) throws ServletException, IOException {
String username=request.getParameter("username")。
String password=request.getParameter("password")。
if(username.equals("saboor")&& password.equals("baba2011") {
request.getSession().invalidate()。
HttpSession newSession=request.getSession();
newSession.setMaxInactiveInterval(300)。
response.sendRedirect("memberArea.jsp")。
}
else {
response.sendRedirect("login.jsp")。
}
}
這是我的SiteController.javaServlet
。<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<! DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>memberArea</title>/span>
</head>/span>
<body>
會員區
</body>
</html>/span>
這是登錄成功后轉發的頁面。
uj5u.com熱心網友回復:
你的Web應用程式依賴于javax.servlet包,這是Java EE規范的一部分,但是Tomcat 10實作的是作為Jakarta EE一部分開發的規范。您應該使用 Tomcat 9,它實作了作為 Java EE 的一部分而開發的規范。
Tomcat 9.0.x和Tomcat 10.0.x之間有一個重大的突破性變化。規范API所使用的Java包已從javax.**變為jakarta.**,有必要根據新的API重新編譯Web應用程式。如果您必須使用 Tomcat 10,那么您必須更新所有的包參考,并將所有的依賴關系(如 servlet-api、jsp-api、jstl 等)轉換為符合新的 Jakarta EE 規范的庫版本。
另一個選擇是使用Apache Tomcat遷移工具來遷移Jakarta EE。
但是,遷移可能會帶來它們自己的一系列挑戰,所以,你的里程可能在這里有所不同。Tomcat 可在部署時使用用于 Jakarta EE 的 Apache Tomcat 遷移工具將現有 Web 應用程式從 Java EE 8 轉換為 Jakarta EE 9。
要利用該功能,網路應用應放在
legacyAppBase檔案夾中(默認名為webapps-javaee),它們將被轉換為appBase檔案夾中的等效的Jakarta EE網路應用(默認名為webapps)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/315155.html
標籤:
