﻿<?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>BlogJava-BeanSoft's Java Blog-随笔分类-JSP</title><link>http://www.blogjava.net/beansoft/category/27072.html</link><description>MyEclipse, Java EE 5, JSPWiki, Spring, Struts, Hibernate, JPA, SWT, Swing, AJAX, JavaScript, Netbeans</description><language>zh-cn</language><lastBuildDate>Mon, 03 Dec 2007 04:53:31 GMT</lastBuildDate><pubDate>Mon, 03 Dec 2007 04:53:31 GMT</pubDate><ttl>60</ttl><item><title>原创讲解JSP过滤器和监听器</title><link>http://www.blogjava.net/beansoft/archive/2007/11/09/159374.html</link><dc:creator>BeanSoft</dc:creator><author>BeanSoft</author><pubDate>Fri, 09 Nov 2007 07:05:00 GMT</pubDate><guid>http://www.blogjava.net/beansoft/archive/2007/11/09/159374.html</guid><wfw:comment>http://www.blogjava.net/beansoft/comments/159374.html</wfw:comment><comments>http://www.blogjava.net/beansoft/archive/2007/11/09/159374.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/beansoft/comments/commentRss/159374.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/beansoft/services/trackbacks/159374.html</trackback:ping><description><![CDATA[
		<p>原创讲解JSP过滤器和监听器  </p>
		<p>BeanSoft(刘长炯) 2007年11月  </p>
		<p>关于这个问题, 比较复杂的说. 不过我希望通过例子来解释会方便理解一些.  </p>
		<p>假设有一个非常危险的任务, 是九死一生. 需要你揣着炸药包从北平开车走高速路过保定去石家庄把鬼子的碉堡给炸了. 注意: 这个任务十分艰巨, 有可能半路炸药爆炸. 所以出发前你需要苦练10元一本的&lt;&lt;铁布衫&gt;&gt;, 还需要立遗嘱交代一下后事. 下面是路线图:<br />去时路线: 北平 ==&gt; 高速路收费站入口(都有警察和警犬) A  ==&gt; 保定收费站 B ==&gt; 石家庄收费站 C ==&gt; 炸碉堡 D ==&gt; 转车(刚才的车已经炸没了) E =&gt; <br />回来路线: 石家庄收费站 ==&gt; 保定收费站 ==&gt; 高速路收费站出口(都有警察和警犬) A ==&gt; 安全回到北平 G  </p>
		<p>那么我们先简介可能发生的情况.  A 点有可能被警察和警犬发现, 所以你只能被扭送回北平.  即使不被发现, 还可能出现收费时发现10个现大洋一个路口的买路钱没带!! 哎, 只能又回去了. 还有最惨的: 高速路入口写着: 对不起, 到石家庄的路线因为施工不通! 只好回家等着吧.<br />到了B和C你可能还会被人发现带了炸药包, 或者发现买路费少带了! 极有可能又被扭送回北平, 注意已经在半道了, 是不会让你继续到石家庄的, 所以你会被从车上逮下来, 然后转到警车上带回来!  也就是从 B 或者 C 直接返回.<br />好了, 最佳情况就是你炸了碉堡, 也成功的返回了. 然后你可以开心的把&lt;&lt;铁布衫&gt;&gt;扔了, 然后宣告遗嘱作废.  </p>
		<p>OK, 以上过程, 就是过滤器和监听器的真实案例.  </p>
		<p>那么炸碉堡这个任务, 就相当于要调用 JSP 或者 Servlet 来获得执行结果(炸碉堡 D ).  在执行之前你需要做一些准备工作, 相当于要写一个<br />监听器 com.allanlxf.ums.web.ServiceListener<br />在里面你可以做一些事情例如初始化资源, 例如上文的苦练&lt;&lt;铁布衫&gt;&gt;, 立遗嘱, 这个相当于代码中的 <br />public void contextInitialized(ServletContextEvent sce) 这样一个初始化事件.<br />那么在整个任务完成之后, 这些事情你就要考虑应该作废了, 所以需要<br />public void contextDestroyed(ServletContextEvent sce) 这样一个销毁事件, 例如把&lt;&lt;铁布衫&gt;&gt;扔了, 然后宣告遗嘱作废, 也就是收回资源.  </p>
		<p>那么过滤器在哪里呢? 它位于任务的 A B C 点. 注意是双向路程都会经过的. 也就是请求和响应都会经过. 但是过滤器也会检查不同的情况, 例如 A 点实际上有两个过滤功能: 查炸药包和收买路钱. 这就相当于配置了:<br />   <filter-mapping><br />       <filter-name>sessionFilter</filter-name><br />     * <url-pattern>*.do</url-pattern><br />     * <dispatcher>REQUEST</dispatcher><br />     * <dispatcher>FORWARD</dispatcher><br />   </filter-mapping>  <br /> 两个过滤功能都要检查. 如果成功了怎么办呢? 会继续让你走下一个路口, 注意不是让你直接成功. 也就是代码:<br />        if(session.getAttribute("user") != null || path.equals("/login"))//若用户已经登录并且当前路径仍然停留在登录页面      {            <br />           chain.doFilter(request, response);//继续走下面的过滤器或者任务(不保证最终任务, 因为下个过滤器也可能让你回来)<br />           只有当走到 C 点的时候, 下一步才是执行了最终的任务: 执行JSP或者Servlet.<br />       }<br /> 反过来怎么办? 把你扭送上警车, 强行返回! 这样你连路口 B C 和最终任务都无法访问了. 也就是不会让你访问下一个过滤器和执行最终的 JSP 或者 Serlvet, 可以选择直接返回, 或者放警车上带回去.<br />       {<br />           return;// 直接返回<br />           或者 response.sendRedirect(request.getContextPath() + "/login.jsp");//则扭送上警车, 强行返回到警察局<br />       }  </p>
		<p>那么在 E 点发生了什么? 也就是你可能替换掉了原来的 response 对象,  也就是换车. 这意味着你可以在过滤器里私下修改请求和响应对象.  </p>
		<p>虽然已经不那么抽象了, 但是要理解可能还是需要耐心体会的.  </p>
		<p>=====================================================================<br />注: 原始问题  </p>
		<p>    1.请看下面一段代码和其注释:<br />import javax.servlet.*;  </p>
		<p>import javax.servlet.http.*;  </p>
		<p>import java.io.*;  </p>
		<p>public class SessionFilter extends HttpFilter  </p>
		<p>{  </p>
		<p>   public void doFilter(HttpServletRequest request, HttpServletResponse response, FilterChain chain)  </p>
		<p>               throws ServletException, IOException  </p>
		<p>   {  </p>
		<p>       String path = request.getServletPath();//取得该servlet的路径名称  </p>
		<p>       path = path.substring(0, path.indexOf("."));   //获得路径中.之前的部分  </p>
		<p>       HttpSession session = request.getSession();//从请求中取得session为得是从session中读取用户是否登录的标志值  </p>
		<p>       if(session.getAttribute("user") != null || path.equals("/login"))//若用户已经登录并且当前路径仍然停留在登录页面  </p>
		<p>       {            </p>
		<p>         *  chain.doFilter(request, response);//则将当前滤镜加入到滤镜链条当中  </p>
		<p>       }else//若用户尚未成功登录  </p>
		<p>       {  </p>
		<p>           response.sendRedirect(request.getContextPath() + "/login.jsp");//则使用请求重定向转到登录页面  </p>
		<p>       }        </p>
		<p>   }  </p>
		<p>}  </p>
		<p>/*  </p>
		<p>* 该Filter滤镜类所过滤的是用户在浏览器中输入的  </p>
		<p>* 当前web application的访问路径,通过判断用户是  </p>
		<p>* 否成功登录而决定是否对访问路径加以限止  </p>
		<p>* 在该web application的web.xml配置文件中为  </p>
		<p>* 该filte滤镜做了相应配置  </p>
		<p>*/  </p>
		<p>请问: 上面代码FilterChain对象盛装的是Filter对象, 可它是怎么工作的啊?<br />加*号的语句是何用意啊,不是过滤路径吗, 为什么要将请求与响应加入呢?  </p>
		<p>2.请看下面一段代码:  </p>
		<p>import javax.servlet.*;  </p>
		<p>import javax.servlet.http.*;  </p>
		<p>import java.io.*;  </p>
		<p>public abstract class HttpFilter implements Filter  </p>
		<p>{  </p>
		<p>   private FilterConfig config;  </p>
		<p>   public void init(FilterConfig config) throws ServletException  </p>
		<p>   {  </p>
		<p>       this.config = config;  </p>
		<p>       init();  </p>
		<p>   }  </p>
		<p>   public void init() throws ServletException  </p>
		<p>   {  </p>
		<p>   }  </p>
		<p>   public String getInitParameter(String name)  </p>
		<p>   {  </p>
		<p>       return config.getInitParameter(name);  </p>
		<p>   }  </p>
		<p>   public ServletContext getServletContext()  </p>
		<p>   {  </p>
		<p>       return config.getServletContext();  </p>
		<p>   }  </p>
		<p>   public final void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)  </p>
		<p>               throws ServletException, IOException  </p>
		<p>   {  </p>
		<p>       doFilter((HttpServletRequest)request, (HttpServletResponse)response, chain);  </p>
		<p>   }  </p>
		<p>   public abstract void doFilter(HttpServletRequest request, HttpServletResponse response, FilterChain chain)  </p>
		<p>               throws ServletException, IOException;  </p>
		<p>   public void destroy()  </p>
		<p>   {  </p>
		<p>   }  </p>
		<p>}  </p>
		<p>请问: 该类就这样写了一下,没有包含任何行为,它如何完成过滤工作啊?  </p>
		<p>3.请看下面代码:<br />package com.allanlxf.ums.web;  </p>
		<p>import javax.servlet.*;  </p>
		<p>//import javax.servlet.http.*;  </p>
		<p>import com.allanlxf.ums.service.SystemService;  </p>
		<p>import com.allanlxf.ums.service.StudentService;  </p>
		<p>public class ServiceListener implements ServletContextListener  </p>
		<p>{  </p>
		<p>   public void contextInitialized(ServletContextEvent sce)  </p>
		<p>   {  </p>
		<p>       ServletContext application = sce.getServletContext();  </p>
		<p>       StudentService service = new StudentService();  </p>
		<p>       application.setAttribute("studentService", service);  </p>
		<p>       SystemService systemService = new SystemService();  </p>
		<p>       application.setAttribute("systemService", systemService);  </p>
		<p>   }  </p>
		<p>   public void contextDestroyed(ServletContextEvent sce)  </p>
		<p>   {  </p>
		<p>   }  </p>
		<p>}  </p>
		<p>/*  </p>
		<p>*本类是该web application的监听器类,在该类中,  </p>
		<p>*将两个无为本系统提供服务的两个对象写入到了  </p>
		<p>*application隐含对象中(这样保证在该系统的任何  </p>
		<p>*地方都能够取得这两个服务类对象的引用)  </p>
		<p>*在本系统的web.xml文件中对该监听器做了配置  </p>
		<p>*/  </p>
		<p>请问: 为什么要将服务类对象写入到程序上下文中呢,直接创建不也一样吗?<br />     监听器只有这样的功能吗,是否还有其它功能呢?  </p>
		<p>3.请看下面的配置文件内容:  </p>
		<p>   <filter><br />       <filter-name>sessionFilter</filter-name><br />       <filter-class>com.allanlxf.ums.web.SessionFilter</filter-class><br />   </filter>    <br />   <filter-mapping><br />       <filter-name>sessionFilter</filter-name><br />     * <url-pattern>*.do</url-pattern><br />     * <dispatcher>REQUEST</dispatcher><br />     * <dispatcher>FORWARD</dispatcher><br />   </filter-mapping>        <br />   <listener><br />       <listener-class>com.allanlxf.ums.web.ServiceListener</listener-class><br />    </listener></p>
		<p>请问: 加*号的三项是什么意思?  </p>
		<p>当初老师讲的时候,许多基本的原则原理尚不清楚,这些根本没有听明白,当然,老师也未细讲,只说会用即可, 可是若不能明白其本质,用也只能用这一点儿, 怎么成呢, 希望您能够比较详悉的讲一下. thank you very much! </p>
