0

loginPage.jspフォームを起動し、ユーザー名とパスワードを入力すると、このエラーが発生します。

type Status report

message /WHFM/LoginServlet.java

description The requested resource is not available.

私は何が欠けていますか?同じ問題に関する記事を読みましたが、大文字と小文字が区別されるのは正しいと思います。

 <form name="loginForm" method="Post" action="LoginServlet.java">
    <table>
    <tr>
    <td>Username:</td>
    <td><input type="text" name="uname"></td></tr>


    <tr><td>Password:</td>
    <td><input type="password" name="pass"></td>
    </tr>
    <tr><td></td><td><input type="submit" value="submit" name="submit"></td></tr>
    </table>

    </form>

サーブレットは:

 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    DBConnection connString = new DBConnection();
    String query = "";
    String username= request.getParameter("uname");
    String password = request.getParameter("pass");
    int counter= 0;

    try {
         response.setContentType("text/html");
            PrintWriter out=response.getWriter();
        connString.getConnection();
        query="Select * from user where username='"+username+"' and password='"+password+"' ";
        System.out.println(query);
        Statement st = connString.getConnection().createStatement();
        ResultSet rs= st.executeQuery(query);
        while(rs.next()){
            counter++;
        }
        if(counter>0){
            response.sendRedirect("welcome.jsp");
        }
        else{
            response.sendRedirect("LoginPage.jsp");
        }

これは私のXMLです:

  <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 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>WHFM</display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
     </welcome-file-list>


<servlet>

<servlet-name>LoginServlet</servlet-name>
<servlet-class>servlets.LoginServlet</servlet-class>
</servlet>

<servlet-mapping>

<servlet-name>LoginServlet</servlet-name>
<url-pattern>/LoginServletPath</url-pattern>
</servlet-mapping>
</web-app>
4

2 に答える 2

1

<form action>URL は、サーブレット クラスのクラス ファイル名を指していてはなりません。ブラウザのアドレス バーに入力する必要がある URL とまったく同じ、Web ブラウザからパブリックにアクセスできる URL を指している必要があります。

の URL パターンにサーブレットをマップした/LoginServletPathため、 で使用できるようになったため、それに応じて URLhttp://localhost:8080/WHFM/LoginServletPathを修正する必要があります。<form action>

<form action="LoginServletPath">

または、相対 URL を気にせずに JSP ファイルをどこにでも移動できるようにしたい場合は、

<form action="${pageContext.request.contextPath}/LoginServletPath">

具体的な問題とは関係ありませんが、JDBC コードがリソースをリークしています。私はそれをできるだけ早く修正します。

于 2013-01-17T01:02:46.063 に答える
0

すべてのクラスが webapp フォルダーにあり、「サーブレット」と「サーブレット マッピング」のマッピングが web.xml にあることを確認してください。

お気に入り :

<servlet>

<servlet-name>HelloWorld</servlet-name>
<servlet-class>your.package.name.HelloWorld</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>HelloWorld</servlet-name>
<url-pattern>/hello</url-pattern>

</servlet-mapping>

この記事が役立つかもしれません: Invoker Servlet

于 2013-01-16T17:58:43.583 に答える