javaweb
一、JavaWeb的发展历程:静态技术、动态技术及Web2.0新时期
二、什么是Web:
World Wide Web 的简称,中文称为万维网
作用:用于发布、浏览、查询信息的网络信息服务系统、由遍布在不同区域内的web服务器有机组成
三、HTTP协议:
超文本传输协议,用于web服务器传输超文本到本地浏览器的传送协议。是一种无状态协议,
四、URL和Uri的区别:
URL只是构成Uri的元素。
1、url:统一资源标志符确定一个资源,
2、统一资源定位符不但确定一个资源,而且还表示出它在哪里
五、b/s与c/s
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
<servlet>
<servlet-name>程序名</servlet-name>
<servlet-class>包名.类名</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>程序名与上相同</servlet-name>
<url-pattern>/访问路径(路径前必须加"/")</url-pattern>
</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>跳转页面
内置对象
一、什么是内置对象?
不需要使用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";
}
}
}