Servlet学习笔记(一、初学servlet)

描述
serlvet有serlvet容器管理,生成动态的内容,serlvet是平台独立的Java类

serlvet容器负责serlvet和用户的通信一级调用servlet的方法,servlet和客户的通信太用“请求/响应”的模式。
功能:
1、接收用户请求的HTTP协议
2、返回一个HTTP的响应协议。让浏览器再去解析
Serlvet接口
servletConfig接口代表当前servlet,封装了当前servlet的配置信息,代表当前servlet ( 局部变量)。
1)、读取当前servlet的配置信息

getServletName() 获取在web.xml文件中配置的名字
getInitParameter(string)
获取当前servlet指定名称的初始化参数的值
getInitParameterNames()
获取当前servlet所有初始化参数的名字组成的枚举
getServletContext()
获取当前web应用的servletContext对象

//初始化
	@Override
	public void init(ServletConfig config) throws ServletException {
		// TODO Auto-generated method stub
		System.out.println("init。。。。。。");
		String servletName = config.getServletName();
		System.out.println(servletName);
		
		//getInitParameter(string) 获取当前servlet指定名称的初始化参数的值
		String username = config.getInitParameter("username");
		System.out.println(username);
	
		//getInitParameterNames() 获取当前servlet所有初始化参数的名字组成的枚举
		Enumeration<String> names = config.getInitParameterNames();
		while(names.hasMoreElements()){
			//获取当前初始化参数name名
			String name = names.nextElement();
			//获取初始化参数名
			String value = config.getInitParameter(name);
			System.out.println(name+","+value);
			
		}
		
		// getServletContext() 获取当前web应用的servletContext对象
		ServletContext context = config.getServletContext();	//获取当前对象
		System.out.println(context.getContextPath());			//获取当前web的根目录
	}

2)、获取servletContext对象:代表当前web应用 全局变量
1、servlet就是一个普通的Java类
要实现servlet有三种方法:

实现javax.servlet.Servlet接口
继承avax.servlet.GenericServlet
继承avax.servlet.http.HttpServlet(推荐)

2、在web.xml配置和映射Servlet

	配置web.xml
	<!-- 配置和映射servlet -->
  <!-- 注册一个servlet -->
  <servlet>
  	<!-- 注册名 -->
  	<servlet-name>hello</servlet-name>
  	<!-- servlet全类名 -->
  	<servlet-class>com.gcz.servlet.HelloServlet</servlet-class>
	<!-- 指定servlet创建和初始化时机 -->
  	<load-on-startup>1</load-on-startup>
  </servlet>
  	
  <!-- 配置servlet -->
  <servlet-mapping>
  	<!-- 必须和注册名保持一直 -->
  	<servlet-name>hello</servlet-name>
  	<!-- 声明访问路径 -->
  	<url-pattern>/hello</url-pattern>
  </servlet-mapping>
  
访问路径:http://localhost:8080/Days11_14/hello

3、servlet容器运行servlet,jsp等组件的运行环境
1)、负责管理servlet声明周期
2)、声明周期方法:由servlet容器负责调用

类中的方法:

构造器:只执行一次,第一次请求servlet时,创建servlet实例,调用该构造器 单例 init
初始化:只被调用一次,在创建好servlet实例后,立即调用,负责初始化servlet
service方法:被调用多次,每一请求都会调用service方法,用于响应请求
destroy注销:之调用了一次,在当前servlet所在的web应用被卸载的时候,用户释放 当前servlet所占用的资源

4:<load-on-startup>:指定servlet创建和初始化时机
	如果为负数,在第一次请求servlet时创建和初始化
	如果是正数或0在当前web应用加载时创建该实例和初始化
	数值越小越先被创建

	同一个servlet可以被映射到url中,前提两个注册名一致
<servlet-mapping>
	1)、在servlet映射到的URL中也可以使用*通配符,但是只能有两个中固定格式
	一种是“*.扩展名”,另一种是一正斜杠(/)开头并以“/*结尾,比如*.do  不可以,
两个不能组合使用

三大域对象

ServletContext
HttpSession
HttpServletRequest
功能:
1)、获取WEB应用程序的初始化参数
2)、获取项目的真实路径
3)、作为域对象,保存多个各户共享的数据

猜你喜欢

转载自blog.csdn.net/qq_43529877/article/details/84072304