javaWeb总结+小结

时间:2024.4.20

JavaWeb

B/S与C/S的区别

1, 从安装上来讲,B/S只需要在服务器端安装即可,而C/S却需要每一个客户端进行安装。 2, 从部署上来说,B/S只需要服务器能够支持即可,而C/S却对每一个客户端的电脑提出

了要求。

3, 从升级,维护角度来说,B/S只需要在服务器端升级维护即可,像网易的邮箱,而C/S

却是服务器更新维护一次,客户端就要下载相关的补丁才能使用

4, 从安全性来讲,B/S是基于服务器的,较之C/S安全性好

5, 从本质上来说,B/S是基于请求驱动的,即客户端发送一个Http请求,然后服务器进行

处理之后,响应给客户端,而C/S却是基于事件驱动的,像腾讯的QQ。

6, 从耦合度来讲,B/S与服务器端耦合,而C/S却是与客户端的操作系统进行耦合。 但是Client/Server(从游戏的角度来讲)较之Brows/Server具有优质的画面。

Servlet的使用步骤:

1, 创建一个JAVA类,存放在com.fit.servlet包中,并且此类extends HttpServlet类,才能

成为一个Servlet

2, 覆写doGet()和doPost()方法

3, 最后,在web.xml文件中进行Servlet配置。具体的配置如下:

<servlet>

<servlet-name>Servlet类名</servlet-name>

<servlet-class>完整的包.类名称</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>Servlet类名</servlet-name>

<url-partten>网页访问的名称,例如/hello</url-partten>

</servlet-mapping>

Servlet的生命周期,作用,并说出和CGI(Common Gateway Interface)的区别

就是指Servlet从创建出实例对象到销毁的过程。它是一个容器,负责创建实例来接受客户端的请求,并且以多线程的方式响应给客户。具体过程如下:

Servlet被服务器实例化之后,容器运行其init方法进行初始化,请求到达时运行其service方法,在此过程中仅创建一个对象,然后service方法自动调用与请求相应的doXxx方法,当服务器决定将实例进行销毁时,再调用其destroy方法。

与CGI(通用网关接口)的区别在于,Servlet处于服务器进程中,它通过多线程的方式运

行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每一个请求都产生新的进程,服务完成后就销毁,所以效率低于Servlet

作用:可以用来进行接收客户端的请求,也可以进行请求流的控制。

Http协议:(了解)

首先它是(Hypertext Transfer Protocol)超文本传输协议。 HTTP报文由从客户机到服务器的请求和从服务器到客户机的响应构成。请求报文格式如下:

请求行 - 通用信息头 - 请求头 - 实体头 - 报文主体

请求行以方法字段开始,后面分别是 URL 字段和 HTTP 协议版本字段,并以 CRLF 结尾。

应答报文格式如下:

状态行 - 通用信息头 - 响应头 - 实体头 - 报文主体

状态码元由3位数字组成,表示请求是否被理解或被满足。原因分析是对原文的状态码作简短的描述,状态码用来支持自动操作,而原因分析用来供用户使用。客户机无需用来检查或显示语法。

工作流程: 一次HTTP操作称为一个事务,其工作过程可分为四步:

首先客户机与服务器需要建立连接。只要单击某个超级链接,HTTP的工作就开始了。

建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。

服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。

客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客 户机与服务器断开连接。

Javascript的作用:

1, 进行验证(通过正则表达式,在css+HTML的部分特性进行浏览器端的格式验证工

作)

2, 进行交互(将客户端的一个请求通过JavaScript可以发送到服务器端,也可以在

浏览器端进行人机的交互,突破了以前静态页面的交互性限制)

3, 进行特效的处理,如走马灯,时间时钟。

Servlet生命周期:(详细)

是指Servlet实例从被创建到其消失(对象销毁,回收)中间的时间及各个阶段,称之为Servlet生命周期。

前提:web服务器加载类。之后执行以下过程:

1,实例化:Servlet容器创建Servlet实例,具体就是当接收到客户端的第一次请求时,Servlet容器负责创建Servlet的一个实例。且在此过程中仅创建一个实例,通过多线程的方式响应客户端的请求

2,初始化:该容器调用init()方法。

3,服务:当请求到达时,该Servlet容器自动调用server()方法,根据客户端发送请求的方式,选择doXxx()方法执行

4,销毁:当web服务器被卸载的时候,调用destroy()方法进行对象的销毁。

请看以下的一段代码:

package com.fit.servlet;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class Test extends HttpServlet {

private static final long serialVersionUID = 1L;

public Test() {

super();

System.out.println("===========================");

}

public void destroy() {

System.out.println("对象被销毁!");

}

public void init() throws ServletException {

System.out.println("对象初始化!");

}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

System.out.println("get方法执行");

}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

this.doGet(request, response);

}

protected void service(HttpServletRequest arg0, HttpServletResponse arg1)

throws ServletException, IOException {

System.out.println("服务开始启动了!");

super.service(arg0, arg1);

}

}运行效果如下:

===========================

对象初始化!

服务开始启动了!

