2022java web总结.docx
2022java web总结 java web总结JavaWeb总结1.JSP运行原理(1)用户通过客户端阅读器向服务器发送恳求。(2)JSP文件将JSP引擎编译成Java的class文件,即servlet。(3)将产生的servlet加载到内存执行。(4)Servlet的运行结果以HTML(或XML)形式通过web服务器返回客户端的阅读器。2.web项目设计(1)公开书目(2)web_INF书目(3)Class书目3.JSP的基本语法(1)脚本元素:声明、脚本段、表达式。(2)脚本段:(3)声明:不会产生任何输出内容声明全局变量。(4)表达式:(5)EL表达式:(6)指令元素:不在客户端可见(7)page指令、include指令、taglib指令page指令:language属性、contentType(text/html)、text/plainapplication/msword、application/x-msexecl、PageEncoding、info、import属性.include指令:在JSP页面中静态包含一个文件taglib指令:指令元素翻译阶段执行,动作元素执行阶段被执行。用于包含其他文件可以是静态文件,也可以是动态文件。包含动态文件时用传(建一值)考点:4.指令与动作的区分(include)1.执行时间不同指令是偏译时包含静态文件动作是运行时包含的文件2.引入内容不同指令引入静态文本(html.jsp)。动作引入执行页面或severlet的应答文本。5.JSP内置对象Out,request,response,session,application,page,pageContext,exception,configrequest客户端向服务端发送恳求。response用于服务器端封装JSP处理恳求后产生的结果。response对象的sendRedirect(url)方法相当于两次恳求。而在网址不变状况下内部跳转不同页面,但照旧属于同一次恳求6.session和cookie的区分1.存放地点不同Session存放在服务器端,cookie存放在客户端的硬盘里2.存活时间session随用户访问服务器而产生,随客户下线或超时而消逝3.平安性session存放在服务器端,不能被修改,且随客户端阅读器的关闭而消逝,平安性较好。Cookie存放在客户端,平安性较差。7.数据库java.sql.Driverjava.sql.DriverManager加载驱动程序java.sql.Connetion表示数据库连接对象,对数据库一切操作都在这个基础上java.sql.Statement执行SQL语句和返回结果java.sql.ResultSet结果集用来短暂存放数据库查询操作结果8.编写程序的步骤1.装载驱动程序class.forName("com.mySQL.jdbc.Driver")2.定义所需连接数据库的地址StringmysqlURL="jdbc.mysql:/host:port/dbName"3.建立与数据库的连接Connectionconn=DriverMannager.getConnection(url,"登录数据库用户名","密码")4.声明并执行SQL语句5.处理返回的结果6.关闭对象StringdriverStr="com.mysql.jdbc.Driver"Stringconnstr="jdbc:mysql:/localhost:3306/book"ClassforName(driverStr)Connectionconn=DriverManager.getConnection(connstr."root"."123")第4步:建立语句对象Statementstmt=conn.createStatement()第5步:声明并执行SQL语句Stringsql="select*frombook"ResultSetrs=stmt.executeQuery(sql);第6步:Statement接口的3个方法:1、ResultSetexecuteQuery(Stringsql)2、intexecuteUpdate(Stringsql)3、booleanexecute(Stringsql)ResultSet的方法:1、booleannext()2、getxxx()第7:rs.close()stmt.close()con.close()注:关闭资源的依次与打开资源依次恰好相反。第8步:异样处理try.catch(SQLExecptionex).9.JavaBean组件(可重用)组件:是一个独立的模块,外界可以不了解内部如何实现,只需通过其供应的接口对组件进行访问即可,组件可重用。特点:1、实现代码重复运用;2、易编写,易维护,易运用。10.JavaBean类的编码约定1、类实现了java.io.Serializable接口2、必需放在某个Package(包)中3、类中假如有构造方法,那么这个方法是共有的,并且无参数4、全部属性都是私有的(private修饰)5、getXXX:用来获得属性,此方法是共有的6、setXXX:用来设置属性,此方法是共有的7、对于boolean类型的成员变量允许运用“is”代替“get”和“set”8、类中的一般方法不适合上面的命名规则,但这个方法必是public的。3个标记:网页中创建JavaBean实例用于为bean中的属性赋值用于获得bean中属性的值id=”javaBean实例名”class=”javaBean对应的类名”设置的属性获得JavaBean实例指令的属性值,并将这个值转换成字符串显示到JSP页面。11.servlet的生命周期(1)当客户第一次恳求servlet时,servlet被加载到内存容器会创建servlet实例,并调用其init()方法进行初始化工作。(2)容器创建恳求对象,然后调用servlet的service()方法为客户供应服务。(3)当servlet不再被需求时,容器调用servlet的destory()方法将servlet实例销毁。12.Servlet开发引入import.javax.servlet.*和import.javax,servlet.http.*包13.Servlet过滤器Servlet过滤器是一种java组件,它位于客户端和处理程序之间Servlet过滤器工作原理14.Model1和model2Model1:JSP+JavaBeanModel2:JSP+Servlet+JavaBeanModel1中,jsp页面实现页面显示、业务逻辑和流程限制,数据处理由JavaBean完成。优点:进行快速和小规模的应用开发时优势特别明显。缺点:不利于web应用的扩展和更新;调试和排错困难。Model2中,MVC模式->模型-视图-限制器.即把web应用的输入输出和处理流程根据Model.View和Controller分成三层。Model1和Model2的区分:Model1和Model2事实上就是对采纳JSP技术开发的web应用的不同模型的描述。Model1采纳JSP+JavaBean技术开发web应用,它比较适合小规模应用的开发,效率较高,易于实现,但由于在JSP页面中内嵌了大量的Java代码,以至于当业务逻辑困难时,代码可维护性、可扩展性和可重用性就会下降;Model2采纳JSP+Servlet+JavaBean技术开发web应用,该模型基于MVC模式,完全实现了页面显示和逻辑的分别,它充分利用了JSP和Servlet两种技术的优点,JSP更适合前台页面的开发,而Servlet更擅长服务器端程序的编写,Model2分工明确,更适合大型项目的开发和管理。视图(view)用于与用户交互,可以用HTML.JSP实现。15.模型(model)用于表示业务数据和实现业务逻辑,可以用JavaBean实现限制器(controller)完成流程限制,它接收来自视图层用户输入的数据,并调用相应的模型进行处理,最终选择合适的视图去响应用户。限制层可以用Servlet实现。优点:MVC模式完全实现了页面表示和业务逻辑的分别;MVC优势之一在于三层各司其职,互不干涉。缺点:没有明确的定义。模型层为JavaBean,实现了数据的表示和业务逻辑,视图层为JSP页面,只负责显示功能。限制器为Servlet,负责接收用户的恳求,设置JavaBean属性,调用JavaBean完成业务处理,最终将处理结果交给JSP页面显示。16.自定义标签对隐式对象的操作、处理表单、访问数据库及其他企业级服务。自定义标签种类:1.不带有属性和标签体:2.带有属性没有标签体的标签:3.带有属性带有标签体:myBody17.EL表达式基本语法$expr功能:对属性对象的简明访问:$user对属性对象的属性访问:$customer.firstname对属性集合元素的访问:对数组和list:$variableindex对map:$variablekey对恳求参数cookie等的简洁访问.恳求参数$param.custIDCookie对象:$cookie.userCookie18."."操作符和""操作符$user.address=$useraddress访问数组和集合元素,需运用$class0.name=$class0name$param.username=%=request.getparameter("userName")%19."."与""运用存在差异1.当访问的数据中包含一个特别字符(如:"."或"_"时),就必需用""操作符2.当动态取值时必需运用""操作符,"."操作符只能取到静态的值注:当""操作符中的属性名为常量时必需用""""引起,否则将会当做变量来处理.20.SQL标签1.标签2.执行数据库查询3.执行数据库更新4.和指明参数值5.用于事务处理21.Tomcat的书目结构及描述:bin放置启动和关闭Tomcat的可执行文件和批处理文件common放置在此书目中的jar、class文件,可以被此服务器下全部的web应用运用conf放置Tomcat的主要配置文件logs放置Tomcat的日志文件server放置Tomcat管理接口的应用src放置Tomcat相关的源代码temp放置Tomcat临时文件webapps放置Tomcat应用的书目work放置JSP页面翻译成对应的Servlet类的书目扩展阅读:Java Web总结JavaWeb总结1.Web工作原理.21.1.HTTP处理步骤.21.2.HTTP恳求的组成.21.3.HTTP响应的组成.31.4.理解HTTP无状态协议.31.5.CGI与Servlet.31.6.Servlet的主要任务.41.7.Web容器.41.8.JavaWeb应用程序的组成.42.Servlet基础.42.1.Servlet框架的组成.42.2.Servlet编码和部署.52.3.ServletURL映射路径.52.4.Servlet生命周期.62.5.ServletConfig与ServletContext.63.HTTP恳求.83.1.Servlet与Web容器协作处理恳求和响应.83.2.GET与POST提交方式的区分.83.3.获得HTTP协议恳求行.83.4.获得HTTP协议恳求头.93.5.获得表单数据.93.6.恳求转发.93.7.恳求范围对象绑定.94.HTTP响应.94.1.HTTP状态行.94.2.设置响应头.104.3.设置响应消息体.104.4.传输数据.104.4.1.传输文本数据.104.4.2.传输二进数据.104.4.3.恳求重定向.105.Web应用程序状态管理.115.1.Cookie.115.2.Session.115.3.URL重写.126.对象作用域与Servlet事务监听器.136.1.对象作用域.136.2.监听器.137.过滤器.158.JSP.JSP运行机制:.16JSP语法和语义.168.2.1.JSP脚本元素.168.2.2.JSP注释.178.2.3.JSP指令.178.2.4.JSP标准动作.178.2.5.JSP隐式对象.179.JavaWeb开发模式.189.1.MVC模型.189.1.1.视图.189.1.2.模型.189.1.3.限制器.189.2.MVC实现步骤.1910.JSTL与EL表达式.1910.1.EL表达式说明.1910.2.在EL表达式中的隐式变量.198.1.8.2.1.Web工作原理1.1.HTTP处理步骤创建与服务器的连接发送HTTP恳求接收客户端HTTP恳求,生成HTTP响应回发关闭与服务器的连接1.2.HTTP恳求的组成恳求行恳求头空行消息体1.3.HTTP响应的组成状态行响应头空行消息体1.4.理解HTTP无状态协议主要是说,客户机的状态,服务器是不知道的。比如说,用户关掉阅读器,服务器无法得知。只能向客户端供应静态网页内容1.5.CGI与ServletCGI:即通用网关接口(CommonGatewayInterface),它可以用Shell、Perl、C、PHP、Python等编写。每次恳求就打开一个CGI进程,严峻消耗服务器资源。极大地限制了一个服务器可以支持的并发CGI用户数量,但是平安性高。Servlet:Servlet与Web容器被设计用来解决CGI的问题,JavaServlet的优点在于它们的执行速度更快于CGI程序。各个用户恳求被激活成单个程序中的一个线程,而无需创建单独的进程,这意味着服务器端处理恳求的系统开销将明显降低。Servlet运行在一个主进程或者一个父程序中,这就是为什么Servlet更高效的关键缘由。1.6.Servlet的主要任务读取客户端发送的显式和隐式数据生成结果向客户端发送显式数据(即文档)和隐式数据(HTTP响应数据)1.7.Web容器Web容器负责管理和运行Servlet,容器对Servlet的支持包括:通信支持生命周期管理多线程支持JSP支持处理平安性1.7.1.1.1.7.1.2.1.7.1.3.1.7.1.4.1.7.1.5.1.8.JavaWeb应用程序的组成配置文件、静态HTML文件和JSP、类文件和包。2.Servlet基础2.1.Servlet框架的组成Servlet框架的核心是:javax.servlet.Servlet接口,全部的Servlet都必需实现这一接口。Servlet框架是由2个Java包组成:javax.servlet和javax.servlet.httpjavax.servlet包中定义了全部Servlet类都必需实现的接口和类。javax.servlet包的接口为:ServletConfig接口-在初始化过程中由Servlet容器运用ServletContext接口-定义Servlet用于获得容器信息的方法ServletRequest接口-向服务器恳求信息ServletResponse接口-响应客户端恳求Servlet接口-定义全部Servlet必需实现的方法javax.servlet包中的类为:ServletInputStream类-用于从客户端读取二进制数据ServletOutputStream类-用于将二进制数据发送到客户端GenericServlet类-抽象类,定义一个通用的,独立于底层协议的Servlet。javax.servlet.http包中定义了采纳HTTP通信的HttpServlet类。javax.servlet.http包的接口为:HttpServletRequest接口-供应http恳求HttpServletResponse接口-供应http响应HttpSession接口-用于标识客户端并存储有关客户信息HttpSessionAttributeListener接口-实现这个侦听接口用户获得会话的属性列表的变更的通知javax.servlet.http包中的类:HttpServlet类-扩展了GenericServlet的抽象类,用于扩展创建HttpServlet处理Http恳求Cookie类-创建一个Cookie,用于存储Servlet发送给客户端的信息留意javax.servlet包和javax.servlet.http包的区分,javax.servlet.http这个包里的类都去实现了javax.servlet包里的接口,用于特地用于HTTP协议。2.2.Servlet编码和部署Servlet体系结构:Servlet->GenericServlet->HttpServlet->用户自定义的Servlet2.2.1.1.用户自定义的Servlet继承HttpServlet,重写一下方法中的一个:doGet()和doPost()2.2.1.2.在容器中注册Servlet,配置web.xml,在web.xml文件中加入Hellocom.lovo.servlet.Hello2.2.1.3.映射虚拟路径,同样是通过配置web.xml,在web.xml文件中加入Hello/Hello2.3.ServletURL映射路径2.3.1.1.精确模式匹配。这种类型的模式用于将恳求一对一映射到指定的Servlet。2.3.1.2.扩展名匹配“*.扩展名”。在这种状况下,全部以指定扩展名结尾的URL都转向指定的Servlet。2.3.1.3.路径映射。路径映射必需以"/"起先,以"/*"结尾,在这之间可以出现随意字符。路径匹配通常用于将对某个书目的全部恳求转向一个指定的Servlet。2.3.1.4.默认的Servlet,"/"。默认的Servlet映射用于定义一个在没有给出路径信息时恳求转向的Servlet。2.4.Servlet生命周期Servlet的生命周期由Servlet容器限制,该容器创建Servlet的实例。Servlet生命周期就是指创建Servlet实例后响应客户恳求直至销毁的全过程。Serlvet生命周期的三个方法:init()->service()->destroy()Servlet生命周期:实例化:Servlet容器创建Servlet类的实例对象,有两种方式,一种是容器检测到须要这个Servlet来响应第一个恳求时,创建Servlet实例。另一种是容器启动时创建Servlet实例,1,数字越小启动依次越靠前。初始化:Servlet容器调用Servlet的init()方法服务:容器调用service()方法,依据恳求的方式,调用doGet或者doPost方法销毁:销毁实例之前调用destroy()方法2.5.ServletConfig与ServletContext2.5.1.ServletConfig与ServletContext的关系一个Servlet对应一个ServletConfig,也就是说容器加载了多少个Servlet就有多少个ServletConfig。而ServletContext是在容器启动时创建,一个Web应用一个ServletContext,可以把ServletContext看成是一个全局变量,全部的Servlet共享。2.5.2.ServletContext应用上下文属于整个Web应用程序,可以访问到Web应用程序资源的本地输入流,把资源的虚拟路径转换为物理路径,绑定一个对象在整个Web应用程序中共享。常用的方法有:getRealPath():返回一个web资源的真实路径getResourcePaths(path):返回一个指定路径下的全部资源列表getResourceAsStream(path):返回一个资源的InputStreamgetResource(path):返回一个web资源的URL地址setAttribute(name,value):保存一个共享数据getAttribute(name):提取共享数据2.5.3.ServletConfig通过重写有参数的init(ServletConfigconfig)方法获得到ServletConfig对象,通过config.getInitParameter("driver")方法获得到web.xml里相对应的配置信息。publicvoidinit(ServletConfigconfig)throwsServletExceptionHellocom.lovo.servlet.Hellodriver/TODOAuto-generatedmethodstubconfig.getInitParameter("driver");super.init(config);Hello:com.mysql.dri