JavaWeb1

JavaWeb

HTTP:是一种超文本传送协议,是一套计算机在网络中通信的一种规则。

是一种无状态的协议。

过程:客户端向服务器发送一个请求,然后Web服务器返回一个响应,之后连接关闭。这是 请求响应模型。

Web服务器的缺陷:

只能向客户端提供静态网页内容,解决方案:在运行的Web服务软件的Web服务器主机上增加一个辅助应用,这个辅助应用负责生成动态页面,并且能与Web服务器软件通讯。

最早的解决方案CGI

通用网关接口,每次请求一个CGI资源,将在服务器创建一个新的进程,严重消耗服务器资源,极大的限制了一个服务器可以支持多个用户的数量。容易受到攻击,如;爆吧这些。

Java的解决方案:

1.Servlet:一套规范也是一个类

2.Web容器:Servlet类中,没有main()方法,Web容器就是负责管理和运行Servlet

3.处理过程:客户端发起一个HTTP请求——HTTP请求被服务器接收——服务器移交给Web

,Web容器在主机起一个进程,Web根据Servlet的配置问确定调用,处理完返回给容器,在返回给客户端。

JavaWeb应用程序的组成:

配置文件,静态文件盒JSP,类文件和包。结构如下:

项目名称——{页面文件,WEB-INF{1.classes  2.lib  3.web.xml}}

发布WEB应用:

部署:打包:jar –cvf 项目名称.war *

配置web.xml文件:

<web-app>

    <servlet>

       <servlet-name>StudentServlet</servlet-name>

       <servlet-class>com.lovo.servlet.StudentServlet</servlet-class>

    </servlet>

    <servlet-mapping>

       <servlet-name>StudentServlet</servlet-name>

       <url-pattern>/ StudentServlet </url-pattern>

    </servlet-mapping>

</web-app>

Servlet生命周期:1类加载 2实例化3 调用init()方法,4等待用户访问

5 调用destroy方法实现对象销毁

一个Servlet必须有3个名称:一个是Servlet的名称,一个Servlet类的完整名称,一个是映射的逻辑名称:1.精确模式匹配/ 2.扩展名匹配* 3路径映射 4默认

 

使用Servlet处理HTTP响应:

发送服务端响应信息:

状态行:1版本2响应码 5类:100-199 信息性,请求正在进行;200-299 ;客户请求成功

300-399:指示新的地址 400-499:客户端引发错误 500-599:服务器引发错误3响应描述

响应头:键值对,键可以重复

空行:

消息体:普通文本,二进制

HttpServletResponse对象负责将信息返回给客户端

HttpServletResponse对象只产生一个空的HTTP响应

传回自定义的内容需要使用getWriter()或者getOutputStream()方法

传送普通文本

传送二进制内容

设置请求重定向:

使用sendRedirect方法实现重定向

两次请求。第一次请求,响应后返回一个地址,再次调过去,再响应

使用Servlet处理HTTP请求:

接收服务器端请求信息;

请求行:HTTP方法,请求的URLHTTP版本

请求头:

空行:

消息体:

GET/POST提交方法:

浏览器向Web服务器发送HPPT请求:

1用户在网页上点击一个超链接

2用户提交在网页上填写好的表单

3用户在浏览器地址栏输入URL地址并回车

特征

Get方法

Post方法

提交数据类型

文本

文本,二进制

提交数据长度

不超过255

没有限制

提交数据可见性

一部分显示在浏览器地址栏

不可见

提交数据缓存

缓存在浏览器URL历史状态中

不会被缓存

什么时候使用post1发送大数据的时候2 上传文件时 3发送用户名。密码或者其他保密信息的是时候使用

只有frommethod属性;

HttpServletRequest对象的如下方法访问

getHeader(name):返回指定的请求头的值

getHeaders(name) :返回一个Enumeration(枚举)包含请求头中的所有值

getHeaderNames():特定请求中接受到的所有请求头的名称

getIntHeader(name):获取特定请求头的值,并将其转化为int类型

getDateHeader(name):获取特定请求头的值,并将其转化为Date类型 

getParameter()根据键和值

RequestDispatcher对象可以实现请求转发

Include()方法包含。只是暂时的包控制权移交

Forward() 方法跳转。执行权完全移交

重定向和请求派发之间最大的区别在于,重定向让客户端浏览器来完成,而请求派发是在服务器端做工作

 

 

JavaWeb

