以上是我写的程序,主要是用户登陆方面的,我的意图是:当输入正确的用户名和密码时才能进
入“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.
-----------------------------------------------------------------------------------------
程序如下:在这里省略了JAVABEAN的代码,这段代码是没有问题的,请大家放心!!!<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.
-----------------------------------------------------------------------------------------
程序如下:在这里省略了JAVABEAN的代码,这段代码是没有问题的,请大家放心!!!<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>
解决方案 »
- == 和 equals的区别?
- java反射
- jsp写的例子无法在IE显示(tomcat..等都没问题)
- 我用weblogic的服务器软件,但是为什么非要输入http://****.***/WebRoot?
- 请问大家在java 的web方式下做过画曲线的东西吗?大家都采用什么技术?
- 请问blog怎么理解,我个人的理解是“个人的专栏”,不知对不对?另外,若我理解没错,那做blog就很容易了,就是在页面显示所有用户id=**
- 身份权限认证问题
- 如何控制同时操作数据库的数量
- 各位老大帮看看javabean调试的问题
- 在制作的留言簿上提交jsp的源代码的问题,
- 如何在CONN.jsp里写代码防止注入,日后include这个就可以了。
- 南宁招JSP程序员~~
一步步跟踪,看看什么地方取出来的值是null.
这个地址有问题吧,你的web.xml怎么配的,有可能少了一段吧,如果默认是/的话就没少
没有根路径?
因为这样得到的user=null;
所以在下面ResultSet rst=dbtest.executesql(user,pwd);
会报java.lang.NullPointerException
=====================================
判断一下就行了:
String user=request.getParameter("loginid");
if(user==null){
user="";
}
最好在jsp里做好判断,如果是空,就不要执行sql。
返回null
改成
if(session.getAttribute("name")!=null&&!session.getAttribute("name").equals(""))
就OK了
try{
sm=request.getParameter("p");
}
catch(Exception){
sm=***;
}
或者:
if(sm==null){}
else{}
一个是接受form的输入处,
还有就是从session中取出登录信息