Servlet:Sun公司制订的一种用来扩展Web服务功能的组间规范。

第1部分 C/S和B/S介绍

1 C/S

Client Server

客户端 服务器程序;

客户端需要单独开发,用户需要下载并安装;

2 B/S

Browser  Server

浏览器 服务器程序;

客户端不用单独开发,用户不用单独安装;

第2部分 Servlet介绍

2.1 服务器如何保存病返回一个网页?

区分动静态网页在于内容是否变化。

1)静态网页:无论谁看其内容都是一样的。

如:百度百科、新闻等。

服务器直接存HTML,直接返回HTML即可。

1)  动态网页:不同人用返回的结果不一样,不同人看到的不一样。

如:淘宝(根据你喜好变化)、微博等。

服务器保存一个组件,动态给每个用户拼一个网页。在Java中这个组件就是Servlet。

组件就是满足规范的对象。

2.2 Servlet特点

是服务器短的组件;

满足Sun的规范;

可以动态拼资源(HTML/IMG等);

术语:处理HTTP协议;

2.3什么是Servlet

Sun推出的用于在服务器端  拼动态资源/处理HTTP协议 的组件。

第3部分 服务器介绍

3.1 名称

Java服务器

WEB服务器

Java WEB服务器

Servlet容器

都是指服务器,只是内容来称呼了而已。

3.2 服务器的本质

是一个软件;

它和浏览器是对等/平级关系。

3.3 服务器产品

  既然是软件就有很多厂家来开发,由不同产品,如:

  Tomcat(Apache)

  JBoss

  WebLogic

  WebSphere等

第4部分 Tomcat两种使用方式

4.1 单独使用(项目上线时)

基本上是由实施人员来做的

  1)  配置好JAVA_HOME

  2)  下载和安装,Apache官网

4.2 通过Eclipse调用(必须要会,开发时使用),做小案例时介绍使用

第5部分 Servlet开发步骤

5.1 创建WEB项目(在JavaEE模式下建立,最好使用Maven)

5.1.1必须具备标准WEB目录/webapp/WEB_INF/web.xml,所以创建完成需要在Deployment Descriptor:项目名 上右击选择Generate Deployment Descriptor ,然后生成标准Web项目目录,报错就消失了;

5.1.2创建Maven时packaging选war;

5.2 导入jar包

5.2.1使用Maven导包

因为使用外网可能会失败,当然也可以配置阿里云

--使用Maven搜索javaee

--在结果中选择Javaee-api

5.2.2 使用tomcat自带的包

  --当前项目右键properties

  --选择Targeted Runtimes 选择Apache Tomcat ,Apply and Close

5.3 开发Servlet项目

5.3.1编写Servlet

--package

--创建一个类,名为XxxxServlet

--继承HttpServlet,从而间接的实现了Servlet接口

       --重写父类的service()

        在新建的类(使用的是Eclipse)里面右键source -- Override/Implement Methods 选

        择service(注意有两个,选下图圈的那个)

5.3.2 配置Servlet

--先声明类,并给它取别名;

--再通过别名引用此类,给他取一个访问路径;

5.3.3部署(通俗来说就是拷贝)

  --在Servers视图下,选择tomcat7,右键Add and Remove

  --在弹出框将左侧待部署项目移动到右侧,点击OK;

  --启动tomcat部署即完成!

5.4访问

--http://ip:port/项目名/网名

第6部分 小案例代码

功能:服务器返回当前时间,用HTML显示

Java代码:

/**
* 功能:服务器返回当前时间
*
* 错误404:找不到资源,一般是路径不对,没有匹配;
* 错误500:1 类名有误;2 代码有误;
* 错误405:方法声明有误
*
* 在创建类的时候就实现HttpServlet的继承,以免自己写继承写错字母;
*/
package web;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; public class TimeServlet extends HttpServlet { @Override
protected void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
//super.service(req, resp); //这句调父类的,不需要,删除 res.setContentType("text/html"); //声明向网页发什么类型文件;这里发送的是网页,如果格式写错浏览器会让你保存而不是显示内容
PrintWriter out = res.getWriter(); Date date = new Date(); //创建一个时间
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
String now = sdf.format(date);
/*此处偷懒了,省略了网页的基本结构,之后再改进*/
out.println("<p>"+ now + "</p>");
out.close();
}
}

配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<display-name>servletDay01</display-name> <!-- 欢迎界面,可删除,没什么用 -->
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list> <!-- 1 声明Servlet的类型,并给他去一个别名,为了当前页面引用方便 -->
<servlet>
<servlet-name>time</servlet-name>
<servlet-class>web.TimeServlet</servlet-class>
</servlet> <!-- 2 通过别名引用Servlet,并给它取一个网名(访问路径) -->
<servlet-mapping>
<servlet-name>time</servlet-name> <!-- 上面的起的别名 -->
<url-pattern>/systemTime</url-pattern> <!-- 网名需要以斜线开头,网名自定义 -->
</servlet-mapping> </web-app>

