Servlet

Tomcat

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。
Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。
除tomcat外,web应用服务器还有jetty,weblogic,websphere,undertow等。
注意:有时我们会将web叫做web服务器,实际上tomcat更准确的叫法是应用服务器。 web服务器主要是指专门来处理html,css,图片等静态资源的服务器,必要apache服务器。

 Tomcat 和 Servlet 的关系

Tomcat 是Web应用服务器,是一个Servlet/JSP容器。 Tomcat 作为 Servlet 容器,负责处理客户请求,把请求传送给 Servlet,并将 Servlet 的响应传送回给客户,而 Servlet 是一种运行在支持 Java 语言的服务器上的组件。

Servlet

Servlet(Server Applet),全称Java Servlet,未有中文译文。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。

    Servlet运行于支持Java的应用服务器中。从实现上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。

实现一个Servlet

  1. File -> new -> Project
  2. 左侧栏选择Java,右侧Project SDK 选择自己的jdk,没有的话需要自己new添加以下, 框中需要勾选 Web Application ,表示我们创建的是一个Servlet项目

Servlet 接口主要方法

  • init()方法:只会调用一次,只是在创建servlet实例的时候才会创建。
  • service()方法:是进行数据处理的,只要接受了一次请求,就会被调用一次
  • destroy()方法:销毁 Servlet 对象的时候调用。停止服务器或者重新部署 Web 应用时销毁 Servlet 对象,同样也是调用

public interface Servlet {
    void init(ServletConfig var1) throws ServletException;
 
    ServletConfig getServletConfig();
 
    void service(ServletRequest var1, ServletResponse var2) throws ServletException, IOException;
 
    String getServletInfo();
 
    void destroy();
}

Servlet 的生命周期

init() 方法

init 方法被设计成只调用一次。它在第一次创建 Servlet 时被调用,在后续每次用户请求时不再调用。因此,它是用于一次性初始化,就像 Applet 的 init 方法一样。我们可以利用init( )方法来执行相应的初始化工作。调用这个方法时,Servlet容器会传入一个ServletConfig对象进来从而对Servlet对象进行初始化

service() 方法

service() 方法是执行实际任务的主要方法。Servlet 容器(即 Web 服务器)调用 service() 方法来处理来自客户端(浏览器)的请求,并把格式化的响应写回给客户端。。第一次请求时,Servlet容器会先调用init( )方法初始化一个Servlet对象出来,然后会调用它的service( )方法进行工作,但在后续的请求中,Servlet容器只会调用service方法了。

destroy() 方法

destroy() 方法只会被调用一次,在 Servlet 生命周期结束时被调用。destroy() 方法可以让您的 Servlet 关闭数据库连接、停止后台线程、把 Cookie 列表或点击计数器写入到磁盘,并执行其他类似的清理活动。

  getServletInfo( ),这个方法会返回Servlet的一段描述,可以返回一段字符串。

  getServletConfig( ),这个方法会返回由Servlet容器传给init( )方法的ServletConfig对象。

Servlet中重要的几个对象

HttpServletRequest

每当有一个http请求过来,就会将当前http请求的信息封装为一个HttpServletRequest对象,并且通过doGet,doPost等方法当作入参传入,HttpServletRequest有如下几个常用方法

  • getHeader 获取请求头的头部信息
  • getCookies 获取当前请求的cookie信息
  • getMethod 获取当前请求方法类别 Get Post
  • getQueryString 获取当前请求参数的kv串 k1=v1=&k2=v2
  • getRequestURI 获取当前请求路径 /servlet/a
  • getRequestURL 获取当前请求的总路径,包含域名协议 http://localhost:8080/servlet/a
  • getSession 获取当前请求的session信息
  • getParameter 获取请求参数中对应key的value

HttpServletResponse

