栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【Jsp】第三课 Servlet常用对象(一)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Jsp】第三课 Servlet常用对象(一)

在Servlet技术的学习过程中,需要用到很多的常用对象,而且其用法也非常重要,这里先介绍第一个常用对象,ServletConfig。

概述 1. 在Servlet的配置文件中,可以使用一个或多个标签为Servlet配置一些初始化参数。 2.配置在注册信息的Servlet标签中 3. 当servlet配置了初始化参数后,web容器在创建servlet实例对象时,会自动将这些初始化参数封装到ServletConfig对象中 4. 并在调用servlet的init方法时,将ServletConfig对象传递给Servlet,进而,程序员通过ServletConfig对象就可以得到当前servlet的初始化参数信息。 代码步骤实现 1.配置文件中添加静态数据

 这里创建项目的过程不再赘述,之后新建包文件,通过class的方式创建Servlet

这里重写带参数的init方法

package com.servlet;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;

public class Servlet1 extends HttpServlet {
	
	public Servlet1() {
		// TODO Auto-generated constructor stub
	}
	
	@Override
	public void init(ServletConfig config) throws ServletException {
		super.init(config);
	}

}

 接着对Servlet在web.xml文件中进行注册



  Day03Jsp
  
    index.html
    index.htm
    index.jsp
    default.html
    default.htm
    default.jsp
  
  
  
  	Servlet1
  	com.servlet.Servlet1
  
  
  
  	Servlet1
  	/Servlet1
  
  

标签中添加静态数据,静态数据的格式必须是:


  		hote
  		酒店
  	

 将以上格式代码添加至标签中


  	Servlet1
  	com.servlet.Servlet1
  	
  		hote
  		酒店
  	
  

 如果需要添加多个静态数据,只要按照这种格式继续加即可:


  	Servlet1
  	com.servlet.Servlet1
  	
  		hote
  		酒店
  	
  	
  		money
  		1000万
  	
  

那么在Servlet1中通过ServletConfig对象获得Web.xml中的静态数据

@Override
	public void init(ServletConfig config) throws ServletException {
		super.init(config);
		String a=config.getInitParameter("hote");
		String b=config.getInitParameter("money");
		System.out.println(a+"---"+b);
	}

将项目运行在tomcat服务器上,根据Servlet虚拟地址进行访问Servlet1,在控制台可以看到从web.xml文件中获得的静态数据。这里效果就不展示了,初学者请根据代码自行运行查看效果。

那么当存在大量的静态数据的时候,只是采用getInitParameter(name)方法来一个个获取的话那明显效率太慢了,接下里我们看另一个方法,获得所有静态数据的name,再根据循环遍历根据name获得所有的静态数据。代码如下:

//当存在非常多的静态数据,就不能在使用以上方式一个一个获取
		//应该进行循环获取
		//获得所有静态数据的名称,获取的所有静态数据的名称存储在枚举类型
		Enumeration e= config.getInitParameterNames();
		while (e.hasMoreElements()) {
			String name=e.nextElement();//hotel
			String value=config.getInitParameter(name);
			System.out.println(name+"####"+value);
		}

运行的结果这里也不再赘述,初学者可以自行运行,查看结果,同样可以获取所有的静态数据。

2.Java注解创建Servlet类并添加静态数据

在Servlet3.0之后,提供了注解的方式进行创建Servlet类以及进行注册,那么添加静态数据同样也对应了Java注解,其编写形式如下:

package com.servlet;

import java.io.IOException;

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


@WebServlet(urlPatterns = "/Servlet2",initParams = {
		@WebInitParam(name = "name",value = "李四"),
		@WebInitParam(name = "age",value = "20"),
		@WebInitParam(name = "sex",value = "男")
})
public class Servlet2 extends HttpServlet {
	

}

注解的方式注册Servlet以及添加静态数据相比之下会比在Web.xml文件中进行配置会简化,初学者可自行掌握和选择使用。那么ServletConfig对象获取数据是一样的。Servlet中提供了两种init初始化的方法,这次我们重写不带ServletConfig参数的init方法,代码如下:

@Override
    public void init() throws ServletException {
    	super.init();
    	ServletConfig config=getServletConfig();
    	String a=config.getInitParameter("name");
    	String b=config.getInitParameter("age");
    	String c=config.getInitParameter("sex");
    	System.out.println(a+"---"+b+"---"+c);
    	
    	String d=config.getInitParameter("money");
    	System.out.println(d);
    	//总结:ServletConfig对象只会获得每一个Servlet自己本身的静态数据,而不能得到其他Servlet定义的静态数据
    }

因为init方法不带ServletConfig参数,所以我们可以通过Servlet接口中定义的getServletConfig()方法来获得ServletConfig对象,然后就能根据name获得对应静态数据。并且我们也做了测试,在Servlet2类中尝试获得Servlet1中定义的静态数据,根据运行查看的结果可以看出,是不可能获得的。

因此,我们得到的总结:

ServletConfig对象只会获得每一个Servlet自己本身的静态数据,而不能得到其他Servlet定义的静态数据

本次文章就描述到这里,希望初学者能更好的掌握这部分知识。

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/314421.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号