调用servlet时出错

时间:2016-02-26 12:58:02

标签: servlets http-status-code-404

我是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>

1 个答案:

答案 0 :(得分:1)

尝试更改<form action="/RequestServlet" method="GET"><form action="RequestServlet" method="post">我认为/RequestServlet已替换为localhost:port/RequestServlet但需要localhost:port/context/RequestServlet(如果不在webapps / ROOT上部署为Tomcat)

此外,如果使用@WebServlet("/RequestServlet"),那么在web.xml中执行相同的操作也是相同的。或者注释或web.xml。

PrintWriter out置于service内以保证线程安全。