本人新手,自己写个用servlet连接数据库的实例。把参数已经写好放在web.xml文件中,老师说可以通过init()函数获取init-param,但是我在init()方法里根本无法获取,想问问各位高手怎么办,谢谢各位了!public void init(ServletConfig config) throws ServletException {
// TODO Auto-generated method stub
classname = this.getInitParameter("classname");
url = this.getInitParameter("url");
username = this.getInitParameter("username");
userpassword = this.getInitParameter("userpassword");
System.out.print(classname+" "+url+" "+username+" "+userpassword);
}
<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>mypackage.LoginServlet</servlet-class>
<init-param>
<param-name>classname</param-name>
<param-value>com.ibm.db2.jcc.DB2Driver</param-value>
</init-param>
<init-param>
<param-name>url</param-name>
<param-value>jdbc:db2://localhost:50000/sample</param-value>
</init-param>
<init-param>
<param-name>user</param-name>
<param-value>db2admin</param-value>
</init-param>
<init-param>
<param-name>password</param-name>
<param-value>db2</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/Login</url-pattern>
</servlet-mapping>
// TODO Auto-generated method stub
classname = this.getInitParameter("classname");
url = this.getInitParameter("url");
username = this.getInitParameter("username");
userpassword = this.getInitParameter("userpassword");
System.out.print(classname+" "+url+" "+username+" "+userpassword);
}
<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>mypackage.LoginServlet</servlet-class>
<init-param>
<param-name>classname</param-name>
<param-value>com.ibm.db2.jcc.DB2Driver</param-value>
</init-param>
<init-param>
<param-name>url</param-name>
<param-value>jdbc:db2://localhost:50000/sample</param-value>
</init-param>
<init-param>
<param-name>user</param-name>
<param-value>db2admin</param-value>
</init-param>
<init-param>
<param-name>password</param-name>
<param-value>db2</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/Login</url-pattern>
</servlet-mapping>
解决方案 »
- struts和hibernate的注册 帮忙修改一下 可以不
- 师兄们帮忙啊呵呵呵 谢谢
- dwr[org.directwebremoting.dwrp.BaseCallMarshaller]Erroring: batchId[3]
- SecurityManager怎么实现防止暴力反射
- 哪位有装了Android ADT插件的Eclipse ,麻烦发我一个。
- kindeditor 的取值问题,大神们进来看看咯
- 如何根据wsdl文件生成客户端或如何写客户端调用?
- JB7開發CMP的連接資料庫的問題
- 使用WebLogic.ejbc编译时出现问题
- 怎么比较相似度,还得有关键字?
- httpclient post提交报java.net.UnknownHostException
- 学java,怎么去北京找工作
换成classname = config.getInitParameter("classname");
看看
String classname = config.getInitParameter("classname");
不要重写这个方法
public void init(ServletConfig config) throws ServletException {
this.config = config;
this.init();
} 这个方法this.config = config;这一句很重要,重写了这个方法后你的servletConfig对象就为空了,自己的servlet重写下面这个方法
public void init() throws ServletException
然后里面就可以用
this.getInitParameter("classname");
或者
ServletConfig config = this.getServletConfig();
String classname = config.getInitParameter("classname");
public String getInitParameter(String name) {
return getServletConfig().getInitParameter(name);
}
public ServletConfig getServletConfig() {
return config;
}但是在
public void init(ServletConfig config) throws ServletException {
this.config = config;
this.init();
} 方法中必须先把这个config属性设置一下。后面有一行this.init(),所以我们一般重写不带参数的那个init方法,在这个实现里面进行自己的初始化操作
由于我们自己的servlet是继承了GenericServlet,所以我们可以直接用this.getInitParameter(。。)
public void init(ServletConfig config)
public void init( ) throws ServletException {
// TODO Auto-generated method stub
ServletConfig config = this.getServletConfig();
classname = this.getInitParameter("classname");
url = this.getInitParameter("url");
username = this.getInitParameter("username");
userpassword = this.getInitParameter("userpassword");
System.out.print(classname+" "+url+" "+username+" "+userpassword);
}是这个意思嘛?
public void init( ) throws ServletException {
// TODO Auto-generated method stub
ServletConfig config = this.getServletConfig();
classname = config .getInitParameter("classname");
url = config .getInitParameter("url");
username = config .getInitParameter("username");
userpassword = config .getInitParameter("userpassword");
System.out.print(classname+" "+url+" "+username+" "+userpassword);
}
嗯,就是重写init()方法,谢谢你啦。结贴了~
@Override
public void init() throws ServletException {
drivername = this.getInitParameter("drivername");
url = this.getInitParameter("url");
username = this.getInitParameter("username");
userpassword = this.getInitParameter("userpassword");
System.out.println(classname+" "+url+" "+username+" "+userpassword);
}