我正在尝试在部署时创建JDBC Connection子类型对象。因此,有一个Listener类,其中正在创建Connection子类型对象,并且它已在名为mycon的上下文属性中设置。但是,当在servlet类中获取属性的时候,它只返回NULL值。这是我的代码片段,index.html:<a href="servlet2">Fetch Data</a>
&amp;&amp; MyListener类:
package FetchData;
import java.sql.*;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.ServletContext;
public class MyListener implements ServletContextListener {
@Override
public void contextDestroyed(ServletContextEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void contextInitialized(ServletContextEvent ctx) {
// TODO Auto-generated method stub
try{
String s1="Kalidass";
//load the Mysql Driver class
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","");
ServletContext sc=ctx.getServletContext();
sc.setAttribute("mycon", con);
sc.setAttribute("name",s1);
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
我的Servlet类:
package FetchData;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;
import javax.servlet.ServletException;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class Extract
*/
/*@WebServlet("/Extract")*/
public class Extract extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public Extract() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.setContentType("text/html");
PrintWriter out=response.getWriter();
ServletContext sc=getServletContext();
out.print("<b>"+sc+"</b>");
String name=(String)sc.getAttribute("name");
out.print("<b>"+name+"</b>");
try{
Connection conn=(Connection)sc.getAttribute("mycon");
///String name=(String)sc.getAttribute("name");
out.print(conn);
//out.print(name);
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
&安培;&安培; web.xml中:
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
<listener>
<listener-class>FetchData.MyListener</listener-class>
</listener>
<servlet>
<servlet-name>serv1</servlet-name>
<servlet-class>FetchData.Extract</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>serv1</servlet-name>
<url-pattern>/servlet2</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
当我在servlet类中获取属性值时,在MyListener类中设置的属性仅返回NULL。请帮助我解决这个问题。谢谢......