Servlet学习笔记(1)的更多相关文章

  1. # jsp及servlet学习笔记

    目录 jsp及servlet学习笔记 JSP(Java Server Page Java服务端网页) 指令和动作: servlet(小服务程序) jsp及servlet学习笔记 JSP(Java Se ...

  2. Servlet学习笔记(四)

    目录 Servlet学习笔记(四) 一.会话技术Cookie.session 1. 什么是会话技术? 2. 会话技术有什么用? 3. Cookie 3.1 什么是Cookie? 3.2 使用Cooki ...

  3. Servlet学习笔记(三)

    目录 Servlet学习笔记(三) 一.HTTP协议 1.请求:客户端发送欸服务器端的数据 2.响应:服务器端发送给客户端的数据 3.响应状态码 二.Response对象 1.Response设置响应 ...

  4. Servlet学习笔记(二)

    目录 Servlet学习笔记(二) Request对象 1.request和response对象: 2.request对象继承体系结构: 3.什么是HttpServletRequest ? 4.Htt ...

  5. jsp&servlet学习笔记

    1.路径引用问题 一个css.jsp.html.或者javascript文件从从一个工程复制到另一工程,如果引用的时候使用的时相对路径,看似没有错误,但是却一直引用不进来,这时候要使用绝对路径,这样才 ...

  6. Servlet 学习笔记

    Servlet 运行在服务器上的 java 类: Servlet 容器为 javaWeb 应用提供运行时环境,负责管理 servlet 和 jsp 生命周期,以及管理他们的共享数据. 现在我们知道了 ...

  7. Servlet学习笔记(1)--第一个servlet&&三种状态对象(cookie,session,application)&&Servlet的生命周期

    servlet的404错误困扰了两天,各种方法都试过了,翻书逛论坛终于把问题解决了,写此博客来纪念自己的第一个servlet经历. 下面我会将自己的编写第一个servlet的详细过程提供给初学者,大神 ...

  8. Servlet学习笔记(七)—— 自己定义过滤器的编写改进:自己定义实现FilterChain

    笔记六中实现了三种过滤器:字符编码过滤.登录权限过滤.敏感词过滤,可是有个缺陷就是,限定了过滤顺序,而不能实现先进行request过滤.最后response过滤,而且中间几项过滤的顺序不能动态改变.所 ...

  9. Servlet学习笔记(八)—— 文件下载

    一.文件下载概述 比如图片或者HTML这类静态资源,仅仅要在浏览器中打开正确的网址就行下载.仅仅要资源放在应用程序文件夹或者其下的子文件夹中,但不在WEB-INF下.Servlet/JSP容器就会将资 ...

  10. JSP&Servlet学习笔记----第1/2章

    HTML(HyperText Markup Language):超文本标记语言 HTTP(HyperText Transfer Protocol):超文本传输协议 URL(Uniform Resour ...

随机推荐

  1. k8s部署dashboard:v1.5.1

    1.准备dashboard.yaml文件 apiVersion: extensions/v1beta1 kind: Deployment metadata: # Keep the name in sy ...

  2. python3 购物车 增改查终极版~

    还是先来条NLP再说,快没了,以后想抄还没有... 十一,没有挫败,只有回应讯息 “挫败”只是指出过去的做法得不到预期的效果,是给我们需要改变的信号. “挫败”只是在事情画上句号时才能用上,欲想事情解 ...

  3. Azure按订阅,资源组,资源类型导出所有资源powershell命令

    一般可以借助powershell命令来读取资源:例如:1, 读取某个订阅下的资源:$subscriptionID = "xxxxxxxx"Set-AzureRmContext $s ...

  4. 开源 , KoobooJson一款高性能且轻量的JSON框架

    KoobooJson - 更小更快的C# JSON序列化工具(基于表达式树构建) 在C#领域,有很多成熟的开源JSON框架,其中最著名且使用最多的是 Newtonsoft.Json ,然而因为版本迭代 ...

  5. MyIsam与InnoDB存储引擎主要区别

    MyIsam与InnoDB主要有以下4点大的区别,缓存机制,事务支持,锁定实现,数据物理存储方式(包括索引和数据). 1.缓存机制 myisam 仅仅缓存索引,不会缓存实际数据信息,他会将这一工作交给 ...

  6. (四)jdk8学习心得之函数式接口

    四.函数式接口 1. 格式 注:抽象方法就是通过lambda表达式或者方法引用实现. 2. Jdk提供的函数式接口(这里提供五个最为常用的) 3. 技巧 通过函数式接口,就可以把一个函数作为一个参数进 ...

  7. SSM项目整合Quartz

    一.背景 SSM项目中要用到定时器,初期使用Timer,后来用spring 的schedule,都比较简单,所以功能比较单一而且他们不能动态的配置时间.后来就研究quartz,准备整合到项目中.Qua ...

  8. kafka依赖zookeeper原因解析及应用场景

    kafka简介: kafka是一个发布订阅消息系统,由topic区分消息种类,每个topic中可以有多个partition,每个kafka集群有一个多个broker服务器组成,producer可以发布 ...

  9. python调用openstack的api,create_instance的程序解析

    python调用openstack的api,create_instance的程序解析 2017年10月17日 15:27:24 CloudXli 阅读数:848   版权声明:本文为博主原创文章,未经 ...

  10. x86汇编语言实践(3)

    0 写在前面 为了更深入的了解程序的实现原理,近期我学习了IBM-PC相关原理,并手工编写了一些x86汇编程序. 在2017年的计算机组成原理中,曾对MIPS体系结构及其汇编语言有过一定的了解,考虑到 ...