浅谈-----Servlet

Servlet

一、什么是Servlet?

  • Servlet是JavaWeb应用中最核心的组件,是运行在服务中的程序。
  • Servlet可以完成以下任务:
1、动态生成HTML文档。
2、将请求转发给Servlet组件。
3、读取客户端的Cookie,以及向客户端写入Cookie。
4、访问服务器的资源,如数据库、XML、文件对象。
  •  Servlet的特点:Servlet对象,有Servlet容器(Tomcat)创建。
  • Servlet是一个接口:位于javax.servlet包中。
  • Servlet源码:          
<span style="white-space:pre">	</span>package javax.servlet;
<span style="white-space:pre">	</span>import java.io.IOException;
<span style="white-space:pre">	</span>public abstract interface Servlet
<span style="white-space:pre">	</span>{
  <span style="white-space:pre">	</span>public abstract void init(ServletConfig paramServletConfig)
   <span style="white-space:pre">	</span> throws ServletException;

 <span style="white-space:pre">	</span>public abstract ServletConfig getServletConfig();

 <span style="white-space:pre">	</span>public abstract void service(ServletRequest paramServletRequest, ServletResponse paramServletResponse)
   <span style="white-space:pre">	</span> throws ServletException, IOException;

  <span style="white-space:pre">	</span>public abstract String getServletInfo();

 <span style="white-space:pre">	</span>public abstract void destroy();
<span style="white-space:pre">	</span>}

二、怎么使用Servlet?

step1实现Servlet接口:
<span style="white-space:pre">	</span>//service方法用于接收用户的请求并返回响应
<span style="white-space:pre">	</span>//2、用户访问时多次被执行
<span style="white-space:pre">	</span>public void service(ServletRequest req, ServletResponse rep)
	throws ServletException, IOException {
	<span style="white-space:pre">	</span>//通过outputStream输出信息给用户
	<span style="white-space:pre">	</span>PrintWriter out = resp.getWriter();
	<span style="white-space:pre">	</span>out.println(“Hello World”);
<span style="white-space:pre">	</span>}
step2配置Servlet:
<span style="font-size:14px;">     <!-- 在web.xml中配置你的Servlet,颜色相同为对应关系 -->
  <span style="white-space:pre">	</span><servlet>
  	<span style="white-space:pre">	</span><servlet-name>one</servlet-name>
  	<span style="white-space:pre">	</span><servlet-class>cn.hncu.OneServlet</servlet-class>
 <span style="white-space:pre">	</span> </servlet>
     <!-- 配置你的Servlet的影射目录 -->
 <span style="white-space:pre">	</span> <servlet-mapping>
  	<span style="white-space:pre">	</span><servlet-name>one</servlet-name>
  	<span style="white-space:pre">	</span><url-pattern>/one</url-pattern>
  <span style="white-space:pre">	</span></servlet-mapping>
</span>

//在浏览器地址栏通过以下方式访问:

http://localhost:8080/项目名/one

三、Servlet的生命周期。

  •  init方法:

1、只会被初始化一次。由容器初始化,初始化成功后将缓存于容器中。

   2、它的初始化时间分为两种:第一种:用户第一次访问时;第二种:服务器启动时。--需配置。
  • service方法
   1、每次请求都会访问此方法。
     2、每次请求都会创建新的Requset和Response对象。
  • destory方法
      当服务器关闭时有容器调用并销毁。

四、Servlet的其他相关类

  •  ServletConfig:代表Servlet的初始化配置参数。
  •  ServletContext:代表整个Web项目。
  •  ServletRequset:代表用户的请求。
  •  ServletResponse:代表用户的响应。
  •  HttpSession:代表用户的一次会话。

ServletConfig:

  •   它包含了Servlet的初始化参数。
  •   它还与ServletContext对象关联。
  •   方法:
1、getInitParameter   //获取单个配置的参数
2、getInitParameterNames  //获取所有配置的名称集合
3、getServletContext   //获取ServletContext(代表本项目)对象
  • ServletConfig获取初始化参数:
<span style="font-size:14px;"><span style="white-space:pre">	</span><!-- 在Servlet的配置初始化参数 -->
 <span style="white-space:pre">	</span> <init-param>
  	<span style="white-space:pre">	</span><param-name>name</param-name>
  	<span style="white-space:pre">	</span><param-value>hncu</param-value>
<span style="white-space:pre">	</span> </init-param></span>

servletConfig.getInitParameter(“name”);

//即可以获取name对应的值hncu


ServletContext:

  •   每一个Web应用,拥有一个唯一的ServletContext,当应用启动时创建,当应用关闭时销毁。
  •   ServletContext可用于在同一个Web项目中,共享资源。
  •   方法:
