﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-Error-随笔分类-jsp</title><link>http://www.cppblog.com/Error/category/21008.html</link><description /><language>zh-cn</language><lastBuildDate>Tue, 04 Nov 2014 13:25:05 GMT</lastBuildDate><pubDate>Tue, 04 Nov 2014 13:25:05 GMT</pubDate><ttl>60</ttl><item><title>JSP速成 0-6</title><link>http://www.cppblog.com/Error/archive/2014/11/04/208772.html</link><dc:creator>Enic</dc:creator><author>Enic</author><pubDate>Tue, 04 Nov 2014 08:25:00 GMT</pubDate><guid>http://www.cppblog.com/Error/archive/2014/11/04/208772.html</guid><wfw:comment>http://www.cppblog.com/Error/comments/208772.html</wfw:comment><comments>http://www.cppblog.com/Error/archive/2014/11/04/208772.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Error/comments/commentRss/208772.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Error/services/trackbacks/208772.html</trackback:ping><description><![CDATA[<div>Jsp如何转换为Servlet</div><div></div><div>jsp的底层技术是servlet，他们的生命周期是相同的。服务器负责实例化jsp/servlet，激活init()方法，准备处理客户端请求。可以通过编写service()方法处理自己的事物逻辑，或者自己编写doGet()、doPost()方法。服务器激活destroy()方法时，jsp/servlet被销毁，启动gc使用finalize()方法清理内存。</div><div></div><div>jsp会被转换到适当的servlet代码，即一个.java文件。许多应用服务器保存生成的.java文件，一旦他转换到.java文件被编译为字节码.class。.class文件被支持输出成html文档返回给客户端。</div><div></div><div>HttpServlet基本结构</div><div>编写一个HttpServlet时，通常需要许该的方法：</div><div>Void init(ServletConfig sc) throws ServletException;</div><div>Void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException;</div><div>Void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException;</div><div>Void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException;</div><div></div><div>html表单（form）拥有一种成为&#8220;method&#8221;属性，用于定义如何想服务器发送数据。Get用于将数据追加入url的方式向服务器发送数据。Post用于将数据打包发送给服务器。</div><div></div><div></div><div>理解jsp应用模型</div><div>什么是应用模型：对jsp如何相互交互的一种描述。</div><div>1.简单模型：单一的jsp构成。</div><div>2.N层模型：添加了类似JavaBean的服务端资源。</div><div>3.松散耦合模型：允许位于远程系统的jsp做对等交互，或者拥有一种C/S关系。</div><div>通过html或者xml的http通讯，每个jsp应用都与其他jsp应用保存隔离。</div><div>4.包含请求模型：一个jsp可以负责请求和响应，但是包含其他jsp的输出。通过include行为实现。</div><div>5.转发请求模型：重定向，通过forward行为实现。</div><div></div><div></div><div></div><div>理解Jsp的布局</div><div>标签可以是html标签，也可以是jsp标签。</div><div>jsp标签可以有作用域 &lt;jsp: useBean name="myClass" class="SimpleClass" scope="page" /&gt;</div><div>注释：</div><div>1.html：&lt;!-- --&gt;</div><div>2.jsp: &lt;%-- --%&gt;</div><div>3.java: // or /**/</div><div></div><div>jsp解剖：</div><div>html代码----负责页面整个布局和外观</div><div>jsp标签----负责scriptlet、表达式、声明、行为和指令</div><div>jsp隐式对象----例如：request对象、response对象、session对象、config对象</div><div>JavaBean----实现事物逻辑</div><div></div><div></div><div>理解jsp标签元素</div><div>jsp有两种形式：&lt;%%&gt;、&lt;jsp:tagid/&gt;</div><div>1.jsp声明标签用法：(定义变量)</div><div>&lt;%!</div><div><span style="white-space:pre">	</span>declaration_statement(s)</div><div>%&gt;</div><div>&lt;jsp:declaration&gt;</div><div>&lt;/jsp:declaration&gt;</div><div>2.jsp表达式标签用法：(引用变量)</div><div>&lt;%=expression%&gt;</div><div>&lt;jsp: expression&gt; expression &lt;/jsp: expression&gt;</div><div>3.jsp scriptlet标签用法：(编写java代码,差不多就是用标签把java代码包起来，标签会截断标签)</div><div>&lt;%&nbsp;</div><div><span style="white-space:pre">	</span>boolean isPasswordAnyGood(String password)</div><div><span style="white-space:pre">	</span>{</div><div><span style="white-space:pre">	</span>return false;</div><div><span style="white-space:pre">	</span>}</div><div>%&gt;</div><div>&lt;%</div><div><span style="white-space:pre">	</span>if(isPasswordAnyGood("123"))</div><div><span style="white-space:pre">	</span>{</div><div>%&gt;</div><div><span style="white-space:pre">		</span>&lt;H1&gt;Welcome&lt;H1/&gt;</div><div>&lt;%</div><div><span style="white-space:pre">	</span>}</div><div><span style="white-space:pre">	</span>else</div><div><span style="white-space:pre">	</span>{</div><div>%&gt;</div><div><span style="white-space:pre">		</span>&lt;H1&gt;Press Login&lt;/H1&gt;</div><div>&lt;%</div><div><span style="white-space:pre">	</span>}</div><div>%&gt;</div><div>4.jsp指令标签：（预处理命令之类）</div><div>&lt;%@ page import="com.macmilan.jspln24.*" %&gt;</div><div>5.jsp行为标签（允许jsp使用java创建对象，包含jsp，转发jsp，java交互）</div><div>六种：useBean setProperty getProperty include forward plugin</div><div></div><div></div><div>Jsp内置对象用法：</div><div>内置对象提供来自浏览器的请求并且动态响应的功能：</div><div>request out response pageContext session application config page</div><div></div><div></div><div>JavaBean规范（这是个大议题，据说有两种用法，一种可以直接无视，把javabean当不同java类在jsp中导入来用。一种是遵循javabean规范使用标签来访问）</div><div></div><div></div><div>7</div><img src ="http://www.cppblog.com/Error/aggbug/208772.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Error/" target="_blank">Enic</a> 2014-11-04 16:25 <a href="http://www.cppblog.com/Error/archive/2014/11/04/208772.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>