javaweb知识点总结.docx
《javaweb知识点总结.docx》由会员分享,可在线阅读,更多相关《javaweb知识点总结.docx(43页珍藏版)》请在冰点文库上搜索。
![javaweb知识点总结.docx](https://file1.bingdoc.com/fileroot1/2023-7/13/fa70ead1-c274-4683-9229-ea3979eca18b/fa70ead1-c274-4683-9229-ea3979eca18b1.gif)
javaweb知识点总结
javaweb知识点总结
篇一:
javaweb期末复习知识点整理
1、Web应用概述
1.URL与URI
URL:
统一资源定位器
URI:
统一资源定位符
2.常见HTML标签
3.表单的处理
4.静态文档与动态文档的概念:
静态文档是一种以文件的形式存放在服务器端的文档,客户发出对该文档的请求,服务器返回这个文档。
动态文档是指文档的内容可根据需要动态生成,又可分为服务器端动态文档和客户端动态文档技术。
5.Servlet概念:
服务器端小程序,是使用ServletAPI以及相关类编写的java程序,主要用来扩展web服务器的功能。
6.处理404错误:
查看给定的路径名是否正确,查看Servlet类文件是否在classes目录下,查看文件内容是否正确,查看tomcat是否启动
2、Servlet技术模型
1.Servlet的API:
包,包
Servlet接口及方法:
1)publicvoidinit(ServletConfigconfig):
完成Servlet初始化并准备提供服务。
容器传给该方法一个ServletConfig类型的参数。
2)publicvoidservice(ServletRequestreq,ServletResponseres)throwServletException,IOException:
对每个客户请求容器调用一次该方法,它允许Servlet为请求提供响应。
3)publicvoiddestroy()该方法由容器调用,指示Servlet清除本身,释放请求的资源并准备结束服务。
4)publicServletConfiggetServletConfig()返回关于Servlet的配置信息,如传递给init()方法的参数。
5)publicStringgetServletInfo()返回关于Servlet的信息,如作者,版本及版权信息。
ServleConfig接口作用及方法
HttpServlet类:
新的service方法,doGet,doPost
HttpServletRequest接口及常用方法
HttpServletResponse接口及常用方法
2.Servlet的开发步骤
编写一个Servlet类
编译
部署
(1)在tomcat的虚拟目录下,创建Web目录
(2)将编译好的.class文件复制到Web目录的WEB-INF\classes目录
(3)修改配置文件WEB-INF\
(4)启动tomcat
运行
3.Servlet的执行过程
1)用户通过单击超链接或提交表单向容器请求访问Servlet,容器分析这个请
求,创建request和response两个对象
2)容器根据请求的URL找到正确的Servlet,为这个请求创建一个线程对象(每
次请求都创建一个线程)
3)容器调用Servlet的service方法,把请求和响应对象作为参数传递给该方法
4)调用Servlet的doGet()或doPost()方法
5)向客户发送响应:
Servlet使用相应对象获得输出流对象,调用有关方法将
响应写给客户,响应通过容器发送给浏览器。
4.Servlet的生命周期
加载实例化Servlet——初始化Servlet(init)——为客户提供服务(service)——销毁Servlet(destroy)
5.分析请求
http请求结构:
请求行——请求头——空行——数据
get方法与post方法的对比
publicStringgetParameter(Stringname)
publicString[]getParameterValues(Stringname)
publicEnumerationgetParameterNames()
6.请求转发
RequestDispatcherdispatcher=(location);
Dispatcher.forward(request,response)
7.发送响应
响应结构:
状态行——响应头——空行——响应数据
(“text/html;charset=gb2312”);
PrintWriterout=();
响应重定向:
(“URL”);return;
响应重定向与请求转发的比较:
forward()方法转发请求是服务器端控制权的转向,客户端地址栏中不显示转发后的资源地址。
sendRedirect()方法是服务器向浏览器发送一个特殊的响应,它使浏览器连接到新的位置,浏览器地址栏可看到地址的变化。
使用重定向,资源不能位于WEB-INF目录下。
页面错误:
200表示请求成功,404表示页面没有找到,500表示服务器内部错误
3、Servlet容器模型
1.Web应用程序的部署
(1)在tomcat的虚拟目录下,创建Web目录
(2)将编译好的.class文件复制到Web目录的WEB-INF\classes目录
(3)修改配置文件WEB-INF\
(4)启动tomcat
2.理解Web应用程序的部署描述文件
下面的代码展示了在部署描述文件中元素的一个典型的使用:
helloServlet定义Servlet名称
指定Servlet类的完整名称
向Servlet传递的初始化参数,可以定义多个
email
hacker@
定义一个映射
HelloServlet
/Hello
2
3.ServletConfig
得到ServletConfig接口对象的方法:
ServletConfigconfig=getServletConfig();
覆盖Servlet的init方法。
ServletConfig接口共定义了下面4个方法:
publicStringgetInitParameter(Stringname):
返回指定名称的初始化参数值(是从DD文件中取出)
publicEnumerationgetInitParameterNames()
publicStringgetServletName():
返回DD文件中的名称publicServletContextgetServletContext():
返回Servlet所在上下文对象
4.ServletContext接口
使用RequestDispatcher实现请求转发
ServletRequest的getRequestDispatcher()方法,可以传递一个相对路径,
ServletContext的getRequestDispatcher()方法只能传递以“/”开头的路径。
通过ServletContext对象共享数据
4、会话管理
1.会话管理
理解会话的基本思想和管理机制了解会话对象HttpSession及常见方法
调用获取HttpSession对象:
HttpSessionsession=(true);
将信息存入会话
publicvoidsetAttribute(Stringname,Objectvalue)
查找与会话相关联的信息
publicObjectgetAttribute(Stringname)
publicEnumerationgetAttributeNames()
publicvoidremoveAttribute(Stringname)
使用HttpSession对象通常需要三步:
(1)为客户创建或获得与请求关联的会话对象;
(2)在会话对象中添加或删除名/值对属性;
(3)如果需要可使会话失效。
2.通过Cookie(一小段文字信息)支持会话
Cookie类的常用方法:
getName、getValue、setValue、setMaxAge和getMaxAge;
向客户端发送Cookie
创建Cookie对象
Cookiec=newCookie("username","hacker");
将Cookie放入到HTTP响应中
(c)
从客户端读取Cookie
Cookie[]cookies=();
if(cookies!
=null){
for(inti=0;i Cookiecookie=cookies[i];
if(().equals(cookieName))
cookieValue=();
}
}
3.URL重写与隐藏表单域
重写正在重定向的URL
调用encodeRedirectURL()方法
(
(http:
//localhost/store/catalog)
在HTML页面中,可以使用下面代码实现隐藏的表单域:
5、JSP技术模型
1.JSP基本语法
JSP指令:
page指令、include指令和taglib指令
JSP声明:
理解和的区别JSP小脚本
JSP表达式
JSP动作:
jsp标准动作、JSTL中的动作、用户自定义动作
jsp标准动作包括、、、、、
JSP注释
2.JSP页面生命周期
理解JSP的执行过程
浏览器访问一个jsp页面,服务器端的web容器将jsp转换为servlet,并处理执行此servlet中的相关内容,产生响应结果,然后再由web容器将响应结果返回客户端浏览器。
理解JSP页面转换
理解JSP页面的生命周期
页面转换——页面编译——加载类——创建实例——调用jspInit()方法——调用_jspService()方法——调用jspDestroy()方法
3.理解page指令属性
page指令用于告诉容器关于JSP页面的全局属性,该指令适用于整个转换单元而不仅仅是它所声明的页面。
语法格式如下:
[language="java"]
[extends=""]合法的实现了接口的java类
[import="{|package.*},..."]导入在jsp中使用的java类和接口
[contentType="mimeType[;charset=characterSet]"|
"text/html;charset=ISO-8859-1"]指定输出类型
[session="true|false"]指定jsp是否参加http会话
[buffer="none|8kb|sizekb"]指定输出缓冲区的大小
[autoFlush="true|false"]
[isThreadSafe="true|false"]
[info="text"]
[errorPage="relativeURL"]用相对URL指定另一个jsp页面来处理错误
[isErrorPage="true|false"]指定是否要用另一个jsp页面来处理错误%>
4.JSP隐含变量(内置对象)
JSP有以下九种内置对象,包括:
request,请求对象(是HttpServletRequest的隐含变量)
篇二:
javaweb基础知识整理
一、TOMCAT服务器的安装与配置
1.常见服务器:
WebLogic(BEA)、webSphere(IBM)、Tomcat(Apache)
的下载与安装
下载地址:
http:
///
安装目录不能包含中文和空格
JAVA_HOME环境变量指定Tomcat运行时所要用的jdk所在的位置,注意,配到目录就行了,不用指定到bin。
端口占用问题:
netstat-ano命令查看端口占用信息
Catalina_Home环境变量:
启动哪个tomcat由此环境变量指定,如果不配置则启动当前tomcat,推荐不要配置此环境变量。
的目录结构
bin--存放tomcat启动关闭所用的批处理文件
conf--tomcat的配置文件,最终要的是
*实验:
修改,更改tomcat运行所在的端口号,从8080改为80
lib--tomcat运行所需jar包
logs--tomcat运行时产生的日志文件
temp--tomcat运行时使用的临时目录,不需要我们关注
webapps--web应用所应存放的目录
work--tomcat工作目录,后面学jsp用到
4.虚拟主机
一个真实主机可以运行多个站,对于浏览器来说访问这些站感觉起来就像这些站都运行在自己的独立主机中一样,所以,我们可以说这里的每一个站都运行在一个虚拟主机上,一个站就是一个虚拟主机。
配置虚拟主机
在中标签下配置,其中name属性指定虚拟主机名,appBase指定虚拟主机所在的目录只在中配置Hosts,还不能使其他人通过虚拟主机名访问站,还需要在DNS服务器上注册一把,我们可以使用hosts文件模拟这个过程。
默认虚拟主机:
在配置多个虚拟主机的情况下,如果浏览器使用ip地址直接访问站时,该使用哪个虚拟主机响应呢?
可以在标签上设置defaultHost来指定。
应用
web资源不能直接交给虚拟主机,需要按照功能组织用目录成一个web应用再交给虚拟主机管理。
应用的目录结构
web应用目录
|-html、css、js、jsp静态资源和JSP文件都可以直接放置在web应用的目录下,直接放在web应用下的内容,浏览器可以直接访问到
|-WEB-INF可以没有,但是最好有,如果有则一定要保证他的目录结构是完整的。
放置在WEB-INF目录下的所有资源浏览器没有办法直接进行访问。
|-classes动态web资源运行时的class文件要放在这个目录下。
|-lib动态web资源运行时所依赖的jar包要放在这个目录下。
|-整个web应用的配置文件,配置主页/Servlet的映射/过滤器监听器的配置都需要依赖这个文件进行。
文件的作用
某个web资源配置为web应用首页将servlet程序映射到某个url地址上为web应用配置监听器
*实验:
配置一个web应用的主页
应用的虚拟目录映射
在的标签下配置如果path=""则这个web应用就被配置为了这个虚拟主机的默认web应用。
在tomcat/conf/引擎名/虚拟主机名之下建立一个.xml文件,其中文件名用来指定虚拟路径,如果是多级的用#代替/表示,文件中配置,如果文件名起为则此web应用为默认web应用。
这种配置方式不需要重启服务器,推荐。
直接将web应用放置到虚拟主机对应的目录下,如果目录名起为ROOT则此web应用为默认web应用。
如果三处都配置默认web应用则>config/.../>webapps。
杂项
(1)打war包:
方式一:
jar-cvf*方式二:
直接用压缩工具压缩为zip包,该后缀为.war。
(2)通用context和通用,所有的都继承子conf/,所有的都继承自conf/
(3)reloadable让tomcat自动加载更新后的web应用,当java程序修改后不用重启,服务器自动从新加载,开发时设为true方便开发,发布时设为false,提高性能。
(4)Tomcat管理平台,可以在conf/下配置用户名密码及权限。
6.作业
配置一个这样一台虚拟主机,其中包含news应用和mail应用,news应用中有一个。
实现在浏览器中输入直接看到中的芙蓉姐姐。
二、HTTP协议
协议概述
HTTP协议用于定义客户端与web服务器通迅的格式。
HTTP是hypertexttransferprotocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议
HTTP使用请求-响应的方式进行传输,一个请求对应一个响应,并且请求只能是由客户端发起的。
HTTP协议的版本:
HTTP/、HTTP/,其中一次请求发起一次连接,响应过后连接自动断开。
里每次请求响应后连接将保持一段时间,这段时间内可以再执行请求响应。
一次请求对应一次响应,请求只能由客户端发出,服务器只能被动的等待请求做出响应
请求
请求行
GET/books/HTTP/
请求方式请求的资源名所遵循的协议
请求方式:
GET、POST
七种请求方式:
POST、GET、HEAD、OPTIONS、DELETE、TRACE、PUT
其中GET方式在请求资源的URL后跟“参数名=参数值&参数名=......”方式传递参数,传输的数据内容最大为1K其中POST方式在请求实体中传输数据。
除了用Form表单明确用method指定用post方式提交数据以外,其他的方式都是GET提交方式。
3.请求头
Accept:
text/html,image/*客户端可以接受的数据类型Accept-Charset:
ISO-8859-1客户端接受数据需要使用的字符集编码Accept-Encoding:
gzip,compress客户端可以接受的数据压缩格式Accept-Language:
en-us,zh-cn可接受的语言环境Host:
:
80想要访问的虚拟主机名If-Modified-Since:
Tue,11JulXX18:
23:
51GMT这是和缓存相关的一个头,带着缓存资源的最后获取时间
Cookie会在后面讲会话技术的时候单讲Connection:
close/Keep-Alive指定是否继续保持连接Date:
Tue,11JulXX18:
23:
51GMT当前时间
4.实体内容
响应
状态行
HTTP/200OK格式:
HTTP版本号状态码原因叙述状态码:
200:
请求处理成功302:
请求重定向304、307:
服务器通知浏览器使用缓存404:
资源未找到500:
服务器端错误
若干响应头
Location:
/retype/zoom/c9e01eb3ad02de80d5d8408bpn=4&x=0&y=0&raww=714&rawh=450&o=jpg_6_0_______&type=pic&aimh=&md5sum=5f1aeb36827b79d9dd7580820c9628bc&sign=75ae5466a6&zoom=&png=0-3033&jpg=0-23380"target="_blank">点此查看
的生命周期
生命周期的概念:
一件事物,什么时候生,什么时候死,以及在其生存阶段的某一时点会触发的事件,统称为该事物的生命周期。
Servlet的生命周期:
通常情况下,服务器会在Servlet第一次被调用时创建该Servlet类的实例对象(servlet出生);一旦被创建出来,该Servlet实例就会驻留在内存中,为后续请求服务;直至web容器退出,servlet实例对象才会被销毁(servlet死亡)。
在Servlet的整个生命周期内,Servlet的init方法只有在servlet被创建时被调用一次。
而对一个Servlet的每次访问请求都导致Servlet引擎调用一次servlet的service方法。
对于每次访问请求,Servlet引擎都会创建一个新的HttpServletRequest请求对象和一个新的HttpServletResponse响应对象,然后将这两个对象作为参数传递给它调用的Servlet的service()方法,service方法再根据请求方式分别调用doXXX方法。
servlet被销毁前,会调用destroy()方法。
接口的继承结构
Servlet接口:
定义了一个servlet应该具有的方法,所有的Servlet都应该直接或间接实现此接口
|----GenericServlet:
对Servlet接口的默认实现,通用Servlet,这是一个抽象类,其中的大部分方法都做了默认实现,只有service方法是一个抽象方法需要继承者自己实现
|----HttpServlet:
对HTTP协议进行了优化的Servlet,继承自GenericServlet类,并且实现了其中的service抽象方法,默认的实现中判断了请求的请求方式,并根据请求方式的不同分别调用不同的doXXX()方法。
通常我们直接继承HttpServlet即可。
5.Servlet的注意事项
注册
由于客户端是通过URL地址访问web服务器中的资源,所以Servlet程序若想被外界访问,必须把servlet程序映射到一个URL地址上,这个工作在文件中使用元素和元素完成。
元素用于注册Servlet,它包含有两个主要的子元素:
和,分别用于设置Servlet
的注册名称和Servlet的完整类名。
一个元素用于映射一个已注册的Servlet的一个对外访问路径,它包含有两个子元素:
和,分别用于指定Servlet的注册名称和Servlet的对外访问路径。
例如:
例如:
AnyName
HelloServlet
AnyName
/demo/
同一个Servlet可以被映射到多个URL上,即多个元素的子元素的设置值可以是同一个Servlet的注册名。
在Servlet映射到的URL中也可以使用*通配符,但是只能有两种固定的格式:
一种格式是“*.扩展名”,另一种格式是以正斜杠(/)开头并以“/*”结尾。
级别最低。
如果在元素中配置了一个元素,那么WEB应用程序在启动时,就会装载并创建Servlet的实例对象、以及调用Servlet实例对象的init()方法。
举例:
invoker
2
缺省servlet
如果一个servlet的对外访问路径被设置为/,则该servlet就是一个缺省servlet,其他servlet不处理的请求都由它来处理。
在conf/中配置了缺省servlet,对静态资源的访问和错误页面的输出就是由这个缺省servlet来处理的。
如果我们自己写一个缺省servlet把爸爸中的缺省servlet覆盖的话,会导致静态web资源无法访问。
所以不推荐配置。
在\conf\文件中,注册了一个名称为的Servlet,并将这个Servlet设置为了缺省Servlet。
当访问Tomcat服务