javaWeb 获得servelt初始化参数以及config为null的问题

注意:如果是3.0以上Tomcat,具有注释配置的功能,

这时如果@WebServlet("/HelloServlet"),即在注解中声明一个servelt

 

 

然后你又憨憨的在web.xml中声明了一遍,并且在xml中声明了servelt初始化变量。

放心,你访问不到初始化变量。

 

因为你只能通过注解的那种方式访问,但是注解中你没有声明变量,所以:

要么把参数声明转移到注解,要么删除注解。

package com.my.servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class HelloServlet
 */
//@WebServlet("/HelloServlet")这是那行万恶的注解
public class HelloServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
	
	/**
     * @see HttpServlet#HttpServlet()
     */
    public HelloServlet() {
        super();
    }
    public void init(ServletConfig config) throws ServletException{
    	super.init(config);
    	System.out.println(this.getClass().getName()+"的init方法被调用:");
    	
    }
    
    public void destroy() {
    	System.out.println(this.getClass().getName()+"的destory方法被调用");
    }
	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		ServletConfig config=getServletConfig();
    	String url = config.getInitParameter("password");
    	System.out.println(url);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	}

}

xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" 
id="WebApp_ID" version="4.0">
  <display-name>mytest2</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
	<servlet-name>HelloServlet</servlet-name>
	<servlet-class>com.my.servlet.HelloServlet</servlet-class>
	<init-param>
		<param-name>url</param-name>
		<param-value>ifyouwannago</param-value>
	</init-param>
	<init-param>
		<param-name>user</param-name>
		<param-value>qst</param-value>
	</init-param>
	<init-param>
		<param-name>password</param-name>
		<param-value>qst123</param-value>
	</init-param>
</servlet>

<servlet-mapping>
	<servlet-name>HelloServlet</servlet-name>
	<url-pattern>/</url-pattern>
</servlet-mapping>
  
</web-app>

 

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值