方法调用完后,其中的所有局部变量都会消失

###网络架构

-CS:Client Server  客户端服务器

特点:每种平台都需要开发相对应的app, 开发成本高  功能升级需要下载最新的客户端,用户体验高(因为部分数据在本地保存了,为了加载速度快)

可以利用客户端设备的各种传感器丰富功能

-BS:Browser Server 浏览器服务器

特点:跨平台,功能升级比较方便,用户体验稍差(所有数据都来自服务器)

两种架构工作中都很常见,以后都会涉及到,工作时主要开发两种架构中的S(服务器)

-服务器实际上就是一个高配置的电脑,通常内存8g以上

cup---8核    硬盘---T级别(1T=1024G)

1. 邮件服务器:安装了邮件服务软件的高配置电脑   功能:收发邮件

2. ftp服务器:安装了ftp服务软件的高配置电脑  功能:共享文件,文件的上传下载

3. 数据库服务器:安装了数据库软件(mysql,oracle,db2)的高配置电脑 功能: 数据的增删改查 crud

4. web服务器:安装了web服务软件的高配置电脑 功能:提供复杂的数据和文件共享功能

###什么是web服务器(web容器)

电脑中的任何资源(数据或文件) 被远程计算机访问,都需要有一个与之对应的网络通信程序,

当有用户访问时,此程序负责建立网络连接,读取资源,并把资源返回给用户(数据传输),此程序负责底层的网络连接,处理http协议,

使用此类型的程序,程序员只需要把精力放在具体的业务逻辑上即可

###web服务器

apache http server

iis

nginx----俄罗斯

tomcat可以当成一个简单的web服务器来用,是一个servlet容器,提供servlet运行环境,即提供网络相关的服务

静态资源放到专业的web服务器上(比如iis...)

如果需要计算,则交给servlet来处理

##常见的web服务器

-websphere :是IBM公司产品,闭源收费

-tomcat:Apache产品,开源免费,应用在中小型网站中

-weblogic:Bea公司产品,闭源收费

###使用Tomcat服务器演示共享资源

-window:找到tomcat的bin目录

-linux:找到home/tomcat8

终端中输入 chmod +x *.sh (作用:开启执行.sh批处理文件的权限)

终端中输入 ./startup.sh 显示 tomcat started则说明启动成功

总结:使用tomcat服务器共享文件,一行代码都不用写,如果自己写webserver(web服务器)代码很多而且容易出错,所以以后工作时一般不会自己写web服务器

都使用现成的web服务器

-tomcat服务器提供了静态资源访问的能力

###查看本机ip

- windows:ipconfig

-linux: ifconfig

##静态资源和动态资源

-静态资源:任何用户,任何时间访问的内容都一样,包括图片,html和各种文件

-动态资源:不同用户会根据某些逻辑使用户显示的内容不一样的资源,通过各种计算生成的网页

##servlet介绍

-为什么使用servlet

因为web服务器(tomcat)本身只提供了静态资源访问的能力,而具体的业务中存在大量动态资源的需求,

而servlet就是扩展web服务器动态资源访问能力的产物

Tomcat相当于一个web容器,servlet属于web容器中的组件

如果有注册请求,在web容器中就有相对应的注册servlet

-注册请求的过程:

1. 用户点击浏览器中的表单提交按钮

2. 请求会到web服务器,web服务器会找到相对应的注册servlet

3, 在servlet中 找到相对应的DAO,通过DAO代码把用户请求传递过来的数据保存到数据库中

###如何创建web工程

###如何创建servlet

1.创建一个class 继承httpservlet

2.编译

3.打包并发布(把servlet交给tomcat)

  把编译好的servlet保存到webapps下面

  appname

       WEB-INF(此文件夹里面的资源不能直接访问)

        classes(.class文件)字节码文件

        lib(可选,存放第三方的jar包)    

        web.xml(部署描述文件  deployment description)----请求地址与servlet的对应关系---键值对

4.部署

将step3创建的文件夹拷贝到servlet容器上面

注:可以使用jar命令将step3创建的文件夹压缩成.war结尾的文件,然后再拷贝

