javaweb期末复习知识点整理.docx
《javaweb期末复习知识点整理.docx》由会员分享,可在线阅读,更多相关《javaweb期末复习知识点整理.docx(17页珍藏版)》请在冰点文库上搜索。
javaweb期末复习知识点整理
1、Web应用概述
1.URL与URI
URL:
统一资源定位器
URI:
统一资源定位符
2.常见HTML标签
3.表单的处理
4.静态文档与动态文档的概念:
静态文档是一种以文件的形式存放在服务器端的文档,客户发出对该文档的请求,服务器返回这个文档。
动态文档是指文档的内容可根据需要动态生成,又可分为服务器端动态文档和客户端动态文档技术。
5.Servlet概念:
服务器端小程序,是使用ServletAPI以及相关类编写的java程序,主要用来扩展web服务器的功能。
6.处理404错误:
查看给定的路径名是否正确,查看Servlet类文件是否在classes目录下,查看web.xml文件内容是否正确,查看tomcat是否启动
2、Servlet技术模型
1.Servlet的API:
javax.servlet包,javax.servlet.http包
vServlet接口及方法:
1)publicvoidinit(ServletConfigconfig):
完成Servlet初始化并准备提供服务。
容器传给该方法一个ServletConfig类型的参数。
2)publicvoidservice(ServletRequestreq,ServletResponseres)throwServletException,IOException:
对每个客户请求容器调用一次该方法,它允许Servlet为请求提供响应。
3)publicvoiddestroy()该方法由容器调用,指示Servlet清除本身,释放请求的资源并准备结束服务。
4)publicServletConfiggetServletConfig()返回关于Servlet的配置信息,如传递给init()方法的参数。
5)publicStringgetServletInfo()返回关于Servlet的信息,如作者,版本及版权信息。
vServleConfig接口作用及方法
vHttpServlet类:
新的service方法,doGet,doPost
vHttpServletRequest接口及常用方法
vHttpServletResponse接口及常用方法
2.Servlet的开发步骤
v编写一个Servlet类
v编译
v部署
(1)在tomcat的虚拟目录下,创建Web目录
(2)将编译好的.class文件复制到Web目录的WEB-INF\classes目录
(3)修改配置文件WEB-INF\web.xml
(4)启动tomcat
v运行
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=request.getRequestDispatcher(location);
Dispatcher.forward(request,response)
request.setAttribute
request.getAttribute
7.发送响应
响应结构:
状态行——响应头——空行——响应数据
response.setContentType(“text/html;charset=gb2312”);
PrintWriterout=response.getWriter();
响应重定向:
response.sendRedirect(“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\web.xml
(4)启动tomcat
2.理解Web应用程序的部署描述文件web.xml
下面的代码展示了在部署描述文件中元素的一个典型的使用:
helloServlet定义Servlet名称
com.myserver.HelloServlet指定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.会话管理
v理解会话的基本思想和管理机制
v了解会话对象HttpSession及常见方法
调用request.getSession获取HttpSession对象:
HttpSessionsession=request.getSession(true);
将信息存入会话
publicvoidsetAttribute(Stringname,Objectvalue)
查找与会话相关联的信息
publicObjectgetAttribute(Stringname)
publicEnumerationgetAttributeNames()
publicvoidremoveAttribute(Stringname)
v使用HttpSession对象通常需要三步:
(1)为客户创建或获得与请求关联的会话对象;
(2)在会话对象中添加或删除名/值对属性;
(3)如果需要可使会话失效。
2.通过Cookie(一小段文字信息)支持会话
vCookie类的常用方法:
getName、getValue、setValue、setMaxAge和getMaxAge;
v向客户端发送Cookie
▪创建Cookie对象
•Cookiec=newCookie("username","hacker");
▪将Cookie放入到HTTP响应中
•response.addCookie(c)
•从客户端读取Cookie
Cookie[]cookies=request.getCookies();
if(cookies!
=null){
for(inti=0;iCookiecookie=cookies[i];
if(cookie.getName().equals(cookieName))
cookieValue=cookie.getValue();
}
}
3.URL重写与隐藏表单域
重写正在重定向的URL
调用encodeRedirectURL()方法
response.sendRedirect(
response.encodeRedirectURL(http:
//localhost/store/catalog)
在HTML页面中,可以使用下面代码实现隐藏的表单域:
5、JSP技术模型
1.JSP基本语法
<%@%>JSP指令:
page指令、include指令和taglib指令
<%!
%>JSP声明:
理解<%!
intcount=0;%>和<%intcount=0;%>的区别
<%%>JSP小脚本
<%=%>JSP表达式
>JSP动作:
jsp标准动作、JSTL中的动作、用户自定义动作
jsp标准动作包括forward>、include>、plugin>、useBean>、getProperty>、setProperty>
<%----%>JSP注释
2.JSP页面生命周期
v理解JSP的执行过程
浏览器访问一个jsp页面,服务器端的web容器将jsp转换为servlet,并处理执行此servlet中的相关内容,产生响应结果,然后再由web容器将响应结果返回客户端浏览器。
v理解JSP页面转换
v理解JSP页面的生命周期
页面转换——页面编译——加载类——创建实例——调用jspInit()方法——调用_jspService()方法——调用jspDestroy()方法
3.理解page指令属性
vpage指令用于告诉容器关于JSP页面的全局属性,该指令适用于整个转换单元而不仅仅是它所声明的页面。
v语法格式如下:
<%@page
[language="java"]
[extends="package.class"]合法的实现了javax.servlet.jsp.JspPage接口的java类
[import="{package.class|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隐含变量(内置对象)
vJSP有以下九种内置对象,包括:
▪request,请求对象(是HttpServletRequest的隐含变量)
▪session,会话对象(是HttpSession的隐含变量)
▪application,应用程序对象(是ServletContext的隐含变量)
▪page,页面对象
▪response,响应对象
▪pageContext,页面上下文对象
▪out,输出对象
▪config,配置对象
▪exception,例外对象
5.作用域对象
应用作用域application:
ServletContext:
在整个web应用程序有效
会话作用域session:
HttpSession:
在一个用户会话范围内有效
请求作用域request:
ServletRequest:
在用户的请求和转发的请求内有效
页面作用域page:
PageContext:
只在当前页面内有效
6、Web组件重用与JavaBeans
1.静态包含和动态包含
v静态包含是在JSP页面转换阶段将另一个文件的内容包含到当前JSP文件中产生一个servlet。
静态包含使用include指令,语法:
<%@includefile="relativeURL"%>
包含的文件在当前Web应用程序下,可以是任何基于文本的文件,如HTML、JSP、XML文件,甚至是简单的.txt文件。
v动态包含是通过JSP标准动作include>实现的,它是在请求时将另一个页面的输出包含到主页面的输出中。
动态包含使用jsp:
include标准动作,其语法如下所示:
includepage="relativeURL"flush="true"/>
include>
<%@cinclude
file=””%>
includepage=””flush=”true”/>
修改了被包含的文件后,需更新源文件
修改了被包含的文件后,不需更新源文件
包含外部页面的过程在原JSP页面被编译成Servlet时进行
包含外部页面的过程在运行时进行
使用forward>动作把请求转发到其他组件,然后由转发到的组件把响应发送给客户
v该动作的格式为:
forwardpage="relativeURL"/>
vpage属性的值为转发到的组件的相对URL,它可以使用请求时属性表达式。
v它与include>动作的不同之处在于,当转发到的页面处理完输出后,并不将控制转回主页面。
v使用forward>动作,主页面也不能包含任何输出。
2.JavaBeans及序列化
vJavaBean就是使用Java语言定义的类,而这种类的设计需要遵循Sun制定的JavaBean规范文档中描述的有关约定。
v在Java模型中,通过JavaBean可以无限扩充Java程序的功能。
vJavaBean的最大好处是可以实现代码的重复利用,另外在JSP页面中使用JavaBean可使代码更简洁,也易维护,也可充分利用面向对象语言的特性。
v在JSP程序中常用JavaBean来封装业务逻辑、数据库操作等等,可以很好地实现业务逻辑和表示逻辑的分离。
3.Javabeans规范
遵循下面3个规范的Java类作为JavaBean
▪类必须是public的;类必须具有无参数的public构造方法,
▪JavaBeans类的成员变量一般称为属性(property)。
对每个属性访问权限一般定义为private或protected,而不是定义为public的。
注意:
属性名必须以小写字母开头。
▪对每个属性,一般定义两个public方法,它们分别称为访问方法(getXxx)和修改方法(setXxx),允许容器访问和修改bean的属性。
JavaBean的主要特性
▪是一个Java类
▪有一个无参数的构造函数
▪不应该有公开的实例变量
▪对值的获取采用getXxx和setXxx方法来访问
▪boolean型属性,允许用is代替get和set
4.在Servlet中使用JavaBeans
通过JavaBeans共享数据
//创建实例并设置属性
CustomerBeancustomer=newCustomerBean();
customer.setCustName(request.getParameter("custName"));
customer.setEmail(request.getParameter("email"));
customer.setPhone(request.getParameter("phone"));
request.setAttribute("customer"customer);
getServletContext().getRequestDispatcher("/customer.jsp").forward(request,response);
5.在JSP中使用JavaBeans
v使用useBean>
▪useBean>动作通过五个属性来定制该动作的行为:
id、scope、class、type、beanName
▪useBeanid=”customer”class=””scope="session"/>
v使用setProperty>
▪<%@pageimport="com.model.CustomerBean"%>
▪useBeanid="customer"
class="com.model.CustomerBean"/>
▪setPropertyname="customer"
property="custName"value=“zxm"/>
v使用getProperty>
getPropertyname="customer"property="email"/>
6.理解MVC设计模式及其开发步骤
v理解MVC设计模式
vModel—代表了数据对象,用JavaBeans实现
vView—用来在屏幕上显示数据对象的当前状态,是应用程序的外观,用JSP页面实现
vController—定义了用户接口对用户输入反应的方式,它处理数据对象,用Servlet实现
v开发步骤
v1.定义JavaBeans表示数据
v2.使用Servlet处理请求
v3.调用业务逻辑完成相应功能,填写JavaBeans对象数据
v4.结果的存储
v5.转发请求到JSP页面
v6.从JavaBeans对象中提取数据
7、JDBC数据库访问
1.JDBC数据库访问的一般步骤
1)加载驱动程序:
使用Class类的forName()静态方法,如Class.forName("com.mysql.jdbc.Driver");
2)建立连接对象:
使用DriverManager类的getConnection(),如
Stringdburl=jdbc:
mysql:
//localhost:
3306/bank
Connectionconn=DriverManager.getConnection(dburl,"root","111111");
3)创建语句对象:
使用Connection接口的不同方法创建,如
Statementstmt=conn.createStatement();
4)获得SQL语句的执行结果:
对于查询语句,调用executeQuery(Stringsql)方法,如:
Stringsql="SELECT*FROMbooks";
ResultSetrst=stmt.executeQuery(sql);
while(rst.next()){
out.print(rst.getString
(1)+"\t");
}
对于语句如CREATE、ALTER、DROP、INSERT、UPDATE、DELETE等须executeUpdate(Stringsql)方法。
5)关闭建立的对象:
close()方法释放资源
2.JDBCAPI:
Connection接口、Statement接口、ResultSet接口
3.理解DAO设计模式
vDAO(DataAccessObject)称为数据访问对象。
vDAO设计模式可以在使用数据库的应用程序中实现业务逻辑和数据访问逻辑分离,从而使应用的维护变得简单。
v它通过将数据访问实现(通常使用JDBC技术)封装在DAO类中,提高应用程序的灵活性。
8、自定义标签
1.自定义标签的开发步骤
创建标签处理类(taghandler);
创建标签库描述文件(TLD);
在JSP文件中导入标签库和使用标签。
2.理解TLD文件
xmlversion="1.0"encoding="UTF-8"?
>
1.0
http:
//localhost/sampleLib
hello2
sampleLib.HelloTag2
empty
PrintsHellouser!
user
false
true