作业二Javaweb

作业二
Servlet
servlet的生命周期(创建—>使用—>销毁)
servlet的生命周期大致分为3个阶段,分别是初始化阶段,运行阶段和销毁阶段。
1.初始化阶段>>>
init(ServletConfig config)初始化方法;首次访问这个servlet,servlet对象会被创建,执行一次。
2.运行阶段>>>>>
servlet(ServletRequest req,ServletResponse res)服务方法:每次访问servlet时,服务方法都会被执行,执行多次…
3.销毁阶段:
destroy()销毁方法:当服务器正常关闭时。会执行销毁方法,执行一次。
1.4servlet应用-HttpServlet
在开发中,通过浏览器访问web服务器端的资源,是带有协议的访问,比如说http协议,https协议等,所以在创建servlet时。需要使用带有协议的servlet,那么咱们程序员在创建servlet时,通常用继承HttpServlet的方式来实现。
1.查看HttpServlet源码得到的结论:
在HttpServlet里面重写service方法时,因为在service方法里面,最终调用doGet或者doPost方法,所以说在重写服务方法时,一般情况下不会重写service方法。而是直接重写doGet和doPost方法在客户端发送get请求,在服务器端就用doGet方法接收、在客户端发送Post请求,在服务器端就用doPost方法来接收。
1.5使用Eclipse工具开发servlet
通过开发工具创建servlet有两种方式:
1.先创建一个普通的Java类,需要去实现Servlet接口。或者继承对应的HttpServlet(GenericServlet)类,咱们普通的Java类就具有servlet功能,所以需要手动在web.xml配置文件中添加访问servlet的路径信息。
2.直接创建servlet,会自动在web.xml文件中添加访问servlet的路径信息。
创建TestServlet01:
选择file-->new-->other

`
一直点击next进行创建好web项目
在这里插入图片描述
创建web后,接下里就可以开始新建Servlet了,右键单击选择new–>other选项,进入Servlet界面,选择Servlet选项,单击Next按钮,进入填写Servlet信息设置名称为TestServlet01,一直单击next如下图所示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
代码如下:

ackage cn.itcast.servlet;

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

import javax.servlet.ServletException;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class Testservlet01
 */
public class Testservlet01 extends HttpServlet {
	private static final long serialVersionUID = 1L;

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

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, 
			HttpServletResponse response) throws ServletException, IOException {
				PrintWriter out = response.getWriter();
				out.print("this servlet is created by eclipse");
				
	}

}

TestServlet虚拟映射路径已经自动进行配置如图:
在这里插入图片描述
为了更好演示Servlet效果,接下来在该Servlet的doGet()和doPost()中的一些代码具体如下

	protected void doGet(HttpServletRequest request, 
			HttpServletResponse response) throws ServletException, IOException {
		this.doPost(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, 
			HttpServletResponse response) throws ServletException, IOException {
				PrintWriter out = response.getWriter();
				out.print("this servlet is created by eclipse");
				
	}

最后部署和访问Servlet
如下图所示
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这就是Eclipse工具开发Servlet的全过程。
1.6实现Servlet的虚拟路径映射
1.Servlet的多重映射:一个Servlet,可以对应多个访问路径。
一个Servlet对应的访问路径:/test02或者/test03在这里插入图片描述
2.什么是ServletConfig:
它是servlet的配置对象,作用就是获取与servlet的初始化参数。
它的子类是GenericServlet和HttpServlet.
它被实列化是通过web服务器实现的。
得到servletConfig对象:getServletConfig()
ServletConfig常用的方法:

  1. 获取servlet的初始化参数的值:getInitParameter(String name):根据encoding获取utf-8
  2. 获取servlet初始化参数的名称:getInitParameterNames() :获取encoding和username等名称
  3. 得到servletContext对象:getServletContext()
  4. 获取servlet的名称:getServletName():对应web.xml里面

在这里插入图片描述
3.ServletContext接口

ServletContext对象是在web服务器启动时就创建了,是web服务器创建的servletContext对象,
每一个web项目只有一个ServletContext对象。
ServletContext对象的作用:获取web应用程序的初始化参数,在web应用程序能共享数据,获取web项目下的资源文件。
得到ServletContext对象:
1.通过ServletConfig对象: config.getServletContext()
2.直接得到: getServletContext();
​获取web应用程序的初始化参数(web应用程序就是web项目)
1. 获取全局初始化参数的值:getInitParameter(String name)
2. 获取全局初始化参数的名称:getInitParameterNames()
下面是获取全局化参数
在这里插入图片描述
2.实现多个servlet对象之间共享数据:因为一个web项目只有一个ServletContext对象
ServletContext对象就是域对象:域对象在一定范围内能存值和取值。
在这里插入图片描述
请添加图片描述
下面的结果为
请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值