5.运行tomcat容器

###如何创建servlet第一个程序  

1.创建maven项目 把默认的jar改成war

2.把package Explorer 改成 project Explorer

3.在工程根目录的第一个文件上右键 点击最长的那个(默认工程中没有web.xml部署描述文件)

生成web.xml

4.在工程上右键properties选择target 设置部署的tomcat服务器

5.创建HelloServlet 继承HttpServlet

6.重写servie方法  并写返回数据的代码

7.在web.xml中写servlet和url的映射关系

8.工程上右键run as on server

###web.xml作用

写请求地址与servlet的对应关系

###请求和响应对象

-HttpServletRequest

请求对象,用于获取请求传递过来的各种信息

-HttpServletResponse

响应对象,用于处理响应数据(服务器给客户端发送数据)

###在运行eclipse的web程序的时候一定要保证tomcat服务器是关闭的

linux中的终端

如果出问题检查以下几个地方

1.FirstServlet类中是否继承了HttpServlet

2.在web.xml中书写的类的完整名称是否正确

3.是否指定了项目的运行环境

###常见的错误码

-404: 找不到资源,意思是请求的地址没有对应的静态资源和动态资源

原因:

  a.请求路径写错

  b.没有部署或者部署失败

解决方案:检查请求地址,检查项目

-500: 服务器内部代码错误,如空指针异常,下标越界,0作为被除数等任何运行时错误都会提示500

原因:

  a.

  servlet没有严格按照规范来写

  比如, 没有继承httpservlet

  又比如:servlet-name不一致,servlet-class写错等等

  b.

  代码写的不严谨

  比如:对用户填写的参数值没有做检查就做相应的转换

-405:找不到处理方法

原因:service方法没有正确override父类的方法

http协议:

##Servlet执行的过程:

在浏览器地址栏中输入请求地址回车发出请求,请求会先发送到web服务器(tomcat web容器),

tomcat会先检查请求地址 请求的静态资源还是动态资源,

如果静态资源直接把请求的资源文件返回给浏览器,

如果不是静态资源,则会去web.xml中查找有没有和请求地址相对应的servlet,

有的话则通过反射技术创建servlet对象,并且把请求相关信息封装在resquest对象中,把响应相关信息封装在response中,

然后servlet创建完后调用servlet里面的service方法,并且把request和response传递到service中,在service方法中写具体的业务逻辑,

如果在web.xml中没有找到匹配的servlet,此时tomcat会给浏览器返回404错误,代表找不到资源

###浏览器和服务器请求响应流程图

###HTTP协议

-什么是http协议

是由w3c组织制定的一个网络应用层协议,规定了浏览器如何与web服务器之间通信,以及规定了通讯时的数据格式

####响应数据乱码

-为什么出现乱码,因为输出响应数据默认使用的是iso8859-1 需要把此编码改成utf-8

创建servlet程序知识点详解---servlet-day01的更多相关文章

  1. 创建servlet程序知识点详解---servlet-day05

    jdbc.properties怎么写? 把秘密改为自己电脑设置的 password url 3306 是安装mysql时所确定的端口  后面还可以接字符集的限定 #1 jsp是什么?(java ser ...

  2. 创建servlet程序知识点详解---servlet-day03

    #1.表单包含有中文参数值,如何处理? ##(1)为什么会有乱码? 表单提交时,浏览器会对中文参数值进行编码/ 注:会按照表单所有的页面打开时所使用的字符集进行编码 比如,浏览器会使用utf-8对中文 ...

  3. 创建servlet程序知识点详解---servlet-day12

    自定义标签 (1)编程步骤 step1 jsp标签分为复杂标签技术(old),简单标签(new) 注(了解) jsp标签技术分为复杂标签技术(old),简单标签技术(new) step2 ###MVC ...

  4. 创建servlet程序知识点详解---servlet-day07

    情景1: 京东在买东西的时候,只有结帐的时候才会要求必须登录账户 #1.状态管理 ##(1)什么是状态管理? 将浏览器与web服务器之间多次交互当做一个整体来处理,并且将多次交互所涉及的数据(即状态) ...

  5. 嵌入式Linux应用程序开发详解------(创建守护进程)

    嵌入式Linux应用程序开发详解 华清远见 本文只是阅读文摘. 创建一个守护进程的步骤: 1.创建一个子进程,然后退出父进程: 2.在子进程中使用创建新会话---setsid(): 3.改变当前工作目 ...

  6. Activity知识点详解

    Activity知识点详解 一.什么是Activity 官方解释: The Activity class is a crucial component of an Android app, and t ...

  7. Linux Bash命令关于程序调试详解

    转载:http://os.51cto.com/art/201006/207230.htm 参考:<Linux shell 脚本攻略>Page22-23 Linux bash程序在程序员的使 ...

  8. VS2010开发程序打包详解

    VS2010开发程序打包详解 转自:http://blog.sina.com.cn/s/blog_473b385101019ufr.html 首先打开已经完成的工程,如图: 下面开始制作安装程序包. ...

  9. Java线程创建形式 Thread构造详解 多线程中篇(五)

    Thread作为线程的抽象,Thread的实例用于描述线程,对线程的操纵,就是对Thread实例对象的管理与控制. 创建一个线程这个问题,也就转换为如何构造一个正确的Thread对象. 构造方法列表 ...

