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() 方法跳转。执行权完全移交

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

 

 

JavaWeb1

时间: 2024-08-28 16:48:52

JavaWeb1的相关文章

javaWeb1 tomcat(未完)

tomcat使用常见问题: 1.闪退: 原因:tomcat 软件是由java语言开发的,当它启动时,会默认到系统 的环境变量中查找 JAVA_HOME 的变量.找它的目的时tomcat 启动 时需要jvm. 解决方案: 环境变量中设置JAVA_HOME变量. 如:JAVA_HOME = C:\Program Files\Java\jdk1.6.0_30(到这里就ok,不要到bin 目录) 这步复制粘贴就好,不用一个一个打. 2.端口占用的错误(默认是8080) 一个端口只能由一个程序占用,当有其

javaweb2 URL(查找的过程)

URL: 全名叫统一资源定位符,用于定位互联网的资源. 问题:接上(javaweb1 tomcat)http://localhost:8080/myweb/test.html 分析:http://------------------- http协议 localhost ---------------- 域名(为了找到IP地址) hosts文件位置:C:\Windows\System32\drivers\etc\hosts 倒数第二行内容:127.0.0.1       localhost ip地

JavaWeb学习总结-05 Servlet 学习和使用

一 Servlet的原理 1 Servlet 的创建 当Servlet容器启动web应用时,需要立即加载Servlet时: Servlet容器启动web应用时,将按照指定的顺序初始化Servlet,需要设置<Servlet>元素的<load-on-startup>子元素.<load-on-startup>设置的值为数字,当值为0或者大于0时,表示容器在应用启动时就顺序加载并初始化这个servlet. 当Servlet容器启动时会启动所有的web应用. 2 Servlet

Java EE 学习(2):使用IntelliJ IDEA开发java web

参考:http://www.cnblogs.com/carsonzhu/p/5468223.html 使用IntelliJ IDEA开发java web 前言:由于本人接触java语言时间还比较短,IDE工具eclipse还比较熟悉点,想试试用IntelliJ IDEA来开发java web项目来练练手! 一.下载安装篇 1.安装IntelliJ IDEA 官网的下载地址: http://www.jetbrains.com/idea/download/ ,支持mac/windows/linux三

JavaWeb学习总结-03 Servlet 学习和使用

一 Servlet 1 JSP与Servlet的生成方式 Servlet首先被编译成class文件,然后被服务器调用 JSP首先被转换为Servlet(java文件),然后在被编译为class文件,最后由服务器调用. 查看%/tomcat8\work\Catalina\localhost下项目中的jsp对应的Servlet的 java,class文件. 二 例子 1 第一个Servlet 新建java web项目 javaWeb1. Servlet1.java package com.test;

使用IntelliJ IDEA开发java web

前言:由于本人接触java语言时间还比较短,IDE工具eclipse还比较熟悉点,想试试用IntelliJ IDEA来开发java web项目来练练手! 一.下载安装篇 1.安装IntelliJ IDEA 官网的下载地址: http://www.jetbrains.com/idea/download/ ,支持mac/windows/linux三大主流平台,我用的是windows版本. 注:IntelliJ IDEA是商业软件,有二个版本, Ultimate Edition是商业版本,功能完善,可

Java对XML文档的解析

1. DOM解析 DOM的全称是Document Object Model,也即文档对象模型.DOM解析会将XML文档以对象树的方式存入内存,因此,DOM解析内存消耗巨大.当然由于DOM解析将XML以节点树的方式调入内存,所以对文档进行增删改查(crud)比较方便.DOM分析器把整个XML文档转化成DOM树放在了内存中,因此,当文档比较大或者结构比较复杂时,对内存的需求就比较高.而且,对于结构复杂的树的遍历也是一项耗时的操作.所以,DOM分析器对机器性能的要求比较高,实现效率不十分理想. ---

JavaWeb笔记一、Servlet 详解

一.创建一个 Servlet 简单实现类 1.创建一个 HelloServlet 类(测试 Servlet 接口方法) 1 //创建一个 HelloServlet 类并实现 Servlet 接口 2 public class HelloServlet implements Servlet { 3 4 // Tomcat 停止服务时 Servlet 的销毁方法 5 @Override 6 public void destroy() { 7 System.out.println("destroy..

Java年度总复习基础部分(五)

JDBC数据库连接 1.Jdbc是什么? 我们之前提到了数据库,如何使用java代码来操作数据库呢,程序要通过sql语句来操作数据库库,而必须拥有一个类库,类库提供sql语句的执行方法 jdbc就是因此而产生的,jdbc是java中提供的一个接口 允许程序员通过这个接口来操作数据库. 2.如何使用jdbc来完成数据的增删该查 Jdbc拥有自己的驱动使用前需要加载 Jdbc加载驱动获得连接 Jdbc执行sql语句 Jdbc关闭连接 从连接数据库到操作数据库的详细步骤如下 首先加载驱动程序 clas