此问题已经在这里有了答案:
我正在创建一个登录.JSP,在登录按钮上它调用了login.java(servlet)。但是JSP无法调用servlet文件,并且会给出错误。
Login.JSP
<%@ 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>
<body>
<form action="Login" method="get">
Enter Username:<input type="text" name="uname"><br>
Enter Password:<input type="password" name="upass"><br>
<input type="submit" value="login">
</form>
</body>
</html>
Login.java(servlet文件)
package com.login;
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;
/**
* Servlet implementation class Login
*/
@WebServlet("/Login")
public class Login extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String uname=request.getParameter("uname");
System.out.print("uname is"+uname);
String upass=request.getParameter("upass");
if (uname.equals("meet") && upass.equals("1234")) {
response.sendRedirect("welcome.jsp");
}
else {
response.sendRedirect("login.jsp");
}
}
}
错误消息HTTP状态404 –找不到
类型状态报告
消息/登录
描述原始服务器未找到目标资源的当前表示,或不愿意透露该资源的存在。
简单来说,您可以在jsp请求中使用getConextPath
<%@ 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>
<body>
<form action="<%=request.getContextPath()%>/Login" method="get">
Enter Username:<input type="text" name="uname"><br>
Enter Password:<input type="password" name="upass"><br>
<input type="submit" value="login">
</form>
</body>
</html>
希望我有帮助;