jsp基础速成精华讲解

  1. Servlet三个要素:
  2. 1.必须继承自HttpServlet
  3. 2.必须实现doGet()或者doPost()
  4. 3.必须在web.xml中配置Servlet
  5. class>class>
  6. HttpServeltRrequest:请求对象
  7. getParameter():获得表单元素的值
  8. getAttribute():获得request范围中的属性值
  9. setAttribute():设置reqeust范围中的属性值
  10. setCharacterEncoding():设置字符编码
  11. HttpSerletResponse:相应对象
  12. sendRedirect():外部跳转
  13. getWriter():获得输出流对象
  14. setContentType("text/html;charset=utf-8"):设置相应内容格式和编码
  15. 四种会话跟踪方式:
  16. 1.Session
  17. HttpSessionsession=request.getSession();
  18. session.setAttribute("name","zhangsan");
  19. session.setAttribute("pwd","aaa");
  20. Stringname=(String)session.getAttribute("name");
  21. 2.cookie:
  22. //创建Cookie
  23. Cookiecookie=newCookie("name","zhangsan");
  24. //设置Cookie的超时时间
  25. cookie.setMaxAge(24*60*60*60);
  26. //把Cookie发送到客户端
  27. response.addCookie(cookie);
  28. //得到客户端发送的Cookie
  29. Cookie[]cookies=request.getCookies();
  30. for(inti=0;i
  31. Cookietemp=cookies[i];
  32. Stringkey=temp.getName();
  33. Stringvalue=temp.getValue();
  34. }
  35. 3.隐藏表单域
  36. "hidden"name="name"value="zhangsan"/>
  37. request.getParameter("name");
  38. 4.Url重写
  39. 问号传参
  40. LoginServlet?username=zhangsan&pwd=123
  41. Stringname=request.getParameter("username");
  42. Stringpwd=request.getPareameter("pwd");
  43. 内部跳转:
  44. LoginServlet
  45. request.getRequestDispatcher("index.jsp").forward(request,resposne);
  46. 外部跳转:
  47. response.sendRedirect("index.jsp");
  48. 内部跳转是一次请求和一次响应
  49. 外部跳转是两次请求和两次响应
  50. ServletContext:Servlet上下文对象
  51. 它是一个公共区域,可以被所有的客户端共享
  52. setAttribute():向公共区域里放入数据
  53. getAttribute():从公共区域里取数据
  54. 二:
  55. 三:三个标准范围:request,session,ServletContext
  56. 共同点:都有setAttribute(),getAttribute()
  57. 区别:范围不同,request
  58. 四:四种会话跟踪方式
  59. 五:服务器上的五大对象
  60. request,response,servlet,session,servletContext
  61. Jsp:JavaServerPage
  62. 页面构成:7种元素
  63. 1.静态内容:html
  64. 2.指令:page,include,taglib:
  65. <%@指令名属性1="属性值1"属性2="属性值2"%>
  66. 3.表达式:<%=表达式%>
  67. 4.Scriptlet<%Java代码%>
  68. 5.声明:<%!%>:变量和方法
  69. 6.动作:"属性值">
  70. 7.注释:
  71. 客户端看不到的:<%----%>
  72. 客户端可以看到的:
  73. Jsp的执行过程:
  74. 1.转译:Jsp--->Servlet
  75. 2.编译:Servlet---->.class
  76. 3.执行:.class
  77. 第一次访问jsp的时候响应速度较慢,后面请求时响应速度快
  78. 脚本:
  79. 表达式:<%=%>
  80. Scriptlet:<%%>
  81. 声明:<%!%>
  82. 指令:
  83. page:language,import,errorPage,isErrorpage
  84. include:file
  85. taglib:uri:指定标签库描述符的路径prefix:指定标签的前缀
  86. 隐式对象:
  87. 分类:
  88. 1.输入和输出对象:request(HttpServletRequest),
  89. response(HttpServletResponse),
  90. out(JspWriter),servlet中的out是PrintWriter
  91. 2.作用域通信对象:pageContext,request,
  92. session(HttpSession),
  93. application(ServletContext)
  94. 3.Servlet对象:page(this),config
  95. 4.错误对象:exception
  96. JavaBean:
  97. 一个标准的JavaBean有三个条件
  98. 1.共有的类
  99. 2.具有不带参数的公共的构造方法
  100. 3.具有set()和get()方法
  101. 4.私有属性
  102. Jsp中的标准动作:
  103. 1.useBean:创建JavaBean的一个实例
  104. "stu"class="com.westaccp.test.Student"scope="page/session/application/request"/>
  105. 2.setProperty:给JavaBean的属性赋值
  106. "stu"property="stuName"value="zhangsan"/>
  107. "stu"property="stuName"param="txtName"/>
  108. value和param不能同时使用
  109. 偷懒的方法:"stu"property="*"/>
  110. 这个时候需要注意的是,表单元素的名字必须和JavaBean的属性值
  111. 一模一样
  112. 3.getProperty:获得JvaBean的属性值
  113. "stu"property="stuName"/>
  114. 4.forward:内部跳转,相当于request.getRequestDispatcher().forward(request,response);
  115. "index.jsp"/>
  116. 5.include:包含
  117. "header.jsp"flush="true"/>
  118. 表达式语言:
  119. EL:ExpressionLanguage
  120. 语法格式:${表达式}
  121. 表示式=运算符+操作数
  122. 运算符:跟Java比较,多了一个empty,少了一个赋值运算符
  123. ${empty""}:true
  124. ${emptynull}:true
  125. 操作数:
  126. -->常量:布尔型(true/false),整型,浮点型,字符串(可以用'',还可以用""),Null
  127. -->变量:
  128. 1.指的是放在四个标准范围里的属性(page,request,session,application)
  129. 2.在编准范围内的搜索顺序:page-->request--->session--->application
  130. 3.怎么取得变量值:点运算符.,还以用[]
  131. <%
  132. request.setAttribute("name","lisi");
  133. %>
  134. ${requestScope.name}
  135. 或者
  136. ${requestScope["name"]}
  137. -->隐式对象
  138. 1.pageContext:通过它可以访问request,session,servletContext
  139. 2.跟范围由关的:pageScope,requestScope,sessionScope,applicationScope
  140. 3.跟输入有关的:param,paramValues
  141. 4.其他的:header,cookie,headervalues,
  142. EL表达式适用的场合:
  143. 1.可以在静态文本中使用
  144. 2.与自定义标签结合使用
  145. 3.和JavaBean结合使用
  146. "stu"class="com.westaccp.test.Student"scope="session"/>
  147. "stu"property="stuName"value="hello"/>
  148. ${stu.stuName}
  149. 自定义标签:
  150. 1.标签处理程序实现
  151. --->实现:继承自BodyTagSupport或者TagSupport
  152. 一般会重写doStartTag(),doEndTag(),doAfterBody()
  153. --->描述:在标签库描述符文件中描述(.tld)
  154. 1.0
  155. 2.0
  156. <short-name>simpletagshort-name>
  157. showbody
  158. class>com.westaccp.test.ShowBodyTagclass>
  159. empty/jsp
  160. color
  161. --->使用:<%@tagliburi="WEB-INF/mytag.tld"prefix="my"%>
  162. 2.标签文件
  163. --->实现和描述
  164. 在.tag文件中实现
  165. 设置主体内容:<%@body-content="empty/scriptless"%>
  166. 设置属性:<%@attributename="name"required="true"rtexprvalue="true"%>
  167. 有主体内容:"session"var="theBody"/>
  168. <%
  169. Stringbody=(String)session.getAttribute("theBody");
  170. %>
  171. --->使用
  172. WEB-INF/tags/sayhello.tag
  173. <%@taglibtagdir="/WEB-INF/tags/"prefix="you"%>
  174. 标准标签库:
  175. 1.核心标签库
  176. -->通用:
  177. set:setvar=""value=""scope=""/>
  178. out:outvalue=""/>
  179. remove:""scope=""/>
  180. -->条件:
  181. if:iftest="">.....if>
  182. choose:
  183. "">...
  184. "">...
  185. "">...
  186. .....
  187. ...
  188. -->迭代:
  189. forEach:""items=""varStatus=""begin=""end="">
  190. foTokens:""items=""delim=",;|">
  191. Java,C#;SQL|C
  192. 2.I18N与格式化标签库
  193. -->setLocale:设置本地区域
  194. -->bundle:设置资源包
  195. -->setBundle:设置资源包
  196. -->message:输出消息
  197. 3.SQL标签库
  198. -->setDataSource:设置数据源,用于获得与数据库的连接
  199. -->query:执行查询
  200. -->update:执行增,删,改
  201. -->transaction:事务
  202. -->param:参数
  203. 4.XML标签库
  204. 过滤器:
  205. 生命周期:
  206. 1.实例华:
  207. 2.初始化:init()
  208. 3.过滤:doFilter()
  209. 4.销毁:destroy()
  210. 5.不可用
  211. 配置:
  212. class>class>
  213. 几个重要的接口:
  214. 1.Filter:init(),doFilter(),destroy()
  215. 2.FilterChain:doFilter(request,response)
  216. 3.FilterConfig:getFilterName(),getInitParameter(),
  217. 过滤器链:--->1--->2--->3--->Servlet请求
  218. <----1<---2<---3<---响应
  219. MvC设计模式
  220. 1.ModelI:jsp+JavaBean
  221. 2.ModelII:jsp+Servlet+JavaBean
  222. jsp---view
  223. servlet---control
  224. javabean---model
  225. MVC:
  226. M--Model:模型:访问后台数据库
  227. V--view:视图:展示
  228. C--control:控制器:控制程序流程
  229. ModelII和MVC的关系:
  230. MVC是一种设计模式,ModelII它是MVC的一种具体的实现

你可能感兴趣的:(jsp基础速成精华讲解)