每当有一个http请求过来,就会将当前http返回的信息封装为一个HttpServletResponse对象,我们可以通过设置resonse的属性来返回相对应的数据,HttpServletRequest有如下几个常用方法

  • addCookie 添加cookie,可以向当前http请求设置cookie,在下次请求的时候会携带回来
  • sendRedirect 重定向到指定请求地址,code会被设置为302
  • addHeader 设置返回的头部数据
  • setStatus 设置相应的状态码,常见的状态码包含200 302 405 500等等
  • setContentType 设置相应数据的格式,比如常见的有text/html,text/javascript , text/css , application/json 等等,浏览器会根据contentType来渲染对应的数据
  • getWriter 重要方法,获取输出流对象,可以通过write方法来向页面输出内容,比如上面写到的 this is servlet html

ServletConfig

ServletConfig是servlet级别的,每个servlet都有一些自己的属性,包括名称,初始化参数等等,这些属性在每个servlet之间是独有,这些属性的集合就是用ServletConfig对象来表示的

  • getServletName 获取当前servlet名称
  • getServletContext 获取ServletContext对象,每个web应用都有且仅有一个ServletContext对象,
  • getInitParameter 获取servlet初始化配置的参数信息
  • getInitParameterNames 获取servlet所有初始化配置信息的名称集合

ServletContext

一个web应用在启动时会创建一个ServletContext对象,表示web应用的上下文,可以用来配置读取当前应用的全局配置,servlet之间通过servletContext对象来进行通信,servletContext对象可以通过servletConfig对象来获取

  • get/set Attribute 设置获取servlet全局属性
  • getAttributeNames 获取所有属性的名称集合
  • addServlet 添加Servlet
  • addFilter 添加过滤器
  • addListener 添加监听器

mvc

什么是MVC
MVC(Model View Controller)是一种软件设计的框架模式,它采用模型(Model)-视图(View)-控制器(controller)的方法把业务逻辑、数据与界面显示分离。把众多的业务逻辑聚集到一个部件里面,当然这种比较官方的解释是不能让我们足够清晰的理解什么是MVC的。用通俗的话来讲,MVC的理念就是把数据处理、数据展示(界面)和程序/用户的交互三者分离开的一种编程模式。
① M o d e l ModelModel(模型):数据模型,提供要展示的数据,因此包含数据和行为,可以认为是领域模型或JavaBean组件(包含数据和行为),不过现在一般都分离开来:Value Object(数据Dao) 和 服务层(行为Service)。也就是该模型提供了模型数据查询和模型数据的状态更新等功能,包括数据和业务。
② V i e w ViewView(视图):负责进行模型的展示,一般就是我们见到的用户界面,客户想看到的东西。
③ C o n t r o l l e r ControllerController(控制器):接收用户请求,委托给模型进行处理(状态改变),处理完毕后把返回的模型数据返回给视图,由视图负责展示。
 

jar

Jar包的含义

1.简单来说,jar包是对写好的类进行了打包。我们可以通过将jar包放到lib目录下来使用这些jar包中的类、属性和方法。

2.专业解释,JAR文件是Java Archive File-java档案文件的简称,是与平台无关的文件格式,基于zip文件格式将许多文件合成一个压缩文件.jar,区别是比zip多了一个包含了一个 META-INF/MANIFEST.MF 文件,这个文件是在生成 JAR 文件的时候自动创建的。

3.作用

JAR 文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和 JVM 这样的工具直接使用。在 JAR 中包含特殊的文件,如 manifests 和部署描述符,用来指示工具如何处理特定的 JAR。

涉及因特网应用时,JAR文件显得特别有用。在JAR文件之前,Web浏览器必须重复多次请求Web服务器,以便下载完构成一个“程序片”(Applet)的所有文件;但在将所有这些文件合并到一个JAR文件里以后,只需向远程服务器发出一次请求即可。除此以外,每个文件都是未经压缩的,由于采用了压缩技术,所以可在更短的时间里获得全部数据。
导入使用

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值