以上是我写的程序,主要是用户登陆方面的,我的意图是:当输入正确的用户名和密码时才能进
入“testsql.jsp"这个页面,如果没有输入登录信息,而直接在浏览器中输入:http://localhost/testsql.jsp,则会提示没有登录请重新登陆!!可是现在有了点小问题,当我不
输入登陆信息,而直接输入:http://localhost/testsql.jsp,出现了以下错误提示。。
description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:367)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:293)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:240)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
root cause java.lang.NullPointerException
org.apache.jsp.testsql_jsp._jspService(testsql_jsp.java:73)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:136)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:320)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:293)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:240)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
note The full stack trace of the root cause is available in the Tomcat logs.
-----------------------------------------------------------------------------------------
<html>
<head>
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>用 户 登 录</title>
</head>
<body bgcolor="#CC99FF">
<p align="center"><b> 用 户 登 录</b></p>
<form method="POST" action="Checklogin.jsp">
<p align="center">用户名:<input type="text" name="loginid" size="20"></p>
<p align="center">密 码:<input type="password" name="loginpwd" size="20"></p>
<p align="center"> <input type="submit" value="提 交" name="B1">
<input type="reset" value="重 置" name="B2"> </p>
</form>
<p align="center"></p>
</body>
</html>
-------------------------
第二段程序是:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*,java.io.*"%>
<jsp:useBean id="dbtest" scope="page" class="com.jspdev.ch5.connectdb"/>
<%
String user=request.getParameter("loginid");
String pwd=request.getParameter("loginpwd");
ResultSet rst=dbtest.executesql(user,pwd);
if(rst.next())
{
session.setAttribute("name",user);
response.sendRedirect("testsql.jsp");
}
else
{
response.sendRedirect("userlogin.html");
}
%>
</body>
</html>
-------------------------------------------------------
第三段程序是:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*,java.io.*"%>
<html>
<center><b>电脑配置资料</b><center><hr>
欢迎光临:<%=session.getAttribute("name")%>
<table border=1>
<tr>
<td>电脑名称</td><td>IP地址</td><td>用户姓名</td><td>职务</td><td>所在部门
</td><td>CPU型号</td><td>内存容量</td><td>操作系统</td><td>INTERNET服务</td>
</tr>
<%
if(!session.getAttribute("name").equals(""))
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
Connection con=java.sql.DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=booksys","sa","mayer");
Statement stmt=con.createStatement();
ResultSet rst=stmt.executeQuery("select * from pcmanage;");
while(rst.next())
{
out.println("<tr>");
out.println("<td>"+rst.getString(1)+"</td>");
out.println("<td>"+rst.getString(2)+"</td>");
out.println("<td>"+rst.getString(3)+"</td>");
out.println("<td>"+rst.getString(4)+"</td>");
out.println("<td>"+rst.getString(5)+"</td>");
out.println("<td>"+rst.getString(6)+"</td>");
out.println("<td>"+rst.getString(7)+"</td>");
out.println("<td>"+rst.getString(8)+"</td>");
out.println("<td>"+rst.getString(9)+"</td>");
out.println("</tr>");
}
//关闭连接、释放资源
rst.close();
stmt.close();
con.close();
}
else
{
%>
<a href="userlogin.html">返回--></a>
<%
}
%>
</table>
</body>
</html>
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*,java.io.*"%>
<html>
<center><b>电脑配置资料</b><center><hr>
欢迎光临:<%=session.getAttribute("name")%>
<table border=1>
<tr>
<td>电脑名称</td><td>IP地址</td><td>用户姓名</td><td>职务</td><td>所在部门
</td><td>CPU型号</td><td>内存容量</td><td>操作系统</td><td>INTERNET服务</td>
</tr>
<%
if(!session.getAttribute("name").equals(""))
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
Connection con=java.sql.DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=booksys","sa","mayer");
Statement stmt=con.createStatement();
ResultSet rst=stmt.executeQuery("select * from pcmanage;");
while(rst.next())
{
out.println("<tr>");
out.println("<td>"+rst.getString(1)+"</td>");
out.println("<td>"+rst.getString(2)+"</td>");
out.println("<td>"+rst.getString(3)+"</td>");
out.println("<td>"+rst.getString(4)+"</td>");
out.println("<td>"+rst.getString(5)+"</td>");
out.println("<td>"+rst.getString(6)+"</td>");
out.println("<td>"+rst.getString(7)+"</td>");
out.println("<td>"+rst.getString(8)+"</td>");
out.println("<td>"+rst.getString(9)+"</td>");
out.println("</tr>");
}
//关闭连接、释放资源
rst.close();
stmt.close();
con.close();
}
else
{
%>
<p>没有登录,请重新登录</p>
<a href="userlogin.html">返回--></a>
<%
}
%>
</table>
</body>
</html>
入“testsql.jsp"这个页面,如果没有输入登录信息,而直接在浏览器中输入:http://localhost/testsql.jsp,则会提示没有登录请重新登陆!!可是现在有了点小问题,当我不
输入登陆信息,而直接输入:http://localhost/testsql.jsp,出现了以下错误提示。。
description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:367)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:293)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:240)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
root cause java.lang.NullPointerException
org.apache.jsp.testsql_jsp._jspService(testsql_jsp.java:73)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:136)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:320)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:293)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:240)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
note The full stack trace of the root cause is available in the Tomcat logs.
-----------------------------------------------------------------------------------------
<html>
<head>
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>用 户 登 录</title>
</head>
<body bgcolor="#CC99FF">
<p align="center"><b> 用 户 登 录</b></p>
<form method="POST" action="Checklogin.jsp">
<p align="center">用户名:<input type="text" name="loginid" size="20"></p>
<p align="center">密 码:<input type="password" name="loginpwd" size="20"></p>
<p align="center"> <input type="submit" value="提 交" name="B1">
<input type="reset" value="重 置" name="B2"> </p>
</form>
<p align="center"></p>
</body>
</html>
-------------------------
第二段程序是:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*,java.io.*"%>
<jsp:useBean id="dbtest" scope="page" class="com.jspdev.ch5.connectdb"/>
<%
String user=request.getParameter("loginid");
String pwd=request.getParameter("loginpwd");
ResultSet rst=dbtest.executesql(user,pwd);
if(rst.next())
{
session.setAttribute("name",user);
response.sendRedirect("testsql.jsp");
}
else
{
response.sendRedirect("userlogin.html");
}
%>
</body>
</html>
-------------------------------------------------------
第三段程序是:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*,java.io.*"%>
<html>
<center><b>电脑配置资料</b><center><hr>
欢迎光临:<%=session.getAttribute("name")%>
<table border=1>
<tr>
<td>电脑名称</td><td>IP地址</td><td>用户姓名</td><td>职务</td><td>所在部门
</td><td>CPU型号</td><td>内存容量</td><td>操作系统</td><td>INTERNET服务</td>
</tr>
<%
if(!session.getAttribute("name").equals(""))
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
Connection con=java.sql.DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=booksys","sa","mayer");
Statement stmt=con.createStatement();
ResultSet rst=stmt.executeQuery("select * from pcmanage;");
while(rst.next())
{
out.println("<tr>");
out.println("<td>"+rst.getString(1)+"</td>");
out.println("<td>"+rst.getString(2)+"</td>");
out.println("<td>"+rst.getString(3)+"</td>");
out.println("<td>"+rst.getString(4)+"</td>");
out.println("<td>"+rst.getString(5)+"</td>");
out.println("<td>"+rst.getString(6)+"</td>");
out.println("<td>"+rst.getString(7)+"</td>");
out.println("<td>"+rst.getString(8)+"</td>");
out.println("<td>"+rst.getString(9)+"</td>");
out.println("</tr>");
}
//关闭连接、释放资源
rst.close();
stmt.close();
con.close();
}
else
{
%>
<a href="userlogin.html">返回--></a>
<%
}
%>
</table>
</body>
</html>
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*,java.io.*"%>
<html>
<center><b>电脑配置资料</b><center><hr>
欢迎光临:<%=session.getAttribute("name")%>
<table border=1>
<tr>
<td>电脑名称</td><td>IP地址</td><td>用户姓名</td><td>职务</td><td>所在部门
</td><td>CPU型号</td><td>内存容量</td><td>操作系统</td><td>INTERNET服务</td>
</tr>
<%
if(!session.getAttribute("name").equals(""))
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
Connection con=java.sql.DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=booksys","sa","mayer");
Statement stmt=con.createStatement();
ResultSet rst=stmt.executeQuery("select * from pcmanage;");
while(rst.next())
{
out.println("<tr>");
out.println("<td>"+rst.getString(1)+"</td>");
out.println("<td>"+rst.getString(2)+"</td>");
out.println("<td>"+rst.getString(3)+"</td>");
out.println("<td>"+rst.getString(4)+"</td>");
out.println("<td>"+rst.getString(5)+"</td>");
out.println("<td>"+rst.getString(6)+"</td>");
out.println("<td>"+rst.getString(7)+"</td>");
out.println("<td>"+rst.getString(8)+"</td>");
out.println("<td>"+rst.getString(9)+"</td>");
out.println("</tr>");
}
//关闭连接、释放资源
rst.close();
stmt.close();
con.close();
}
else
{
%>
<p>没有登录,请重新登录</p>
<a href="userlogin.html">返回--></a>
<%
}
%>
</table>
</body>
</html>
没有经过登录,session.getAttribute("name")==null
当你试图调用其equals方法时,就会抛出
java.lang.NullPointerException异常
建议改成if(session.getAttribute("name")!=null)
改成
if(session.getAttribute("name")!=null&&!session.getAttribute("name").equals(""))
就ok了