JavaWeb笔记

javaweb:

第二章:

一、JavaWeb的发展历程:静态技术、动态技术及Web2.0新时期

二、什么是Web:
World Wide Web 的简称,中文称为万维网
作用:用于发布、浏览、查询信息的网络信息服务系统、由遍布在不同区域内的web服务器有机组成

三、HTTP协议:
超文本传输协议,用于web服务器传输超文本到本地浏览器的传送协议。是一种无状态协议,

四、URL和Uri的区别:
URL只是构成Uri的元素。
1、url:统一资源标志符确定一个资源,
2、统一资源定位符不但确定一个资源,而且还表示出它在哪里

五、
C/S结构,即Client/Server(客户机/服务器)结构,是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势。开发C/S架构可以采用多种语言,包括Java,C++,C#,以及Dephi等

B/S结构,即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现。前端 在大部分企业就是做浏览器端展现相关的工作,会用到html,css,js,ps,ai等等,而“后端”的主要工作室程序开发、数据处理了,比如:php,asp,mysql,mssql。

六、因特网与万维网的关系:
1、“互联网”定义是:“指由若干电子机网络相互连接而成的网络”
2、“因特网”定义是:“目前全球最大的一个电子计算机互联网,是由美国的ARPA网发展演变而来的”。
3、万维网是无数个网络站点和网页的集合,它们在一起构成了因特网最主要的部分(因特网也包括电子邮件、Usenet以及新闻组)。

七、tomcat服务器的各个目录的功能
bin:启动、关闭脚本
lib:日志
conf:配置文件
webapps:已发布的web程序

八、常见的服务器:
(1)ApacheApache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上。Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。Apache取自"a patchy server"的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。
(2)IIS是英文Internet Information Server的缩写,译成中文就是"Internet信息服务"的意思。它是微软公司主推的服务器,最新的版本是Windows2008里面包含的IIS 7,IIS与Window Server完全集成在一起,因而用户能够利用Windows Server和NTFS(NT File System,NT的文件系统)内置的安全特性,建立强大,灵活而安全的Internet和Intranet站点。
(3)GFEGoogle的web服务器,用户数量激增。目前紧逼iis。
(4)Nginx不仅是一个小巧且高效的HTTP服务器,也可以做一个高效的负载均衡反向代理,通过它接受用户的请求并分发到多个Mongrel进程可以极大提高Rails应用的并发能力。
(5)Lighttpd是由德国人 Jan Kneschke 领导开发的,基于BSD许可的开源WEB服务器软件,其根本的目的是提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的web server环境。具有非常低的内存开销,CPU占用率低,效能好,以及丰富的模块等特点。Lighttpd 是众多OpenSource轻量级的web server中较为优秀的一个。支持FastCGI, CGI, Auth, 输出压缩(output compress), URL重写, Alias等重要功能。
(6)Zeus是一个运行于Unix下的非常优秀的Web Server,据说性能超过Apache,是效率最高的Web Server之一。
(7)Sun的Java系统Web服务器也就是以前的Sun ONE Web Server。主要出现在那些运行Sun的Solaris操作系统的关键任务级Web服务器上。它最新的版本号是6.1,可以支持x86版本Solaris,Red Hat Linux,HP-UX 11i, IBM AIX,甚至可以支持Windows,但它的大多数用户都选择了SPARC版本的Solaris操作系统。
(8)Resin提供了最快的jsp/servlets运行平台。在java和javascript的支持下,Resin可以为任务灵活选用合适的开发语言。Resin的一种先进的语言XSL(XML stylesheet language)可以使得形式和内容相分离。
(9)Jetty是一个开源的servlet容器,它为基于Java的web内容,例如JSP和servlet提供运行环境。Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布。开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立运行(stand-alone)的Java应用提供网络和web连接。
(10)BEA WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。 BEA WebLogic Server拥有处理关键Web应用系统问题所需的性能、可扩展性和高可用性。
(11)Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

第三章:Servlet

一、什么是Servlet?
用于接受客户端信息和响应客户端信息
是网页之间的桥梁
是用于Java编写的服务器段程序
Servlet是Java类,继承了HttpServlet,重写dopost和doGet方法,负责服务器端响应与请求
doget方法需要重编码request.setCharacterEncoding(“utf-8”);
String 变量名 = new String(变量名.getBytes(“ISO-8859-1”),“UTF-8”);
response.setContentType(“text/html;charset=utf-8”);
dopost编码:request.setCharacterEncoding(“utf-8”);

