1

我有一个登录 xhtml 页面,用户在其中输入他们的密码/用户名

这里是 :

<?xml version="1.0" encoding="UTF-8"?>
<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      >
    <head>
        <title>Login</title>
    </head>
    <h:body>
       <form action="/LDAP/Login" method="post">
            <p>You need to log in to access protected information.</p>
            <table>
                <tr>
                    <td>User name:</td>
                    <td><input type="text" name="username" /></td>
                </tr>
                <tr>
                    <td>Password:</td>
                    <td><input type="password" name="password" /></td>
                </tr>
            </table>
            <p><input type="submit" value="Login" /></p>
        </form>
    </h:body>
</html>

但是当我按下提交时,java文件没有运行我不知道为什么

这是java文件

登录.java

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package LDAP;

import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.naming.*;
import javax.naming.directory.*;
import java.util.Hashtable;

public class Login extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {

    public Login() {
        super();
    }

    protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        final String SUCCESS = "loginSuccess.xhtml";
        final String FAILURE = "loginError.xhtml";
        String strUrl = "login.xhtml";
        String username = request.getParameter("username");
        String password = request.getParameter("password");

        Hashtable env = new Hashtable(11);

        boolean b = false;

        env.put(Context.INITIAL_CONTEXT_FACTORY,
                "com.sun.jndi.ldap.LdapCtxFactory");
        env.put(Context.PROVIDER_URL, "ldap://ldap-ser.port.ac.uk:389");
        env.put(Context.SECURITY_AUTHENTICATION, "simple");
        env.put(Context.SECURITY_PRINCIPAL, username + ",ou=student,ou=lan,o=PORT");
        env.put(Context.SECURITY_PRINCIPAL, password);

        try {
// Create initial context
            DirContext ctx = new InitialDirContext(env);
            System.out.println();

// Close the context when we're done
            b = true;
            ctx.close();
            System.out.println();

        } catch (NamingException e) {
            b = false;
            System.out.println();

        } finally {
            if (b) {
                System.out.print("Success");
                strUrl = SUCCESS;
            } else {
                System.out.print("Failure");
                strUrl = FAILURE;
            }
            System.out.println();
        }
        RequestDispatcher rd = request.getRequestDispatcher(strUrl);
        rd.forward(request, response);

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        processRequest(request, response);
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        processRequest(request, response);
    }
}

这是我的 web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
    <context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Development</param-value>
    </context-param>
    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet>
        <servlet-name>LoginServlet</servlet-name>
        <servlet-class>ExamplePackage.LoginServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>/faces/*</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>LoginServlet</servlet-name>
        <url-pattern>/LoginServlet</url-pattern>
    </servlet-mapping>
        <servlet>
            <servlet-name>Login</servlet-name>
            <servlet-class>LDAP.Login</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>Login</servlet-name>
            <url-pattern>/Login</url-pattern>
        </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>faces/index.xhtml</welcome-file>
    </welcome-file-list>
</web-app>
4

0 回答 0