get方法执行

2011-7-19 12:07:04 org.apache.catalina.core.StandardContext reload 信息: Reloading this Context has started

对象被销毁!

分析原因:

1,实例化对象发生在客户端请求第一次到达的时候,而不是类被加载的时候。

2,对象只被实例化一次.

3,如果service()被覆写的话,则调用的时候加入super.service(arg0, arg1);这句话时候才可以清楚的调用的doXxx()方法,如果不加入此句话,那么将不会执行doGet()方法。所以一般不要覆写service()方法。只需要覆写doGet()和doPost()方法。

4,当web服务器被卸载的时候,将执行destroy()方法。进行对象的销毁!

Jsp页面构成元素,Jsp跟Html的区别,优势 Jsp定义:(Java Server Page)Java服务器端语言,组成如下:

1, 静态模板:由HTML,css,JavaScript等元素构成。

2, 指令:设定网页元素的属性,用于提供这个歌JSP网页的相关信息。

3, 脚本元素--声明:<%!...%>,在此之中可以进行变量,常量的定义,类,方法都可

以声明,但是一般不用。

4, 脚本元素--Java脚本:<%...%>,在此期间可以进行Java代码的拼写。 5, 脚本元素--表达式:<%= ..%>,用于表达式输出时使用。

6, 动作:利用JSP动作可以重用JavaBean组件,可以动态的包含页面,也可以进行

服务器端的跳转(即将用户的请求转发给其他的页面)。

7, 注释:

--HTML注释:<!-- -->,此种注释可以在页面中看到,成为客户端注释。 --Jsp注释:<%-- --%>,此种注释在页面中看不到,也成为服务器端注释。 --Java注释:

?单行注释://

?多行注释:/*???*/

Jsp优点:使用HTML,CSS等技术构建页面的模板部分,用Java语言根据用户的输入动态生成可变的内容部分。既可以实现HTML控制页面布局,也亦可以实现Servlet的功能,实现了内容与表示分离。

Jsp的常见指令,并说出静态包含和动态包含的区别 Page指令:<%@ page language=”java” import=” 完整的包.类名称”

autoFlush=”true[false]” errorPage=”文件名” isErrorPage=”false[true]” isThreadSafe(设置是否能多线程使用)

contentType=”text/html;charset=ISO-8859-1” %>

包含指令:<%@ include file=”文件名”%>

taglib指令:此指令用于在Jsp页面中引入用户自定义的标签库。例如: <@% taglib url=/jsp/jstl/core prefix=”c”%> 静态包含跟动态包含的区别:

<%@ include file=”文件名%>,此包含属于静态包含,是指先将文件包含进来然后在进行编译,编译后生成的class文件中,被包含的文件在静态块中。且此种包含不允许带参数。

<jsp: include page=”文件名”flush=”true”>此种包含属于动态包含,先解释再包含进来结果,即只有在客户端进行请求时才会被动态的编译载入,在生成的class类中,它被请求一次就被创建一次。且此种被包含页面可以取得包含它的页面的参数。 Jsp常见的动作, ?调用JavaBean相关:

?<jsp:useBean id=”对象名” class=”类名”scope=“范围属性”>,调用此动作,可以用于实例化JavaBean,或者定位一个已经存在的JavaBean的实例,并把实例的引用赋给一个变量。

?<jsp:getProperty property=”属性名字”name=”对象”>,通过这个动作可以取得JavaBean对象的属性

?<jsp:setProperty proterty=”属性名字” name=”对象” value=”属性值”>或者<jsp:setProperty proterty=”属性名字” name=”对象”param=”索引参数”>通过此动作,可以用来设置JavaBean的简单属性和索引属性,此动作的name属性必须与<jsp:userBean>总的id属性相匹配。 当JavaBean的属性名与请求参数名相同的情况下,可以使用property=“*”的方式为多个JavaBean的属性同时赋值,如:<jsp:setProperty name=”BeanId” property=”*”>

?jsp页面通信:

?<jsp:include page=”页面”>:此动作用来在当前Jsp包含动态和静态文件的输出结果,可以和<jsp:param name=”” value=””>配合使用,向嵌入的Jsp页面传递参数

?<jsp:forward page=”页面”>:此动作用来从当前Jsp页面转向其他页面,并传递Request对象,response对象,该标签后面的代码将不会被执行。

Jsp的内置对象,四种作用域的通信对象的范围 ?输入/输出对象

?request:表示客户端对网页的请求

?response:用于处理Jsp生成的响应,使用Http协议将响应发送给客户端。

?out:表示从response中取得的输出流。常用的方法有write(),print(),println()等,用于在页面中输出文本形式的响应内容

?作用域通信对象

?pageContext:此通信对象的作用域仅在当前页面有效,一旦跳转则不可用

?request:此通信对象的作用域针对的同一个客户的请求,如果不是同一个请求则不可以使用

?session:此通信对象的作用域适用于一次会话,即打开的同一个浏览器的所有页面都可以适用

?application:此通信对象的作用域适用于基于WEB服务器的所有会话,适用于监听器 ?Servlet对象

