1、Web应用概述1.URL与URIURL:统一资源定位器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包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,doPostHttpServletRequest接口及常用方法HttpServletResponse接口及常用方法2.Servlet的开发步骤编写一个Servlet类编译部署(1)在tomcat的虚拟目录下,创建Web目录(2)将编译好的.class文件复制到Web目录的WEB-INF\classes目录(3)修改配置文件WEB-INF\web.xml(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=request.getRequestDispatcher(location);Dispatcher.forward(request,response)request.setAttributerequest.getAttribute7.发送响应响应结构:状态行——响应头——空行——响应数据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)启动tomcat2.理解Web应用程序的部署描述文件web.xml下面的代码展示了在部署描述文件中servlet元素的一个典型的使用:servletservlet-namehelloServlet/servlet-name定义Servlet名称servlet-classcom.myserver.HelloServlet指定Servlet类的完整名称/servlet-classinit-param向Servlet传递的初始化参数,可以定义多个param-nameemail/param-nameparam-valuehacker@163.com/param-value/init-paramservlet-mapping定义一个映射servlet-nameHelloServlet/servlet-nameurl-pattern/Hello/url-pattern/servlet-mappingload-on-startup2/load-on-startup/servlet3.ServletConfig得到ServletConfig接口对象的方法:ServletConfigconfig=getServletConfig();覆盖Servlet的init方法。ServletConfig接口共定义了下面4个方法:publicStringgetInitParameter(Stringname):返回指定名称的初始化参数值(是从DD文件中取出)publicEnumerationgetInitParameterNames()publicStringgetServletName():返回DD文件中servlet-name的名称publicServletContextgetServletContext():返回Servlet所在上下文对象4.ServletContext接口使用RequestDispatcher实现请求转发ServletRequest的getRequestDispatcher()方法,可以传递一个相对路径,ServletContext的getRequestDispatcher()方法只能传递以“/”开头的路径。通过ServletContext对象共享数据4、会话管理1.会话管理理解会话的基本思想和管理机制了解会话对象HttpSession及常见方法调用request.getSession获取HttpSession对象:HttpSessionsession=request.getSession(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响应中•response.addCookie(c)•从客户端读取CookieCookie[]cookies=request.getCookies();if(cookies!=null){for(inti=0;icookies.length;i++){Cookiecookie=cookies[i];if(cookie.getName().equals(cookieName))cookieValue=cookie.getValue();}}3.URL重写与隐藏表单域重写正在重定向的URL调用encodeRedirectURL()方法response.sendRedirect(response.encodeRedirectURL()在HTML页面中,可以使用下面代码实现隐藏的表单域:inputtype=hiddenname=sessionvalue=a12345、JSP技术模型1.JSP基本语法%@%JSP指令:page指令、include指令和taglib指令%!%JSP声明:理解%!intcount=0;%和%intcount=0;%的区别%%JSP小脚本%=%JSP表达式jsp:JSP动作:jsp标准动作、JSTL中的动作、用户自定义动作jsp标准动作包括jsp:forward、jsp:include、jsp:plugin、jsp:useBean、jsp:getProperty、jsp:setProperty%----%JSP注释2.JSP页面生命周期理解JSP的执行过程浏览器访问一个jsp页面,服务器端的web容器将jsp转换为servlet,并处理执行此servlet中的相关内容,产生响应结果,然后再由web容器将响应结果返回客户端浏览器。理解JSP页面转换理解JSP页面的生命周期页面转换——页面编译——加载类——创建实例——调用jspInit()方法——调用_jspService()方法——调用jspDestroy()方法3.理解page指令属性page指令用于告诉容器关于JSP页面的全局属性,该指令适用于整个转换单元而不仅仅是它所声明的页面。语法格式如下:%@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