【发布时间】:2016-06-09 16:58:25
【问题描述】:
我是 servlet 的新手。我正在尝试调用 Servlet 来验证用户名和密码。 但是执行时tomcat报错“请求的资源不可用”
以下是代码。
RequestServlet.java
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.*;
import javax.servlet.ServletException;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class RequestServlet
*/
@WebServlet("/RequestServlet")
public class RequestServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
PrintWriter out;
/**
* @see HttpServlet#HttpServlet()
*/
public void service(HttpServletRequest req,HttpServletResponse res)throws ServletException,IOException
{
((ServletResponse) res).setContentType("text/html");
out=((ServletResponse) res).getWriter();
out.println("<html><body>");
out.println(req.getMethod());
String name=req.getParameter("name");
String pass=req.getParameter("pass");
if(name.equals("asad")&&pass.equals("123"))
out.println("user is valid");
else
out.println("not valid");
out.println("</body></html>");
}
}
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>Learnserv</display-name>
<servlet>
<servlet-name>RequestServlet</servlet-name>
<servlet-class>RequestServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>RequestServlet</servlet-name>
<url-pattern>/RequestServlet</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>asd.html</welcome-file>
</welcome-file-list>
</web-app>
asd.html
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form action="/RequestServlet" method="GET">
<input type="text" name="name">
<input type="password" name="pass">
<input type="submit" value="ok">
</form>
</body>
【问题讨论】:
-
你的 Servlet 类真的在默认包中吗?
-
是的,它在 src 文件夹中。
-
下一个问题:什么是 Web 应用程序上下文名称?您正在尝试通过绝对路径访问 也许这就是为什么?您是否尝试使用以下路径访问您的 Servlet:localhost:8080/
/RequestServlet? -
@javy,我已经试过了,还是报错“网页无法显示”
-
发生了什么变化?首先是“请求的资源不可用”,现在是“无法显示网页”?
标签: servlets http-status-code-404