?page:指向当前Jsp页面经过转译(jsp?.java文件),编译(.java文件?.class文件)后的对象本身,即编译后的Servlet对象本身

?config:是在一个Servlet初始化时,服务器向它传递的初始化信息。初始化信息可以在web.xml中找到。

?错误对象

?execption:表示Jsp页面运行时抛出的异常对象,可以在专门准备的错误处理页面中访问这个异常对象。

Jsp执行过程:

?jsp文件转译:当客户端请求一个正确的Jsp文件时,将Jsp—>.java文件(即将Jsp文件翻译成相应的Servlet类的源文件)

?编译:.java文件?.class文件,即将Servlet类的源文件进行编译成为.class的Servlet文件。 ?调用Servlet的service()方法响应用户的请求。

描述Jsp和Servlet的区别,共同点,各自的应用范围: 1,从发展上来看,Jsp可以避开Servlet的输出页面的繁琐步骤,它集合了HTML和Servlet的优点。

2, 从本质上来说,Jsp是Servlet的扩展,它是Servlet的简易形式。Jsp经过转译之后就成为了类Servlet。

3, 从创建方式上来说:Jsp由HTML代码和JSP标签构成,而Servlet则完全是由程序代码构成擅长于流程控制和事务处理的类

4, 从使用角度来说:在MVC中,Jsp担任的是VIEW层,侧重于视图,而Servlet则充当的控制层,侧重于控制逻辑。

请求转发和重定向

? response.sendRedirect():利用response对象向客户端发回一个响应指示其访问其他URL资源,或者说是一个web组件向另一个web组件发送一个新的请求,属于重定向,地址栏有变化。且不可以传递属性request参数,当所有的代码执行完之后才进行重定向。 ?request.getRequestDispatcher().forword(req,resp):web组件将一个请求转发给另一个web组件,他们始终是同一个请求,在此期间可以传递request属性参数,地址栏没有变化。且一执行到此代码处 ,后边的将不再执行

JavaBean的组成:

?类必须是具体的,公共的。

?提供无参数的构造方法

?提供getter()和setter()方法访问它的属性。

版权所有@杨肖飞yangxf159371@126.com

更多相关推荐:
java web总结

JavaWeb总结1.JSP运行原理(1)用户通过客户端浏览器向服务器发送请求。(2)JSP文件将JSP引擎编译成Java的class文件,即servlet。(3)将产生的servlet加载到内存执行。(4)S…

JavaWeb总结

UserDaoImpl.javapackagecn.itcast.dao.impl;importorg.apache.commons.dbutils.QueryRunner;importorg.apache.c…

JavaWeb期末总结

第一章Web开发基础知识简单描述表单续表单元素ltFORMmethodquotGETPOSTactionquotURLquotgtformbodyltFORMgtltFORMgt元素括起整个表单并给出一些基本定...

JavaWeb大总结

day01XML的主要内容1XML的作用2XML语法3DTD的约束4用Java语言编写XML数据解析器JAXPDOM4J5Xpath6Schema约束7Eclipse的基本使用8JUnit单元测试9Debug调...

javaweb学习心得

学习心得在写心得之前总结下中级部分学习的内容,我们的中级部分主要学习了html,css,javacript,xml,dtd/scheam,以及javaee中的jsp,servlet,过滤器,监听器,JSTL,E…

JavaWeb总结

一XMLExtensibleMarkupLanguage扩展标记语言1作用描述数据存储数据交换数据2格式ltxmlversion10encodingGBKgtltxml声明注释gtltrootgtltrowgt...

JavaWeb基础与SSH框架知识总结

一、JSP知识:1.用户第一次请求JSP页面时,JSP引擎会转译该JSP文件为Servlet文件(.java),并编译该文件,生成字节码文件(.class)。最后将一个HTML页面发送给客户端。用户再次请求JS…

JavaWeb总结

一XMLExtensibleMarkupLanguage扩展标记语言1作用描述数据存储数据交换数据2格式ltxmlversion10encodingGBKgtltxml声明注释gtltrootgtltrowgt...

javaweb复习总结全

javaweb第一天1junit测试框架ArrsertassertEqualslongexecptedlongactual测试两个long类型的值execpted与actual是否相等相等返回true否则返回f...

JavaWeb复习总结

B1JSPServlet题目表示资源移动的状态码是选择1项A200B302C400D500A2JSPServlet题目哪一个对象可以用于获得浏览器发送的请求选择1项AHttpServletRequestBHtt...

java web 自学的总结

20xx03122CtrlF查找文件内部2html标签7HTML水平线8lthrgt标签在HTML页面中创建水平线8列表9有序的ltolgtltligtltligtltolgt无序的ltulgt自定义列表dl9...

javaweb期末复习知识点整理

1Web应用概述1URL与URIURL统一资源定位器URI统一资源定位符2常见HTML标签3表单的处理4静态文档与动态文档的概念静态文档是一种以文件的形式存放在服务器端的文档客户发出对该文档的请求服务器返回这个...

javaweb总结(23篇)