码迷,mamicode.com
首页 > 其他好文 > 详细

Servlet学习说明

时间:2020-02-17 23:42:34      阅读:65      评论:0      收藏:0      [点我收藏+]

标签:init   单例   上下   web   全局   gen   构造方法   service   --   

一、配置

1.基于web.xml的方式

<servlet>
    <servlet-name>MyServlet</servlet-name>
    <servlet-class>com.claudxyz.servlet.MyServlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>MyServlet</servlet-name>
    <url-pattern>/myServlet</url-pattern>
</servlet-mapping>

 

2.基于注解 

@WebServlet("/demo")
public class MyServlet implements Servlet {

}

 

二、加载顺序

1.构造方法,web容器通过反射调用无参的构造方法创建对象

2.init(),类似于单例模式,只创建一次

3.service(),请求几次,访问几次

4.destroy(),web容器关闭调用

 

三、servletConfig

1.getInitParameter() 获取web.xml servlet下的init_param

<servlet>
    <servlet-name>MyServlet</servlet-name>
    <servlet-class>com.claudxyz.servlet.MyServlet</servlet-class>
    <init-param>
        <param-name>name</param-name>
        <param-value>admin</param-value>
    </init-param>
    <init-param>
        <param-name>password</param-name>
        <param-value>root123</param-value>
    </init-param>
</servlet>

2.getInitParameterNames() 获取参数名称

3.getServletName() 获取servlet全类名

4.getServletContext() 获取servlet上下文对象ServletContext对象。对象包括整个web服务器的信息。

5.ServletConfig和ServletContext区别:ServletConfig作用于单个serlvet,其中包括getInitParameter()取的是serlvet下的init-param,而ServletContext的getInitParameter()取的是全局的context-param的值

<context-param>
    <param-name>username</param-name>
    <param-value>bigadmin</param-value>
</context-param>

 

四、servlet层次

Servlet --> GenericServlet --> HttpServlet

Servlet存在冗余的方法,GenericServlet实现了Serlvet并抽象了service方法,去除了用户不关心的方法。

HttpServlet extends GenericServlet,通过向下转型,使ServletRequest转换成HttpServletRequest,ServletReponse转换成HttpServletReponse,为的就是使用HttpServletRequest的getMethod方法,为的就是判断前台请求是GET、POST or 其他的类型。

后期使用servlet直接继承HttpServlet即可。

Servlet学习说明

标签:init   单例   上下   web   全局   gen   构造方法   service   --   

原文地址:https://www.cnblogs.com/claduxyz/p/12322695.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!