HTTP:是一种超文本传送协议,是一套计算机在网络中通信的一种规则。

是一种无状态的协议。

过程:客户端向服务器发送一个请求,然后Web服务器返回一个响应,之后连接关闭。这是 请求响应模型。

Web服务器的缺陷:

只能向客户端提供静态网页内容,解决方案:在运行的Web服务软件的Web服务器主机上增加一个辅助应用,这个辅助应用负责生成动态页面,并且能与Web服务器软件通讯。

最早的解决方案CGI

通用网关接口,每次请求一个CGI资源,将在服务器创建一个新的进程,严重消耗服务器资源,极大的限制了一个服务器可以支持多个用户的数量。容易受到攻击,如;爆吧这些。

Java的解决方案:

1.Servlet:一套规范也是一个类

2.Web容器:Servlet类中,没有main()方法,Web容器就是负责管理和运行Servlet

3.处理过程:客户端发起一个HTTP请求——HTTP请求被服务器接收——服务器移交给Web

,Web容器在主机起一个进程,Web根据Servlet的配置问确定调用,处理完返回给容器,在返回给客户端。

JavaWeb应用程序的组成:

配置文件,静态文件盒JSP,类文件和包。结构如下:

项目名称——{页面文件,WEB-INF{1.classes  2.lib  3.web.xml}}

发布WEB应用:

部署:打包:jar –cvf 项目名称.war *

配置web.xml文件:

<web-app>

    <servlet>

       <servlet-name>StudentServlet</servlet-name>

       <servlet-class>com.lovo.servlet.StudentServlet</servlet-class>

    </servlet>

    <servlet-mapping>

       <servlet-name>StudentServlet</servlet-name>

       <url-pattern>/ StudentServlet </url-pattern>

    </servlet-mapping>

</web-app>

Servlet生命周期:1类加载 2实例化3 调用init()方法,4等待用户访问

5 调用destroy方法实现对象销毁

一个Servlet必须有3个名称:一个是Servlet的名称,一个Servlet类的完整名称,一个是映射的逻辑名称:1.精确模式匹配/ 2.扩展名匹配* 3路径映射 4默认

 

使用Servlet处理HTTP响应:

发送服务端响应信息:

状态行:1版本2响应码 5类:100-199 信息性,请求正在进行;200-299 ;客户请求成功

300-399:指示新的地址 400-499:客户端引发错误 500-599:服务器引发错误3响应描述

响应头:键值对,键可以重复

空行:

消息体:普通文本,二进制

HttpServletResponse对象负责将信息返回给客户端

HttpServletResponse对象只产生一个空的HTTP响应

传回自定义的内容需要使用getWriter()或者getOutputStream()方法

传送普通文本

传送二进制内容

设置请求重定向:

使用sendRedirect方法实现重定向

两次请求。第一次请求,响应后返回一个地址,再次调过去,再响应

使用Servlet处理HTTP请求:

接收服务器端请求信息;

请求行:HTTP方法,请求的URLHTTP版本

请求头:

空行:

消息体:

GET/POST提交方法:

浏览器向Web服务器发送HPPT请求:

1用户在网页上点击一个超链接

2用户提交在网页上填写好的表单

3用户在浏览器地址栏输入URL地址并回车

特征

Get方法

Post方法

提交数据类型

文本

文本,二进制

提交数据长度

不超过255

没有限制

提交数据可见性

一部分显示在浏览器地址栏

不可见

提交数据缓存

缓存在浏览器URL历史状态中

不会被缓存

什么时候使用post1发送大数据的时候2 上传文件时 3发送用户名。密码或者其他保密信息的是时候使用

只有frommethod属性;

HttpServletRequest对象的如下方法访问

getHeader(name):返回指定的请求头的值

getHeaders(name) :返回一个Enumeration(枚举)包含请求头中的所有值

getHeaderNames():特定请求中接受到的所有请求头的名称

getIntHeader(name):获取特定请求头的值,并将其转化为int类型

getDateHeader(name):获取特定请求头的值,并将其转化为Date类型 

getParameter()根据键和值

RequestDispatcher对象可以实现请求转发

Include()方法包含。只是暂时的包控制权移交

Forward() 方法跳转。执行权完全移交

重定向和请求派发之间最大的区别在于,重定向让客户端浏览器来完成,而请求派发是在服务器端做工作

 

 

posted @ 2014-06-19 21:13  不用说  阅读(281)  评论(0编辑  收藏  举报