二、servlet的创建?
1、创建Java类继承httpservlet
2、重写doget与dopost方法
3、配置web.xml的文件。servlet servlet-mapping
~~~

程序名
包名.类名


程序名与上相同
/访问路径(路径前必须加"/")

~~~
4、访问Servlet
超链接 get
地址栏 get
表单 get/post
三、servlet的生命周期

初始化【1次】-->服务[N次]-->销毁[1次]

四、编码方式
javaweb有哪些编码:gb2312 GBK UTF-8
中文乱码处理:get提交中需要通过再编码方式来完成

五、会话过程

1、什么是会话?

	客户端的1次请求与服务器端的一次响应

2、什么是会话跟踪?

	在多次会话过程中能够记录客户端信息

3、为什么要使用会话跟踪?

	http协议是属于一种无状态的协议,不会记录客户端的信息。

4、有哪些会话跟踪

	session,cookie

	session:将数据保存到服务器中,客户端30分钟无操作或者关闭客户端将会销毁

	cookie:将数据保存到本地,因为对网络用户隐私构成危害,目前正被禁止使用

5、会话跟踪的技术

  	 HttpSession	session  =request.getSession();

6、会话生命周期?

	发求请求到服务器响应结束,一般按照关闭浏览器,如果客户端在30分钟内没有发起任何数据交互则会话自动结束

六、跳转

内部跳转:转发  request

		1、内部跳转可以携带数据

		2、地址栏不会发生变化


外部跳转:重定向  response

		1、不可以携带数据

		2、地址栏会发生变化

七、作用:

1、根据客户端的请求动态生成完整的HTML网页,并返回给客户端

2、接受和响应客户端的信息

第五章 、第六章 JSP

一、什么是JSP?

JSP是由java+javascript+page组合,JSP是一种能够支持Java代码的一种动态网页   

二、为什么要使用JSP?

JSP支持Java代码以及可以在JSP中实现页面展示

三、JSP的运行原理?

JSP最终会被编译成为Servlet

JSP:编写--》翻译-》编译-->执行

	JSP最终会变成一个class文件

为什么JSP第一次打开会比较慢?

	因为第一次的打开JSP要经过翻译,编译,执行过程需要消耗时间,而第二次打开不需要再经过翻译和编译,可以直接执行,后面没有改动的情况下打开速度很快

四、JSP组成?

1、HTML

2、指令  <%@   %>

		导入包,编码,error页面
	
		<%@ include  file="文件路径" %>  JSP中包含一个文件

3、小脚本
		<% 小脚本java代码 %>

4、声明
		
		<%!   %>

5、输出

	<%= 输出内容  %> 不能以分号结尾

6、注释

	<%-- -- %>  JSP注释是给程序员看的注释  隐式注释

	<!--  -->  HTML注释,是可以给所有看   显示注释

7、动作

	<jsp:include page="myfile.txt"></jsp:include>

	<jsp:forward page="index1.jsp"></jsp:forward>跳转页面

第六章:JSP

内置对象

一、什么是内置对象?

不需要使用new关键字创建则可以直接使用,在系统中自动编译

二、JSP中有哪些内置对象?

9个

out、request、response、session、application、page、pagecontext、config、Exception

三、每一个内置对象的作用以及方法?

out:输出

	out.write()

	out.print()

request:接收请求

	request.setAttribute("name",value);设置存入的数据

		getAttribute(name);

		removeAttribute("name");

		getParameter();得到请求的参数

		getParameterValues();接收的多个请求的name一致
	跳转:

		request.getRequestDispatcher("index.jsp").forward(request, response);


response:响应请求

	response.sendRedirect(arg0);外部跳转

	response.setHeader("refresh","刷新时间间隔;目的页面地址");

session:会话

	session.setAttribute("name",value);设置存入的数据

		getAttribute(name);

		removeAttribute("name");

application:服务器开启到服务器关闭

		setAttribute("name",value);设置存入的数据

		getAttribute(name);

		removeAttribute("name");