getContextPath
getInitParameter,getInitParameterNames
getRequestDispatcher(path)
getRealPath     -项目的根式
getResource
getResourceAsStream
setAttribute,getAttribute

ServletContext获取项目信息:

  • getContextPath();     //项目名称
  •   getRealPath("/");       //项目的真实目录


五、Servlet实现类

  •     Javax.servlet.GenericServlet
1、此类实现了ServletConfig接口。
2、增加了init()没有参数的方法。
3、增加了getServletContext()方法,但此方法任然是从ServletConfig中获取ServletContext。
  •     Javax.servlet.HttpServlet
1、继承了GenericServlet,用不同的方法处理get或post请求。
2、奖ServletRequest转成HttpServletRequest等。
  •     Java建议通过实现HttpServlet来完成Servlet的开发。

六、让Servlet在启动时加载

  • 在web.xml  Servlet的配置为:<load-on-startup>1</load-on-startup>
  • 在项目启动时加载一些必须的资源、如准备资源文件


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: default-servlet-handler是Spring MVC框架中的一个处理器,用于处理静态资源请求。当请求的URL没有匹配到任何一个Controller时,default-servlet-handler会将请求转发给Servlet容器中的默认Servlet来处理,例如Tomcat中的DefaultServlet。这样可以避免在Controller中处理静态资源请求,提高系统性能。 ### 回答2: default-servlet-handler是Spring MVC框架用于处理静态资源的默认处理器,它是一个处理器映射器和处理器适配器的组合。在Spring MVC中,当发送来自客户端的静态文件请求时,会使用该default-servlet-handler默认处理器来处理这些请求。 Spring MVC的默认处理器使用了Servlet容器的默认Servlet来处理静态资源的请求。这些静态资源可以是图片、CSS文件、JavaScript文件或HTML文件等。当请求的资源在内存中不存在时,default-servlet-handler会把请求转发到Servlet容器里的默认Servlet,由其来处理,并把处理结果返回给客户端。这样做可以减轻Spring MVC本身的负担,提高整个应用程序的性能。 使用default-servlet-handler,我们可以不必为所有静态资源创建控制器,以提高应用程序启动和运行速度。这就是说,当我们的控制器无法处理一个请求时,Spring MVC会检查是否有默认的Servlet来处理这个请求,并把这个请求转给该Servlet。所以,我们可以通过在web.xml文件中注册Servlet来实现对不同路径的映射和处理。 另外需要注意的是,default-servlet-handler在XML配置文件中的配置代码如下: ```xml <mvc:default-servlet-handler/> ``` 在注解配置中的代码如下: ```java @Configuration @EnableWebMvc public class AppConfig implements WebMvcConfigurer { @Override public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { configurer.enable(); } } ``` 以上就是default-servlet-handler的基本使用和配置方法。如果在Spring MVC框架中需要处理静态资源并提高应用程序的性能,这个处理器的使用是非常值得推荐的。 ### 回答3: default-servlet-handler是Spring框架中的一个组件,它是用来处理静态资源(如图片、CSS文件、JavaScript文件等)的一个处理器。在Web应用程序中,通常会有很多静态资源需要提供给客户端访问,如何高效地管理这些资源并提供访问? 在传统的Web应用程序中,通常会将静态资源放在Web服务器的某个目录下,如Tomcat中的【webapps】目录。Web服务器收到客户端请求后,根据URL去服务器中查找对应的文件并返回给客户端。但是,这种方式存在一个问题:每次静态资源的修改都需要重启Web服务器,影响Web应用程序的正常运行。 而Spring框架中提供了default-servlet-handler能够解决这个问题,它会去解析Web应用程序中的资源和请求路径,并将请求转发到Web服务器的默认Servlet来处理。这样,Web服务器就不需要重启就可实时地提供静态资源。 default-servlet-handler的原理是将对静态资源的请求交给Web服务器中的默认Servlet来处理,而不是交给DispatcherServlet来处理。需要注意的是,default-servlet-handler只是用来处理静态资源,如果请求的URL路径与某些动态请求有冲突,则会由DispatcherServlet来处理动态请求。 在配置default-servlet-handler时,需要为该处理器指定一个URL模式,用于匹配静态资源的请求路径。例如: <mvc:default-servlet-handler /> 这样配置就会将所有静态资源请求交给Web服务器默认的Servlet来处理。 综上所述,default-servlet-handler是Spring框架中用于处理静态资源的重要组件,它能够高效地提供静态资源访问的服务,降低Web服务器重启频率,提高Web应用程序的稳定性和效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值