JavaServlet详解

1.servlet就是一个普通的类,创建一个servlet接口的实现类
public class HelloServlet implements Servlet{

}
在web.xml中配置和映射servlet

<!-- 配置和映射servlet -->
		<!--注册一个servlet-->
		<servlet>
		<!-- 注册名 -->
		<servlet-name>first</servlet-name>
		<!-- servlet类的全类名 -->
		<servlet-class>first.FirstServlet</servlet-class>
		<!--制定创建时间-->
		<load-on-startup>n</load-on-startup>
		</servlet>
		<!-- 映射servlet -->
		<servlet-mapping>
		<!-- 必须和注册名一致 -->
		<servlet-name>first</servlet-name>
		<!-- 浏览器访问路径/代表当前web应用的根目录 -->
		<url-pattern>/first</url-pattern>
		</servlet-mapping>

访问路径:http://localhost:8080/first/FirstServle

2.servlet容器,运行servlet或者jsp等软件环境
可以创建servlet,调用servlet生命周期方法
servlet的生命周期是由servlet容器负责管理的
构造器:只被调用一次,只有第一次请求servlet的时候,创建该servlet构造方法,单例
init方法:只被调用一次,在创建好实例以后,直接调用,初始化servlet
service方法:被调用多次,在每一次请求时调用,用于获取和相应请求
destroy方法:只调用一次,在当前web应用程序被卸载的时候调用,用于释放空间

3.<load-on-startup>n</load-on-startup>
指定servlet创建的时机,在标签内部,当n为负数时:第一次请求时还创建
n为0时,在当前web应用被加载时创建servlet实例和初始化,数值越小越早创建

4.<servlet-mapping></servlet-mapping>
同一个servlet可以有多个,多个的子节点的设置值可以是同一个servlet注册名
在servlet映射到URL中可以使用通配符 ”.拓展名“,”/sd/

5.ServletConfig:代表当前servlet,可以获取当前servlet的配置,还可以获取ServletContext对象
配置初始化信息,配置放到<servlet>中<load-on-startup>前面

<init-param>
		<param-name>username</param-name>
		<param-value>root</param-value>
		</init-param>
		<init-param>
		<param-name>pwd</param-name>
		<param-value>123456</param-value>
		</init-param>

获取初始化参数
getInitParameter(String):根据初始化参数名获取初始化信息
getInitParameterNames():获取所有初始化参数名
获取当前servlet的注册名
getServletName():获取当前servlet的注册名
获取代表当前web应用的servletContext对象
config.getServletContext():获取代表当前web应用的servletContext对象

6.实现servlet的第二种方法,继承GenericServlet
是一个servlet,时servlet和servletConfig接口的实现类,是一个抽象类,其中service方法是抽象方法
具体实现:在GenericServlet中声明了一个成员变量servletConfig,并且在init(ServletConfig config)里面对这个变量初始化
利用servlConfig成员变量实现了ServletConfig接口里面的方法
还定义了init()方法,如果子类在初始化时,需要完成一些特殊的功能,可以重写该方法,并且在init(ServletConfig config)
里面调用init()方法,注意:重写的init()方法不是生命周期方法,init(ServletConfig config)方法才是周期方法

7.继承HttpServlet是实现servlet最常用的方式
1)继承GenericServlet,提示针对Http协议指定的
2)在service(ServletRequest req,ServletResponse res)中直接把ServletRequest和ServletResponse转成了
HttpServletRequest,HttpServletResponse,并且调用了重载的service(HttpServletRequest req,HttpServletResponse res)方法。
再重载service(HttpServletRequest req,HttpServletResponse res)中,获取了请求方式,并且根据请求方式去调用doGet()或
doPost()方法。
3)继承HTTPServlet只需要重写doGet()和doPost()方法即可

8.ServletContext代表当前web应用对象(在当前web应用下所有的地方都可以获取他,只有一个,相当于这个项目的全局变量)
1)获取servletContext对象的两种方式
ServletConfig的getServletContext();
GenericServlet的getServletContext()(getServletConfig().getServletContext();)
2)ServletContext的方法
context.getInitParameterNames():获取所有参数名
context.getInitParameter(name):通过参数名获取参数值
context.getRealPath("/"):获取真实目录
context.getContextPath():获取根目录

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值