pagecontext:对当前操作

		setAttribute("name",value);设置存入的数据

		getAttribute(name);

		removeAttribute("name");

config:获取web.xml的配置信息

		config.getInitParameter("myservlet");

exception:获取异常页面信息

		注意:isErrorPage="true"必须为true否则exception无法使用

			errorpage="错误.jsp";跳转到错误页面

四、内置对象的作用域?作用域对象

	page  request    session    application

	page:当前页有效

	request:内部跳转有效

	session:整个会话有效

	application:服务器开启到服务器关闭有效


作用域的范围顺序:page <  request <  session   <  application


问?

	如果4个作用都能完成某一个操作,你会选择谁?

		能使用小范围则不选择大范围作用。因为范围约到占用的资源越多,消耗性能越高.

常用方法:

//获取客户端访问的真实IP	
request.getRemoteAddr();

//刷新页面
response.setHeader("refresh","刷新时间间隔;目的页面地址");

第七章 JavaBean与动作

一、什么是JavaBean?

Javabean是一个Java类,拥有特殊的用途,和自己的封装方式 通过get和set对业务数据进行封装


二、JavaBean的作用?

1、封装业务逻辑

2、减少代码,代码的重复使用

三、JavaBean所拥有的特征?

1、是Java类

2、get和set方法

3、必须有一个无参的构造方法

4、公共的

四、如何创建JavaBean?

1、创建Java

2、获取业务数据

3、得到封装数据的方法

4、得到一个无参的构造方法

五、jsp+javabean的具体实现?

登陆

动作+JavaBean:减少JSP中出现的大量的Java代码


六、动作的具体说明

	<jsp:useBean id="创建对象名"  class="com.zuxia.JavaBean【JavaBean路径  包+类】" scope="作用域page/request/session/application" ></jsp:useBean>

		替换的代码是:
					//接收提交过来的用户名和密码
				//	String name = request.getParameter("name");
					
				//	String pwd = request.getParameter("pwd");					
					//创建一个实体类
					//JavaBean  jab=new JavaBean();

	<jsp:setProperty property="表单提交的name" name="对象名"/>	

		替换的代码是:request.setAttribute(name, value);

	<jsp:getProperty property="表单提交的name" name="对象名"/>	
		替换的代码是:request.getAttribute(name)


格式:

创建对象、相当于——类名 对象名 = new 类名()
	<jsp:useBean id="jab"  class="com.zuxia.JavaBean" scope="session" ></jsp:useBean>
	<jsp:useBean id="创建的对象名" class="包名.类名" scop="作用域(page、request、session、application)"></jsp:useBean>

设置对象中的属性值:相当于——request.setAttribute(name,value)

	<jsp:setProperty property="name" name="jab"/>
	<jsp:setProperty property="标签中name属性的值" name="对象名"/>

得到对象中属性值:相当于request.getAttribute(name)

第八章:MVC模式

Model1:主要使用JSP和JavaBean开发web应用,JavaBean封装对数据库的操作盒部分业务逻辑的代码,JSP即会包含输出效果的HTML、CSS代码,也会包含业务逻辑的Java代码

Model2:MVC即模型(Model)-视图(View)-控制器(Controller)它降低了代码的耦合度,提高了代码的重用性,是一种把JSP与servlet联合使用来实现动态内容服务的方法,项目越复杂,使用Model2体系结构的好处越大

优点:

	1、各司其职,互不干涉

	2、有利于开发中的分工

	3、有利于组件的重用

缺点:
	对开发人员技术水平要求高,模型和视图的分离也使得调试代码更困难,但是MVC仍然是web程序最好的架构模式	

第九章:Ajax的应用

js:
	//获取XMLHttpRequest对象
	var xml = new XMLHttpRequest();
	//设置发送请求参数一:提交方式:post、get。参数二:提交路径,参数三:是否异步
	xml.open("post","Servlet?name="+name,true);
	//发送
	xml.send();

	//获取服务器状态
	xml.onreadystatechange = function(){

		if(xml.status==200&&xml.readyState==4){
			//responseText是服务器端响应的数据
			if(xml.responseText=="true"){
				alert('用户名存在');
			//	window.location.href="index.jsp";
			}else{
				alert('用户名不存在');
			//	window.location.href="index.jsp";
			}

		}

	}
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页