Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法执行servlet代码_Java_Jsp_Servlets - Fatal编程技术网

Java 无法执行servlet代码

Java 无法执行servlet代码,java,jsp,servlets,Java,Jsp,Servlets,在开发servlet程序时,我遇到了一个问题,我使用了netbeanside和glassfish服务器 以下是我的index.html文件代码:- <!DOCTYPE html> <!-- To change this license header, choose License Headers in Project Properties. To change this template file, choose Tools | Templates and open the t

在开发servlet程序时,我遇到了一个问题,我使用了netbeanside和glassfish服务器 以下是我的index.html文件代码:-

<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<html>
    <body>
        <form action="NewServlet">
            name:<input type="text" name="t1">
            password:<input type="password" name="t1">
            <input type="submit" value="login">
        </form>
    </body>
</html>

姓名:
密码:
servlet的代码是:-

import java.io.*;
import javax.servlet.*;

/**
 *
 * @author Prathamesh
 */
public class NewServlet extends GenericServlet {
    @Override
    public void service(ServletRequest req,ServletResponse res)throws ServletException,IOException
    {
        res.setContentType("text/html");
        PrintWriter pw=res.getWriter();
        String un="abc";
        String pwd="xyz";
        String p1=req.getParameter("t1");
        String p2=req.getParameter("t2");
        if((p1.equals(un))&&(p2.equals(pwd)))
            pw.println("<h1>Welcome to home page</h1>");
        else
            pw.println("Invalid");
        pw.close();    
    }
}
import java.io.*;
导入javax.servlet.*;
/**
*
*@作者Prathamesh
*/
公共类NewServlet扩展了GenericServlet{
@凌驾
公共无效服务(ServletRequest-req、ServletResponse-res)抛出ServletException、IOException
{
res.setContentType(“文本/html”);
PrintWriter pw=res.getWriter();
字符串un=“abc”;
字符串pwd=“xyz”;
字符串p1=req.getParameter(“t1”);
字符串p2=req.getParameter(“t2”);
如果((p1.等于(un))&&(p2.等于(pwd)))
println(“欢迎访问主页”);
其他的
pw.println(“无效”);
关闭();
}
}
我认为问题是在解析变量时发生的。。。 请有人能帮我吗?? 索引文件也可以完美执行,但当我直接单击按钮而不在文本框中键入任何内容时,它会显示正确的输出,但当我输入程序(abc&xyz)中指定的用户名和密码时,它会显示错误:

HTTP状态500-内部服务器错误

类型异常报告

消息内部服务器错误

说明服务器遇到内部错误,无法满足此请求

例外情况

java.lang.NullPointerException

请注意,GlassFish Server开源版本4.1日志中提供了异常及其根本原因的完整堆栈跟踪。
GlassFish Server开源版本4.1

GenericServlet
用于协议独立的servlet。对于Web,请使用
HttpServlet
。因此,您应该扩展
HttpServlet
而不是
GenericServlet
并重写
doGet
doPost
方法。由于您有密码字段,所以重写
doPost
方法,出于安全原因,建议使用该方法。然后在
web.xml
上配置servlet或使用
@WebServlet
注释

@WebServlet
public class NewServlet extends HttpServlet{
   public void doPost(...){}
}
在表单中,您需要定义
post
方法

<form action="NewServlet" method="post">
      ...
</form>

...

这里的问题是您未能将正确的名称传递给密码字段:

password:<input type="password" name="t1">
用html试试这个

password:<input type="password" name="t2">
密码:

HTML无法区分名称的
name=t1
和密码的
name=“t1”
。尝试将其更改为
t1
t2
。在代码中,您没有向servlet发送任何
t2
。还可以尝试使用HttpServlet代替GenericServlet。

谢谢您的帮助……为我幼稚的错误感到抱歉……现在它正在运行perfectly@PrathameshKoshti,请接受答案,因为它对您有效
password:<input type="password" name="t2">