Servlet

Posted jiayiblog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Servlet相关的知识,希望对你有一定的参考价值。

Servlet简介
Servlet是servlet为服务器端java代码,用来处理用户请求和响应
Servlet=Server+Applet,是一种服务器端的Java应用程序,只有当一个服务器端的程序使用了Servlet API的时候,这个服务端的程序才能称之为Servlet。

配置Servlet
方式一 修改web.xml(部署描述文件)
配置<servlet>元素
  <servlet>
  <servlet-name>myServlet3</servlet-name>
  <servlet-class>demo.web.servlet.MyServlet3</servlet-class>
  </servlet>

<servlet-name>:Servlet名称唯一   

<servlet-class>:Servlet类所在路径

配置<servlet-mapping>元素
  <servlet-mapping>
  <servlet-name>myServlet3</servlet-name>
  <url-pattern>/myServlet3</url-pattern>
  </servlet-mapping>

<servlet-name>:与<servlet>的<servlet-name>设置相同

<url-pattern>:访问Servlet的URL
方式二 注解
在Servlet类上方添加 @WebServlet(name = "", urlPatterns = "") name名字随便取 url-pattern与jsp页面 form表单action值保持一致。

Servlet API
javax.servlet.Servlet接口 所有Java Servlet的基础接口类,规定了必须由Servlet具体类实现的方法集
javax.servlet.GenericServlet类 Servlet的通用版本,是一种与协议无关的Servlet
javax.servlet.http.HttpServlet类 在GenericServlet基础上扩展的基于Http协议的Servlet 常用

JSP与Servlet的关系
Servlet是一个特殊的Java程序,它运行于服务器的JVM中,能够依靠服务器的支持向浏览器提供显示内容。

JSP本质上是Servlet的一种简易形式, JSP会被服务器处理成一个类似于Servlet的Java程序,可以简化页面内容的生成。

Servlet和JSP最主要的不同点在于,Servlet 的应用逻辑是在Java 文件中,并且完全从表示层中的html分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp 的文件(有人说,Servlet就是在Java中写HTML,而JSP就是在HTML中写Java代码,当然,这个说法还是很片面的)。

JSP侧重于视图,Servlet更侧重于控制逻辑,在MVC架构模式中,JSP适合充当视图(view)而Servlet适合充当控制器(controller)。

创建Servlet的三种方式
1.实现Servlet接口
2.继承GenericServlet类
3.继承HttpServlet类

Servlet中的主要方法

init():Servlet的初始化方法,仅仅会执行一次
service():处理请求和生成响应
destroy():在服务器停止并且程序中的Servlet对象不再使用的时候调用,只执行一次

ServletRequest
封装客户的请求信息
作用相当于JSP内置对象request

request.setAttribute("info",info);在请求中保存名称为info的属性,后面是值

request.getParameter("er");获取表单请求中传递的参数 (重定向,带?号)

request.getAttribute("info"); 获取名称为info的属性值。(转发)

request.removeAttribute("info");清除请求名称为info的属性


ServletResponse
创建响应信息,将处理结果返回给客户端 
作用相当于JSP内置对象response

response.sendRedirect("/login.jsp?er="+info);

ServletConfig
包含了Servlet的初始化参数信息


servlet的生命周期
Servlet的生命周期包含了下面4个阶段:

1.加载和实例化
 Servlet容器负责加载和实例化Servlet。当Servlet容器启动时,或者在容器检测到需要这个Servlet来响应第一个请求时,创建Servlet实例。
2.初始化
在Servlet实例化之后,容器将调用Servlet的init()方法初始化这个对象。初始化的目的是为了让Servlet对象在处理客户端请求前完成一些初始化的工作,
如建立数据库的连接,获取配置信息等。
3.请求处理
Servlet容器调用Servlet的service()方法对请求进行处理。要注意的是,在service()方法调用之前,init()方法必须成功执行。
4.服务终止
当容器检测到一个Servlet实例应该从服务中被移除的时候,容器就会调用实例的destroy()方法,以便让该实例可以释放它所使用的资源,保存数据到持久存
储设备中。

总结:
Servlet的作用
  负责接收请求,调用相应Service方法,决定如何响应,本身不做业务逻辑
  创建和部署Servlet(重点)
创建:继承自HttpServlet
部署:修改web.xml添加<servlet>、<servlet-mapping>
Servlet的好处
  专人专职:JSP负责显示,Servlet负责控制

以上是关于Servlet的主要内容,如果未能解决你的问题,请参考以下文章

ServletServlet 详解(使用+原理)

ServletServlet容器等内容讲解

web.xml servletservlet-mapping配置

ServletServlet学习之基础篇

ServletServlet学习之基础篇

ServletServlet学习之基础篇