关于servlet的问题
掉弟最近刚开始学servlet想问问这么写那里不对package com.cn.login;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.*;
public class login extends HttpServlet {
private String forname;
private String url;
private String user;
private String pwd;
/**
* Constructor of the object.
*/
public login() {
super();
}
/**
* Destruction of the servlet. <br>
*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
/**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
try{
Class.forName(forname);
Connection conn=DriverManager.getConnection(url,user,pwd);
Statement st=conn.createStatement();
String sql="SELECT COUNT(*) FROM luntan";
ResultSet rt=st.executeQuery(sql);
if(rt.next()){
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.print("Welcome:"+request.getParameter("username"));
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}else{
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.print("用户名或密码错误,请重新输入");
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}
}catch(Exception e){
e.printStackTrace();
}
}
/**
* The doPost method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to post.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request,response);
}
/**
* Initialization of the servlet. <br>
*
* @throws ServletException if an error occure
*/
public void init() throws ServletException {
forname=getInitParameter("forname");
url=getInitParameter("url");
user=getInitParameter("user");
pwd=getInitParameter("pwd");
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>login</servlet-name>
<display-name>This is the display name of my J2EE component</display-name>
<description>This is the description of my J2EE component</description>
<servlet-class>com.cn.login.login</servlet-class>
</servlet>
<init-param>
<param-name>forname</param-name>
<param-value>com.microsoft.jdbc.sqlserver.SQLServerDriver</param-value>
</init-param>
<init-param>
<param-name>url</param-name>
<param-value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=luntan</param-value>
</init-param>
<init-param>
<param-name>user</param-name>
<param-value>sa</param-value>
</init-param>
<init-param>
<param-name>pwd</param-name>
<param-value>sa</param-value>
</init-param>
<servlet-mapping>
<servlet-name>login</servlet-name>
<url-pattern>/servlet/login</url-pattern>
</servlet-mapping>
</web-app> 有报异常没...有就贴出来看看 我试过这段代码应该没有问题,那你到底是什么问题呢? 从控制台上看到的错误,
java.lang.NullPointerException
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.cn.login.login.doGet(login.java:43)
at com.cn.login.login.doPost(login.java:85)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Unknown Source) login.java:43是哪一行啊?我确定程序代码没有问题,你应该看看数据库有没有问题。也就是连接数据库,还有就是连接数据库的包导入了没有? 数据库我测试过没有错啊我用别的程序测试过一切都是正常显示
可用到这个servlet中就出现了错误进入到servlet生成的页面的时候什么都不显示也没报错在eclipse的控制台里边就显示上边哪个错误 應該是連接數據庫出了問題﹗﹗ 没有数据,看看你的数据库表对不对[em01] 应该改成字符输出!!
response.setContentType("text/html");
改成
rq.setCharacterEncoding("GB2312");
rp.setContentType("text/html; charset=gb2312"); Class.forName(forname);
Connection conn=DriverManager.getConnection(url,user,pwd);
这两行代码中用到的变量你根本没有赋值啊
页:
[1]