<img src ="http://www.blogjava.net/beansoft/aggbug/159374.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/beansoft/" target="_blank">BeanSoft</a> 2007-11-09 15:05 <a href="http://www.blogjava.net/beansoft/archive/2007/11/09/159374.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>(转载) IBM 的 JSP 自定义标签教程</title><link>http://www.blogjava.net/beansoft/archive/2007/11/03/157907.html</link><dc:creator>BeanSoft</dc:creator><author>BeanSoft</author><pubDate>Sat, 03 Nov 2007 04:06:00 GMT</pubDate><guid>http://www.blogjava.net/beansoft/archive/2007/11/03/157907.html</guid><wfw:comment>http://www.blogjava.net/beansoft/comments/157907.html</wfw:comment><comments>http://www.blogjava.net/beansoft/archive/2007/11/03/157907.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/beansoft/comments/commentRss/157907.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/beansoft/services/trackbacks/157907.html</trackback:ping><description><![CDATA[ j-customtags\index.html 打开即可开始学习.<br />来自 IBM : <a class="l" onmousedown="return clk(0,'','','res','8','')" href="http://www.ibm.com/developerworks/cn/views/web/tutorials.jsp?cv_doc_id=85105" target="_blank"><font color="#cc0033">掌握自定义JSP 标签</font></a><br /><br /><table class="Listing" id="Listing" cellspacing="0" cellpadding="0" border="0"><tbody><tr><th>文件名</th><th>大小</th><th></th><th></th><th width="50"> </th><th width="50"> </th></tr><tr><td><a href="/Files/beansoft/j-customtags.zip"><font color="#002c99">j-customtags.zip</font></a></td><td>288KB</td></tr></tbody></table><img src ="http://www.blogjava.net/beansoft/aggbug/157907.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/beansoft/" target="_blank">BeanSoft</a> 2007-11-03 12:06 <a href="http://www.blogjava.net/beansoft/archive/2007/11/03/157907.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>免费 JSP/Servlet 中文教程打包下载</title><link>http://www.blogjava.net/beansoft/archive/2007/10/26/156063.html</link><dc:creator>BeanSoft</dc:creator><author>BeanSoft</author><pubDate>Fri, 26 Oct 2007 03:09:00 GMT</pubDate><guid>http://www.blogjava.net/beansoft/archive/2007/10/26/156063.html</guid><wfw:comment>http://www.blogjava.net/beansoft/comments/156063.html</wfw:comment><comments>http://www.blogjava.net/beansoft/archive/2007/10/26/156063.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/beansoft/comments/commentRss/156063.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/beansoft/services/trackbacks/156063.html</trackback:ping><description><![CDATA[
		<p>JSPServlet中文教程.zip　7.69 MB 下载地址:</p>
		<p>
				<a title="http://cid-519b3f7aa2172030.skydrive.live.com/self.aspx/Public/JSPServlet中文教程.zip" href="http://cid-519b3f7aa2172030.skydrive.live.com/self.aspx/Public/JSPServlet中文教程.zip">http://cid-519b3f7aa2172030.skydrive.live.com/self.aspx/Public/JSPServlet中文教程.zip</a>
		</p>
		<p>下载速度不是太稳定, 下不了的话大家可以自己去官方网站下载, 地址在下面有介绍. 注意上面的地址是个网页, 不要用 FlashGet 之类的直接打开, 需要进去了才能再下.</p>
		<p>同学们分享的, 来自下面的网站: <a title="http://courses.coreservlets.com/Course-Materials/chinese.html" href="http://courses.coreservlets.com/Course-Materials/chinese.html">http://courses.coreservlets.com/Course-Materials/chinese.html</a> </p>
		<p>Free Servlet, JSP, and JDBC Training Material<br />From 2nd Edition of Core Servlets and JSP (Volume 1)<br />Chinese Version Translated by Zhao Xueliang </p>
		<p>您可以自己去下载. 我这里把 PDF 打包给大家来下载了.</p>
		<h3>Free Servlet, JSP, and JDBC Training Material</h3>
		<h3>From 2nd Edition of <i>Core Servlets and JSP</i> (Volume 1)</h3>
		<h4>Chinese Version Translated by Zhao Xueliang</h4>
		<p>This page gives Chinese (simplified script) translations of the slides from <a href="http://courses.coreservlets.com/csajsp2.html">Core Servlets and JSP, 2nd Edition</a>. Translation by Zhao Xueliang (<a href="mailto:Xueliang_Zhao@sonic.com">Xueliang_Zhao@sonic.com</a>). </p>
		<p>Slides and exercises from Marty Hall's world-renowned <a href="http://courses.coreservlets.com">live training courses</a> are now available online. The materials on this page are based on the second edition of Marty's book <i>Core Servlets and JavaServer Pages</i> and have been tested by Marty in live courses in the US, Canada, Australia, Puerto Rico, Japan, and the Philippines. See the <a href="http://courses.coreservlets.com/index.html">training materials home page</a> for slides based on <i>More Servlets and JavaServer Pages</i>, <i>Core Web Programming</i>, the first edition of <i>Core Servlets and JavaServer Pages</i>, and online tutorials and conference talks on servlets, JSP, JSTL, Apache Struts, and JSF. Materials in Japanese also available. </p>
		<p>To arrange a servlet &amp; JSP course at <i>your</i> organization based on these materials, again contact <a href="mailto:info@coreservlets.com">info@coreservlets.com</a>. These courses can be customized to use any combination of <a href="http://courses.coreservlets.com/index.html">materials</a>, and new materials can be added for specific client needs. They are available in any country, worldwide, but courses outside of N. American usually require more students to justify the travel costs. To learn more details about the instructor, the curriculum for the live training courses, or the public course schedule, please see <a href="http://courses.coreservlets.com">http://courses.coreservlets.com</a>. </p>
		<p>You can also <a href="http://volume1.coreservlets.com/">visit the book's home page</a>, <a href="http://www.moreservlets.com/">visit the home page of the sequel to this book</a> (<i><b>More</b> Servlets and JavaServer Pages</i>), or access <a href="http://pdf.coreservlets.com/">the free online version of the book's first edition</a>. </p>
		<h3>
				<a>Servlets &amp; JSP: Overview and Setup</a>
		</h3>
		<p>View <a href="http://courses.coreservlets.com/pdf/chinese/01-Overview-and-Setup-Chinese.pdf">PDF of Servlets &amp; JSP: Overview and Setup in Chinese</a><br />Free for personal use. </p>
		<p>View <a href="http://courses.coreservlets.com/ppt/chinese/01-Overview-and-Setup-Chinese.ppt">PowerPoint of Servlets &amp; JSP: Overview and Setup in Chinese</a><br />For customization and projection by instructors. Password-protected; see <a href="http://courses.coreservlets.com/instructor-materials.html">usage rules</a> for access. </p>
		<p>
				<b>More Info:</b>
				<a href="http://www.coreservlets.com/Apache-Tomcat-Tutorial/">Installation and Configuration Guide for Apache Tomcat 4 and 5</a>. </p>
		<h3>
				<a>Servlet Basics</a>
		</h3>
		<p>View <a href="http://courses.coreservlets.com/pdf/chinese/02-Servlet-Basics-Chinese.pdf">PDF of Servlet Basics in Chinese</a><br />Free for personal use. </p>
		<p>View <a href="http://courses.coreservlets.com/ppt/chinese/02-Servlet-Basics-Chinese.ppt">PowerPoint of Servlet Basics in Chinese</a><br />For customization and projection by instructors. Password-protected; see <a href="http://courses.coreservlets.com/instructor-materials.html">usage rules</a> for access. </p>
		<h3>
				<a>Handling the Client Request: Form Data</a>
		</h3>
		<p>View <a href="http://courses.coreservlets.com/pdf/chinese/03-Form-Data-Chinese.pdf">PDF of Handling the Client Request: Form Data in Chinese</a><br />Free for personal use. </p>
		<p>View <a href="http://courses.coreservlets.com/ppt/chinese/03-Form-Data-Chinese.ppt">PowerPoint of Handling the Client Request: Form Data in Chinese</a><br />For customization and projection by instructors. Password-protected; see <a href="http://courses.coreservlets.com/instructor-materials.html">usage rules</a> for access. </p>
		<h3>
				<a>Handling the Client Request: HTTP Request Headers</a>
		</h3>
		<p>View <a href="http://courses.coreservlets.com/pdf/chinese/04-Request-Headers-Chinese.pdf">PDF of Handling the Client Request: HTTP Request Headers in Chinese</a><br />Free for personal use. </p>
		<p>View <a href="http://courses.coreservlets.com/ppt/chinese/04-Request-Headers-Chinese.ppt">PowerPoint of Handling the Client Request: HTTP Request Headers in Chinese</a><br />For customization and projection by instructors. Password-protected; see <a href="http://courses.coreservlets.com/instructor-materials.html">usage rules</a> for access. </p>
		<h3>
				<a>Generating the Server Response: HTTP Status Codes</a>
		</h3>
		<p>View <a href="http://courses.coreservlets.com/pdf/chinese/05-Status-Codes-Chinese.pdf">PDF of Generating the Server Response: HTTP Status Codes in Chinese</a><br />Free for personal use. </p>
		<p>View <a href="http://courses.coreservlets.com/ppt/chinese/05-Status-Codes-Chinese.ppt">PowerPoint of Generating the Server Response: HTTP Status Codes in Chinese</a><br />For customization and projection by instructors. Password-protected; see <a href="http://courses.coreservlets.com/instructor-materials.html">usage rules</a> for access. </p>
		<h3>
				<a>Generating the Server Response: HTTP Response Headers</a>
		</h3>
		<p>View <a href="http://courses.coreservlets.com/pdf/chinese/06-Response-Headers-Chinese.pdf">PDF of Generating the Server Response: HTTP Response Headers in Chinese</a><br />Free for personal use. </p>
		<p>View <a href="http://courses.coreservlets.com/ppt/chinese/06-Response-Headers-Chinese.ppt">PowerPoint of Generating the Server Response: HTTP Response Headers in Chinese</a><br />For customization and projection by instructors. Password-protected; see <a href="http://courses.coreservlets.com/instructor-materials.html">usage rules</a> for access. </p>
		<h3>
				<a>Handling Cookies</a>
		</h3>
		<p>View <a href="http://courses.coreservlets.com/pdf/chinese/07-Cookies-Chinese.pdf">PDF of Handling Cookies in Chinese</a><br />Free for personal use. </p>
		<p>View <a href="http://courses.coreservlets.com/ppt/chinese/07-Cookies-Chinese.ppt">PowerPoint of Handling Cookies in Chinese</a><br />For customization and projection by instructors. Password-protected; see <a href="http://courses.coreservlets.com/instructor-materials.html">usage rules</a> for access. </p>
		<h3>
				<a>Session Tracking</a>
		</h3>
		<p>View <a href="http://courses.coreservlets.com/pdf/chinese/08-Session-Tracking-Chinese.pdf">PDF of Session Tracking in Chinese</a><br />Free for personal use. </p>
		<p>View <a href="http://courses.coreservlets.com/ppt/chinese/08-Session-Tracking-Chinese.ppt">PowerPoint of Session Tracking in Chinese</a><br />For customization and projection by instructors. Password-protected; see <a href="http://courses.coreservlets.com/instructor-materials.html">usage rules</a> for access. </p>
		<h3>
				<a>JSP Introduction &amp; Overview</a>
		</h3>
		<p>View <a href="http://courses.coreservlets.com/pdf/chinese/09-JSP-Intro-Chinese.pdf">PDF of JSP Introduction &amp; Overview in Chinese</a><br />Free for personal use. </p>
		<p>View <a href="http://courses.coreservlets.com/ppt/chinese/09-JSP-Intro-Chinese.ppt">PowerPoint of JSP Introduction &amp; Overview in Chinese</a><br />For customization and projection by instructors. Password-protected; see <a href="http://courses.coreservlets.com/instructor-materials.html">usage rules</a> for access. </p>
		<h3>
				<a>Invoking Java Code with JSP Scripting Elements</a>
		</h3>
		<p>View <a href="http://courses.coreservlets.com/pdf/chinese/10-JSP-Scripting-Elements-Chinese.pdf">PDF of Invoking Java Code with JSP Scripting Elements in Chinese</a><br />Free for personal use. </p>
		<p>View <a href="http://courses.coreservlets.com/ppt/chinese/10-JSP-Scripting-Elements-Chinese.ppt">PowerPoint of Invoking Java Code with JSP Scripting Elements in Chinese</a><br />For customization and projection by instructors. Password-protected; see <a href="http://courses.coreservlets.com/instructor-materials.html">usage rules</a> for access. </p>
		<h3>
				<a>Controlling the Structure of Generated Servlets: The JSP <code>page</code> Directive</a>
		</h3>
		<p>View <a href="http://courses.coreservlets.com/pdf/chinese/11-page-Directive-Chinese.pdf">PDF of JSP <code>page</code> Directive in Chinese</a><br />Free for personal use. </p>
		<p>View <a href="http://courses.coreservlets.com/ppt/chinese/11-page-Directive-Chinese.ppt">PowerPoint of JSP <code>page</code> Directive in Chinese</a><br />For customization and projection by instructors. Password-protected; see <a href="http://courses.coreservlets.com/instructor-materials.html">usage rules</a> for access. </p>
		<h3>
				<a>Including Files and Applets in JSP Pages</a>
		</h3>
		<p>View <a href="http://courses.coreservlets.com/pdf/chinese/12-File-Inclusion-Chinese.pdf">PDF of Including Files and Applets in JSP Pages in Chinese</a><br />Free for personal use. </p>
		<p>View <a href="http://courses.coreservlets.com/ppt/chinese/12-File-Inclusion-Chinese.ppt">PowerPoint of Including Files and Applets in JSP Pages in Chinese</a><br />For customization and projection by instructors. Password-protected; see <a href="http://courses.coreservlets.com/instructor-materials.html">usage rules</a> for access. </p>
		<h3>
				<a>Using JavaBeans Components in JSP Documents</a>
		</h3>
		<p>View <a href="http://courses.coreservlets.com/pdf/chinese/13-JavaBeans-Chinese.pdf">PDF of Using JavaBeans Components in JSP Documents in Chinese</a><br />Free for personal use. </p>
		<p>View <a href="http://courses.coreservlets.com/ppt/chinese/13-JavaBeans-Chinese.ppt">PowerPoint of Using JavaBeans Components in JSP Documents in Chinese</a><br />For customization and projection by instructors. Password-protected; see <a href="http://courses.coreservlets.com/instructor-materials.html">usage rules</a> for access. </p>
		<h3>
				<a>The Model View Controller (MVC) Architecture: Integrating Servlets and JSP</a>
		</h3>
		<p>View <a href="http://courses.coreservlets.com/pdf/chinese/14-MVC-Chinese.pdf">PDF of MVC in Chinese</a><br />Free for personal use. </p>
		<p>View <a href="http://courses.coreservlets.com/ppt/chinese/14-MVC-Chinese.ppt">PowerPoint of MVC in Chinese</a><br />For customization and projection by instructors. Password-protected; see <a href="http://courses.coreservlets.com/instructor-materials.html">usage rules</a> for access. </p>
		<h3>
				<a>JSP 2.0 Expression Language: Simplifying MVC &amp; Access to Java Code</a>
		</h3>
		<p>View <a href="http://courses.coreservlets.com/pdf/chinese/15-Expression-Language-Chinese.pdf">PDF of JSP Expression Language in Chinese</a><br />Free for personal use. </p>
		<p>View <a href="http://courses.coreservlets.com/ppt/chinese/15-Expression-Language-Chinese.ppt">PowerPoint of JSP Expression Language in Chinese</a><br />For customization and projection by instructors. Password-protected; see <a href="http://courses.coreservlets.com/instructor-materials.html">usage rules</a> for access. </p>
		<p>
				<b>More Info:</b>
				<a href="http://www.coreservlets.com/Apache-Struts-Tutorial/">Jakarta Struts Tutorial</a>. </p>
		<h3>
				<a>Creating Custom JSP Tag Libraries <small>(from first edition of book)</small></a>
		</h3>
		<p>View <a href="http://courses.coreservlets.com/pdf/csajsp1/Se12-Custom-Tags.pdf">PDF of Creating Custom JSP Tag Libraries <small>(from first edition of book)</small> in English</a><br />Free for personal use. </p>
		<p>View <a href="http://courses.coreservlets.com/ppt/csajsp1/Se12-Custom-Tags.ppt">PowerPoint of Creating Custom JSP Tag Libraries <small>(from first edition of book)</small> in English</a><br />For customization and projection by instructors. Password-protected; see <a href="http://courses.coreservlets.com/instructor-materials.html">usage rules</a> for access. </p>
		<p>
				<b>More Info:</b> Chapter 14 of <a href="http://pdf.coreservlets.com/">the free online version of <i>Core Servlets &amp; JSP (1st Ed)</i></a>. </p>
		<h3>
				<a>Accessing Databases with JDBC <small>(from first edition of book)</small></a>
		</h3>
		<p>View <a href="http://courses.coreservlets.com/pdf/csajsp1/Se15-JDBC.pdf">PDF of Accessing Databases with JDBC <small>(from first edition of book)</small> in English</a><br />Free for personal use. </p>
		<p>View <a href="http://courses.coreservlets.com/ppt/csajsp1/Se15-JDBC.ppt">PowerPoint of Accessing Databases with JDBC <small>(from first edition of book)</small> in English</a><br />For customization and projection by instructors. Password-protected; see <a href="http://courses.coreservlets.com/instructor-materials.html">usage rules</a> for access. </p>
		<p>
				<b>More Info:</b> Chapter 18 of <a href="http://pdf.coreservlets.com/">the free online version of <i>Core Servlets &amp; JSP (1st Ed)</i></a>. </p>
		<h3>
				<a>Certification Exam Prep: Sun Certified Web Component Developer (SCWCD)</a>
		</h3>
		<p>View <a href="http://courses.coreservlets.com/pdf/msajsp/15-Web-Component-Certification.pdf">PDF of Certification Exam Prep: Sun Certified Web Component Developer (SCWCD) in English</a><br />Free for personal use. </p>
		<p>View <a href="http://courses.coreservlets.com/ppt/msajsp/15-Web-Component-Certification.ppt">PowerPoint of Certification Exam Prep: Sun Certified Web Component Developer (SCWCD) in English</a><br />For customization and projection by instructors. Password-protected; see <a href="http://courses.coreservlets.com/instructor-materials.html">usage rules</a> for access.</p>
<img src ="http://www.blogjava.net/beansoft/aggbug/156063.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/beansoft/" target="_blank">BeanSoft</a> 2007-10-26 11:09 <a href="http://www.blogjava.net/beansoft/archive/2007/10/26/156063.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>