随机推荐

  1. SQL server 在附加数据库后,数据库总是变成了只读

    1.  要把数据库文件的属性改了 右键点击两个文件的属性--安全--添加--立即查找--找everyone这个用户把他的权限都勾上 确定再附加就OK. 2. 在数据库管理器中对数据库点右键属性,然后切 ...

  2. [pig] pig 基础使用

    1.pig运行模式 本地模式: pig -x local 直接访问本地磁盘 集群模式: pig  或者 pig -x mapreduce 2.pig latin 交互 帮助信息 help 上传本地文件 ...

  3. Tensorflow Seq2seq attention decode解析

    tensorflow基于 Grammar as a Foreign Language实现,这篇论文给出的公式也比较清楚. 这里关注seq2seq.attention_decode函数, 主要输入 de ...

  4. 3D Slicer Modify Mouse Event 修改3D Slicer中的鼠标响应事件

    在3D Slicer中,我们如果想在自己写的插件中来修改默认的鼠标响应事件的话,就需要先将原有的响应事件链接删除,然后建立自定义的响应事件链接,然后将自己要实现的功能写在响应事件函数中. 比如Slic ...

  5. poj 2826

    太自闭了...明明很水的说... 有三种为0的情况.一种是有水平,一种是没交点. 第三种有点难想啊.就是下面那个板子被上面的挡住了,,雨水进不去... 关键是我翻了翻discuss找到了这种数据,,但 ...

  6. 腾讯云云机安装dockers

    云机的配置 首先更新一下源(更新前一直装不了) 下载dockers-ce(社区版) 启动dockers服务 使用hello-world进行测试(由于本地没有hello-world这个镜像,所以dock ...

  7. Java课程课堂测试05

    大致要求:将十道计算题输出至TXT文件,再读取文件至控制台,然后在控制台中输入答案并评判对错 我在大致的要求当中已经将我的设计思路体现了出来 首先,实现计算题的设计,第二步要对计算题循环,将答案存到一 ...

  8. python学习之旅(二)

    Python基础知识(1) 一.变量 变量名可以由字母.数字.下划线任意组合而成. 注意:1.变量名不能以数字开头: 2.变量名不能为关键字: 3.变量名尽量起有意义的,能够通过变量名知道代表的是什么 ...

  9. Linux 命令 which whereis locate find

    which: 查询某指令的完整路径 $ which [-a] command -a: 将所有在PATH目录中可以找到的指令均列出. 注意:只搜索PATH下的路径. whereis: 只搜索几个特定目录 ...

  10. 请大神留言:使用static方法和从Spring IOC 容器里面取出的方法有什么区别????

    类的静态方法,不用new出对象,因为它在类的初始化阶段加载到jvm内存的. 而spring容器,是在启动服务的时候,new出容器所管理的对象. 本质区别就是一个在堆中产生了对象,一个没产生对象只在方法 ...