servlet相关

1.servlet就是一个普通的类,创建一个servlet接口实现类
1).public class HelloServlet implements Servlet
2)在web.xml中配置和映射servlet

  
  
      
      hello
      
      com.hpe.servlet.HelloServlet
 
  
 
  
  hello
  
  /hello
 
  http://localhost:8080/Servlet01/hello
 
 2.Servlet容器,运行servlet、jsp、filter等软件环境
 1).可以创建servlet,调用servlet生命周期的相关方法
 
 3.servlet生命周期方法:都是由servlet容器负责调用
 1).构造器:只被调用一次,只有第一次请求servlet的时候,创建该servlet实例,调用了构造器。
 说明servlet是单实例的。
 2).init方法:只被调用一次,在创建好实例以后,立刻被调用,用于初始化该servlet
 3).service():被调用多次,每一次请求都会调用service方法,用于响应请求。
 4)destroy:只被调用一次,在当前servlet所在的web应用被卸载或注销前调用。释放servlet所占资源。
 
 3.load-on-startup:
 1):配置在节点中
   
      
      hello
      
      com.hpe.servlet.HelloServlet
      
      3
 
  2)load-on-startup:可以指定servlet被创建的时机,如果负数:在第一次请求时被创建,若为正数或0:
  在当前web应用被servlet加载的时候创建实例,数字越小越早创建
 
 4.servlet-mapping
 1)同一个Servlet可以被映射到多个URL上,
  即多个元素的子元素的设置值可以是同一个Servlet的注册名。
  2)在Servlet映射到的URL中也可以使用*通配符,
  但是只能有两种固定的格式:一种格式是“*.扩展名”,另一种格式是以正斜杠(/)开头并以“/*”结尾。
 比如:/*.html不可以
 
  5.ServletConfig :封装了servlet配置信息,可以获取ServletContext对象
  1)配置servlet的初始化参数
 2)获取初始化参数:
getInitParameter(String)   获取当前Servlet指定名称的初始化参数的值
getInitParameterNames()  获取当前Servlet所有初始化参数的名字组成的枚举
3)获取servlet配置名称(几乎不用)
  getServletName()    获取当前Servlet在web.xml中配置的名字
4)>获取代表当前web应用的ServletContext对象
getServletContext()   获取代表当前web应用的ServletContext对象

6.使用GenericServlet实现servlet
1).是一个servlet,是servlet接口和servletConfig接口的实现类,是个抽象类,其中service是一个抽象方法
2)我创建一个servlet程序去继承GenericServlet,会使我们的开发更加便捷
3)具体实现:
(1).在GenericServlet中声明了一个servletconfig类型的一个成员变量,
并且在init(ServletConfig config)方法中对成员变量进行看初始化
(2).利用servletconfig成员变量实现了ServletConfig接口里的方法
(3).还定义了init()方法,子类可以重写init方法,完成servlet初始化的特定功能,并且在init(ServletConfig config)中
对init()方法进行了调用,重写的init的方法不是生命周期方法,而init(ServletConfig config)才是生命周期方法
 
 7.HttpServlet实现servlet是现在最常用的一种方式
 1).是一个servlet,继承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方法即可
4)有啥好处吗?
直接使用 HttpServletRequest, HttpServletResponse,不需要我们在通过代码进行强转

8.ServletContext
1)获取的两种方式
可以直接调用GenericServlet类的getServletContext()方法获取
ServletContext c1=getServletContext();
通过servletconfig获取
ServletContext c2=getServletConfig().getServletContext();
2).该对象代表的是当前web应用:代表了我在web应用的那一个servlet中都可以获取到该对象,ServletContext就类似于当前web应用的大管家
一个web项目,就存在一个ServletContext实例
3)功能
获取WEB应用程序的初始化参数。
设置web应用初始化参数(类似于一个类的全局变量):可以被所有servlet所获取,而servlet中定义的初始化参数(类似于一个方法的局部变量),
只能用该servlet获取
 
    username
    root
 
 
    password
    123456
 
 
  方法:
 getInitParameter(name)
 getInitParameterNames();

获取当前web应用的在服务器的绝对路径
getRealPath(String path):
System.out.println(c1.getRealPath("/"));//E:\惠普\实训\课件\大数据\2018.7月大数据\第一阶段\4.servlet\案例\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\Servlet01\
/Servlet01

获取的是当前web的上下文,web应用名:getContextPath()
System.out.println(c1.getContextPath());///servlet01

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Servlet是Java Web应用程序中的一种Java类,用于处理Web请求和响应。Servlet可以接收HTTP请求并生成HTTP响应。Servlet通常用于构建动态Web应用程序,如Web表单处理、用户身份验证、网站搜索等。 以下是一些Servlet相关理论: 1. Servlet生命周期:Servlet的生命周期包括初始化、服务和销毁三个阶段。当Servlet容器第一次加载Servlet时,它会调用init()方法对Servlet进行初始化。当Servlet容器接收到一个请求时,它会调用service()方法来处理请求。当Servlet容器关闭时,它会调用destroy()方法来销毁Servlet。 2. Servlet API:Servlet API是一组Java类和接口,它定义了Servlet容器和Servlet之间的通信规范。Servlet API包括HttpServletRequest、HttpServletResponse、ServletContext等类和接口。 3. Servlet容器:Servlet容器是Web服务器或应用服务器中的一个组件,它负责管理Servlet的生命周期并提供Servlet运行环境。常见的Servlet容器包括Tomcat、Jetty、WebLogic等。 4. Servlet配置:Servlet可以在web.xml文件中配置。web.xml文件是一个XML文档,它包含Servlet和其他Web应用程序组件的配置信息。 5. Servlet过滤器:Servlet过滤器是一种能够拦截和处理请求的Java类。Servlet过滤器可以用于身份验证、日志记录、压缩、加密等任务。 6. Servlet会话管理:Servlet可以使用会话来跟踪用户在Web应用程序中的状态。会话是一种将数据存储在服务器端的机制,它可以用于跨页面传递数据、用户身份验证等任务。 以上是一些Servlet相关理论。理解这些概念可以帮助开发人员更好地理解和使用Servlet技术。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值