<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Alex's Blog &#187; 语法</title>
	<atom:link href="http://www.hialex.net/tags/%e8%af%ad%e6%b3%95/feed" rel="self" type="application/rss+xml" />
	<link>http://www.hialex.net</link>
	<description>记录生活与工作中的点点滴滴</description>
	<lastBuildDate>Sat, 09 Jan 2010 12:37:13 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Servlet程序设计</title>
		<link>http://www.hialex.net/2008/04/servlet-note.html</link>
		<comments>http://www.hialex.net/2008/04/servlet-note.html#comments</comments>
		<pubDate>Wed, 02 Apr 2008 08:46:24 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[classpath]]></category>
		<category><![CDATA[get]]></category>
		<category><![CDATA[jsp]]></category>
		<category><![CDATA[post]]></category>
		<category><![CDATA[servlet]]></category>
		<category><![CDATA[语法]]></category>

		<guid isPermaLink="false">http://www.hialex.net/2008/04/servlet-note.html</guid>
		<description><![CDATA[Java Servlet是一种使用Java编写的CGI程序

CGI：通用网关接口
与传统的CGI不同，Servlet是一种多线程处理模式&#8211;性能较高
在Servlet中可以控制输出HTML代码，则所有的HTML代码必须使用out.println()一行一行输出

Servlet的生命周期

初始化（1次）

public void init(ServletiConfig config) throws ServletException
Servlet初始化有两种方式

init()：当不需要传递初始化参数时使用
init(ServletConfig config) ：如果使用这种初始化方法，则上面的无参初始化方法无效，这种方式适用于需要传递初始化参数




服务（多次）

doGet();表单和地址输入都为GET请求
doPost(); 只有表单输入为POST请求


销毁（1次）

服务器关闭
此Servlet长时间不使用



简单Servlet编写

Servlet直接继承直HttpServlet
在doPost（doGet）方法中写入相应的程序代码
配置WEB.XML文件

JSP程序的功能与Servlet一致，意味着Servlet程序同样可以被外部所访问，就必须有一个地址，这只能通过WEB映射解决 

修改web.xml文件可以配置映射地址
//表示要使用一个Servlet

&#60;servlet&#62;  
      //在web.xml文件内部起作用的名字  
      &#60;servlet-name&#62;Simple&#60;/servlet-name&#62;  
      //servlet程序所在包.类名称  
      &#60;servlet-class&#62;net.hialex.Servlet.SimpleServlet&#60;/servlet-class&#62;       
&#60;/servlet&#62;      [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Java Servlet是一种使用Java编写的CGI程序</strong></p>
<ul>
<li><strong>CGI：通用网关接口</strong></li>
<li>与传统的CGI不同，<strong>Servlet是一种多线程处理模式</strong>&#8211;性能较高</li>
<li>在Servlet中可以控制输出HTML代码，则所有的HTML代码必须使用out.println()一行一行输出</li>
</ul>
<p>Servlet的生命周期</p>
<ol>
<li><strong>初始化（1次）</strong>
<ul>
<li>public void <strong>init(ServletiConfig config)</strong> throws ServletException<br />
Servlet初始化有两种方式</p>
<ul>
<li>init()：当不需要传递初始化参数时使用</li>
<li>init(ServletConfig config) ：<strong>如果使用这种初始化方法，则上面的无参初始化方法无效</strong>，这种方式适用于需要传递初始化参数</li>
</ul>
</li>
</ul>
</li>
<li><strong>服务（多次）</strong>
<ul>
<li>doGet();表单和地址输入都为GET请求</li>
<li>doPost(); 只有表单输入为POST请求</li>
</ul>
</li>
<li><strong>销毁（1次）</strong>
<ul>
<li>服务器关闭</li>
<li>此Servlet长时间不使用</li>
</ul>
</li>
</ol>
<p>简单Servlet编写</p>
<ol>
<li>Servlet直接继承直HttpServlet</li>
<li>在doPost（doGet）方法中写入相应的程序代码</li>
<li>配置WEB.XML文件
<ul>
<li><strong>JSP程序的功能与Servlet一致，意味着Servlet程序同样可以被外部所访问，就必须有一个地址，这只能通过WEB映射解决 </strong>
<ul>
<li>修改web.xml文件可以配置映射地址<br />
//表示要使用一个Servlet</li>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;servlet<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>  
      //在web.xml文件内部起作用的名字  
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;servlet-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Simple<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/servlet-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>  
      //servlet程序所在包.类名称  
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;servlet-class<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>net.hialex.Servlet.SimpleServlet<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/servlet-class<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>       
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/servlet<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>               
//servlet映射地址               
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;servlet-mapping<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>  
     //在web.xml文件内部起作用的名字，与上面的名字一致  
     <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;servlet-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Simple<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/servlet-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>  
     //具体映射路径，前面必须要有一个/  
     <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;url-pattern<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>/demo<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/url-pattern<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>       
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/servlet-mapping<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

</ul>
</li>
</ul>
</li>
<li>注意：
<ul>
<li>在编译servlet时可能会遇到找不到servlet包的问题，这是因为servlet为JDK的扩展包，所以在使用时需要指定classpath</li>
<li><strong>若不指定classpath可以将servlet.jar文件拷贝到JSK安装路径下的jre\lib\ext下</strong></li>
</ul>
</li>
<li>结论：<strong>在Tomcat中，存在servlet的全部库文件（%Tomcat_HOME%\lib\servlet-api.jar）</strong></li>
</ol>
<p>HttpServlet类</p>
<ul>
<li>继承自GenericServlet类并增加了doGet()、doPost()等七个方法</li>
<li><strong>doGet()方法：当客户端发送get请求时就调用doGet()方法，HTTP缺省的就是Get</strong></li>
<li><strong>doPost()方法：当客户端发送HTTP请求调用POST方法调用doPost()方法</strong></li>
</ul>
<p>对于一个基本的Servlet程序必须注意以下几点：</p>
<ol>
<li><strong>首先一定要符合Servlet程序的开发框架</strong></li>
<li><strong>配置web.xml文件</strong></li>
<li><strong>Servlet的缺点是不适合输出大量的HTML代码</strong></li>
</ol>
<p><span id="more-62"></span></p>
<p>多个名称映射同一Servlet：</p>
<ul>
<li>&lt;servlet-mapping&gt;<br />
&lt;servlet-name&gt;simple&lt;/servlet-name&gt;<br />
&lt;url-pattern&gt;/demo&lt;/url-pattern&gt;<br />
&lt;/servlet-mapping&gt;</li>
<li>&lt;servlet-mapping&gt;<br />
&lt;servlet-name&gt;simple&lt;/servlet-name&gt;<br />
&lt;url-pattern&gt;/demo.simple&lt;/url-pattern&gt;<br />
&lt;/servlet-mapping&gt;</li>
<li>&lt;servlet-mapping&gt;<br />
&lt;servlet-name&gt;simple&lt;/servlet-name&gt;<br />
&lt;url-pattern&gt;/demo/*&lt;/url-pattern&gt;<br />
&lt;/servlet-mapping&gt;</li>
<li>只要保持&lt;servlet-name&gt;一致，就可以有多个&lt;servlet-mapping&gt;<br />
只要映射名称为*，就可以任意匹配</li>
<li>在servlet中解决路径问题的唯一原则：在地址栏中拼凑出完整路径</li>
</ul>
<p>Servlet接口与JSP对象比较：</p>
<blockquote>
<table border="1" cellspacing="0" cellpadding="2" width="516">
<tbody>
<tr>
<td width="192" valign="top">Servlet接口</td>
<td width="322" valign="top">JSP内置对象</td>
</tr>
<tr>
<td width="192" valign="top">HttpServletRequest</td>
<td width="322" valign="top">request</td>
</tr>
<tr>
<td width="192" valign="top">HttpServletResponse</td>
<td width="322" valign="top">response</td>
</tr>
<tr>
<td width="192" valign="top">ServletConfig</td>
<td width="322" valign="top">config</td>
</tr>
<tr>
<td width="192" valign="top">HttpSession</td>
<td width="322" valign="top">Session，通过request.getSession()取得</td>
</tr>
<tr>
<td width="192" valign="top">ServletContext</td>
<td width="322" valign="top">application<br />
取得两种方式（对应两种初始化方法）<br />
1.无参数初始化方法<br />
2.如果针对有参构造[init(ServletConfig)]则必须通过Config对象取得</td>
</tr>
</tbody>
</table>
</blockquote>
<p><a href="http://17fav.com/?url=http%3A%2F%2Fwww.hialex.net%2F2008%2F04%2Fservlet-note.html&title=Servlet%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1" title="用 17fav 收藏和分享本文"><img src="http://17fav.com/i/bookmark.gif" alt="17fav 收藏本文" /></a></p><h3  class="related_post_title">Related Posts</h3><ul class="related_post"><li>2008-02-13 -- <a href="http://www.hialex.net/2008/02/jsp-syntax-g.html" title="(八)JSP基本语法G&#8211;其他对象">(八)JSP基本语法G&#8211;其他对象</a> (0)</li><li>2008-03-15 -- <a href="http://www.hialex.net/2008/03/javabean-syntax-b.html" title="JavaBean语法(下)">JavaBean语法(下)</a> (0)</li><li>2008-03-01 -- <a href="http://www.hialex.net/2008/03/usage-of-jdbc.html" title="(九)JDBC操作技术">(九)JDBC操作技术</a> (0)</li><li>2008-03-01 -- <a href="http://www.hialex.net/2008/03/javabean-syntax-a.html" title="JavaBean语法(上)">JavaBean语法(上)</a> (0)</li><li>2008-02-02 -- <a href="http://www.hialex.net/2008/02/jsp-syntax-f.html" title="(七)JSP基本语法&#8211;session对象">(七)JSP基本语法&#8211;session对象</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.hialex.net/2008/04/servlet-note.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>(八)JSP基本语法G&#8211;其他对象</title>
		<link>http://www.hialex.net/2008/02/jsp-syntax-g.html</link>
		<comments>http://www.hialex.net/2008/02/jsp-syntax-g.html#comments</comments>
		<pubDate>Wed, 13 Feb 2008 13:30:37 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[config]]></category>
		<category><![CDATA[jsp]]></category>
		<category><![CDATA[安全性]]></category>
		<category><![CDATA[语法]]></category>

		<guid isPermaLink="false">http://www.hialex.net/2008/02/jsp-syntax-g.html</guid>
		<description><![CDATA[过年期间对自己要求有点放松了，好几天没看视频了，今天开始照常！
Application对象：属于javax.servlet.ServletContext，其作用是保存公共信息。

属性操作的三个方法：setAttribute(),getAttribute(),removeAttribute()
得到工作目录的真实路径的方法：Public String getRealPath(String path)此方法需要一个参数“/”
Application是整个服务器中保持的只有一个实例的对象
在实际开发中经常使用getServletContext()去代替Application

out对象：

out对象主要用于动态的向客户端输出数据
在JSP开发中要尽量少使用此对象
开发中的原则：

HTML代码与JAVA代码分离，如果要输出，尽量使用表达式输出（&#60;%=%&#62;），要用（&#60;%=%&#62;）完全代替（&#60;%Out.print();%&#62;）



JSP安全性及Config对象的应用：

JSP安全性：

在J2EE中安全性的体现：工作目录的WEB-INF文件夹

将页面放置到WEB-INF文件夹中下则页面无法被发现，提高了安全性，欲访问WEB-INF文件夹下的文件可以通过修改WEB.XML文件
web.xml文件：属于整个WEB站点的配置文件
在web.xml文件中添加下列代码：

        &#60;servlet&#62;
        //在web.xml文件内部起作用与servlet-mapping关联
        &#60;servlet-name&#62;test&#60;/servlet-name&#62;
        //找到jsp文件的路径，此路径一般保存在WEB-INF之中
        &#60;jsp-file&#62;/WEB-INF/demo.jsp&#60;/jsp-file&#62;
&#60;/servlet&#62;
&#60;servlet-mapping&#62;
        //在web.xml文件内部起作用与servlet-name完全一致
    [...]]]></description>
			<content:encoded><![CDATA[<p>过年期间对自己要求有点放松了，好几天没看视频了，今天开始照常！</p>
<p>Application对象：属于javax.servlet.ServletContext，其<strong>作用是保存公共信息</strong>。</p>
<ul>
<li>属性操作的三个方法：<strong>setAttribute(),getAttribute(),removeAttribute()</strong></li>
<li>得到工作目录的真实路径的方法：Public String getRealPath(String path)此方法需要一个参数“/”</li>
<li>Application是整个服务器中保持的只有一个实例的对象</li>
<li><strong>在实际开发中经常使用getServletContext()去代替Application</strong></li>
</ul>
<p>out对象：</p>
<ul>
<li>out对象主要用于动态的向客户端输出数据</li>
<li><strong>在JSP开发中要尽量少使用此对象</strong></li>
<li>开发中的原则：
<ul>
<li><strong>HTML代码与JAVA代码分离，如果要输出，尽量使用表达式输出（&lt;%=%&gt;），要用（&lt;%=%&gt;）完全代替（&lt;%Out.print();%&gt;）</strong></li>
</ul>
</li>
</ul>
<p><strong>JSP安全性及Config对象的应用</strong>：</p>
<ul>
<li><strong>JSP安全性</strong>：
<ul>
<li>在J2EE中安全性的体现：工作目录的WEB-INF文件夹
<ul>
<li>将页面放置到WEB-INF文件夹中下则页面无法被发现，提高了安全性，欲访问WEB-INF文件夹下的文件可以通过修改WEB.XML文件</li>
<li>web.xml文件：属于整个WEB站点的配置文件</li>
<li>在web.xml文件中添加下列代码：

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;">        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;servlet<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        //在web.xml文件内部起作用与servlet-mapping关联
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;servlet-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>test<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/servlet-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        //找到jsp文件的路径，此路径一般保存在WEB-INF之中
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;jsp-file<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>/WEB-INF/demo.jsp<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/jsp-file<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/servlet<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;servlet-mapping<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        //在web.xml文件内部起作用与servlet-name完全一致
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;servlet-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>test<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/servlet-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        //网页上输入的实际路径地址
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;url-pattern<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>/demo<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/url-pattern<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/servlet-mapping<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

</li>
<li><strong>当此文件被修改之后必须重新启动服务器&#8211;因为服务器在启动时会读取此文件</strong></li>
</ul>
</li>
</ul>
</li>
<li>Config对象：属于javax.servlet.ServletConfig
<ul>
<li><strong>要使用config对象的前提：JSP页面必须在web.xml中进行配置</strong></li>
<li>在&lt;servlet&gt;与&lt;/servlet&gt;中添加下列代码：<strong>&lt;init-param&gt;<br />
&lt;param-name&gt;参数名&lt;/param-name&gt;<br />
&lt;param-value&gt;参数值&lt;/param-value&gt;<br />
&lt;/init-param&gt;</strong></li>
<li>&lt;init-param&gt;&lt;/init-param&gt; 可添加多个</li>
<li><strong>如果要取得这些初始化参数，必须通过映射名称进行访问jsp页面</strong>，才可以取得初始化参数，通过config对象来取得
<ul>
<li>取得初始化参数的方法:<strong>public String getInitParameter(String name)</strong>，通过这中功能可以将数据库连接的一些信息写在配置文件之中</li>
<li>常用的方法还有:public Enumeration getInitParameterNames()取得全部配置参数</li>
</ul>
</li>
</ul>
</li>
</ul>
<p><a href="http://17fav.com/?url=http%3A%2F%2Fwww.hialex.net%2F2008%2F02%2Fjsp-syntax-g.html&title=%28%E5%85%AB%29JSP%E5%9F%BA%E6%9C%AC%E8%AF%AD%E6%B3%95G--%E5%85%B6%E4%BB%96%E5%AF%B9%E8%B1%A1" title="用 17fav 收藏和分享本文"><img src="http://17fav.com/i/bookmark.gif" alt="17fav 收藏本文" /></a></p><h3  class="related_post_title">Related Posts</h3><ul class="related_post"><li>2008-04-02 -- <a href="http://www.hialex.net/2008/04/servlet-note.html" title="Servlet程序设计">Servlet程序设计</a> (0)</li><li>2008-03-15 -- <a href="http://www.hialex.net/2008/03/javabean-syntax-b.html" title="JavaBean语法(下)">JavaBean语法(下)</a> (0)</li><li>2008-03-01 -- <a href="http://www.hialex.net/2008/03/usage-of-jdbc.html" title="(九)JDBC操作技术">(九)JDBC操作技术</a> (0)</li><li>2008-03-01 -- <a href="http://www.hialex.net/2008/03/javabean-syntax-a.html" title="JavaBean语法(上)">JavaBean语法(上)</a> (0)</li><li>2008-02-02 -- <a href="http://www.hialex.net/2008/02/jsp-syntax-f.html" title="(七)JSP基本语法&#8211;session对象">(七)JSP基本语法&#8211;session对象</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.hialex.net/2008/02/jsp-syntax-g.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>(三)JSP基本语法B</title>
		<link>http://www.hialex.net/2008/01/jsp-syntax-b.html</link>
		<comments>http://www.hialex.net/2008/01/jsp-syntax-b.html#comments</comments>
		<pubDate>Sat, 12 Jan 2008 08:36:58 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[include]]></category>
		<category><![CDATA[jsp]]></category>
		<category><![CDATA[指令]]></category>
		<category><![CDATA[标签指令]]></category>
		<category><![CDATA[语法]]></category>

		<guid isPermaLink="false">http://www.hialex.net/2008/01/jsp-syntax-b.html</guid>
		<description><![CDATA[include指令： &#60;%@include file=&#34;uri&#34;%&#62; e.g.&#60;%@include file=&#34;hello.jsp&#34;%&#62;

include命令可以包含任意文件，它包含的是文件的内容。但是在一个jsp页面中，只能有一组&#60;html&#62;、&#60;head&#62;、&#60;body&#62;

原则：在开发中被包含的文件只写显示部分的HTML代码，主体代码不要出现 


包含的时候不区分文件名称、后缀，只是将内容包含进来 

包含语句&#60;jsp:include&#62;：

&#60;jsp:include page=&#34;uri&#34; /&#62; 或者 &#60;jsp:include page=&#34;uri&#34; flush=&#34;true&#34;&#62;&#60;jsp:param name=&#34;参数名称&#34; value=&#34;参数值&#34; /&#62;&#60;/jsp:include&#62;

若使用后一种语句可以向被包含的页面之中传递参数，如果是传递参数，则所包含的页面必须是JSP页面，必须是动态页面 
若包含的是JSP页面，则自动进行动态处理，若是非动态文件，则只是将内容包含进来 


这种语句与HTML代码相似，称为标签指令形式

标签指令形式代码必须完结 &#60;/XXX:XXXX&#62; 
标签指令形式代码必须写在Scriptlet（&#60;%&#8230;..%&#62;）之外 



&#60;%@include file=&#34;uri&#34;%&#62;：只是将页面的内容静态的包含进来，若被包含的页面有JSP代码，则执行此代码而不管被包含的页面文件后缀如何&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; //&#160; 先包含后处理
&#60;jsp:include page=&#34;uri&#34;/&#62;：若被包含的文件内容是静态的，则直接将内容包含进来，但是不处理，如果被包含的页面是动态的，则先执行，再把结果包含进来显示&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; //&#160;&#160; 先处理后包含
两者的区别：

&#60;%@include%&#62; ：所有代码包含进来，一起进行处理，把所有代码合在一起 
&#60;jsp:include&#62;：所有代码分别处理，处理完成之后再将代码的显示结果（处理结果）包含进来 

跳转语句&#60;jsp:forward&#62;

&#60;jsp:forward page=&#34;uri&#34; /&#62; 或者 &#60;jsp:forward page=&#34;uri&#34; flush=&#34;true&#34;&#62;&#60;jsp:param name=&#34;参数名称&#34; value=&#34;参数值&#34; /&#62;&#60;/jsp:forward&#62; 
&#60;jsp:forward&#62;也属于标签指令，使用也必须完结 
&#60;jsp:forward&#62;语句属于无条件跳转语句 
使用此跳转语句，页面内容是进行了跳转，但是地址栏的地址没有变化，如果没有变化，意味着用户的请求依然没有改变，即&#60;jsp:forward&#62;属于服务器跳转 

Related Posts2008-04-02 -- Servlet程序设计 (0)2008-02-13 -- (八)JSP基本语法G&#8211;其他对象 (0)2008-01-11 -- (二)JSP基本语法A (0)2008-03-15 -- JavaBean语法(下) [...]]]></description>
			<content:encoded><![CDATA[<p>include指令： &lt;%@include file=<span class="str">&quot;uri&quot;</span>%&gt; e.g.&lt;%@include file=<span class="str">&quot;hello.jsp&quot;</span>%&gt;</p>
<ol>
<li>include命令可以包含任意文件，它包含的是文件的内容。<strong>但是在一个jsp页面中，只能有一组&lt;html&gt;、&lt;head&gt;、&lt;body&gt;</strong>
<ul>
<li>原则：在开发中被包含的文件只写显示部分的HTML代码，主体代码不要出现 </li>
</ul>
</li>
<li>包含的时候不区分文件名称、后缀，只是将内容包含进来 </li>
</ol>
<p>包含语句&lt;jsp:include&gt;：</p>
<ol>
<li>&lt;jsp:include page=<span class="str">&quot;uri&quot; /</span>&gt; 或者 &lt;jsp:include page=<span class="str">&quot;uri&quot;</span> flush=<span class="str">&quot;true&quot;</span>&gt;&lt;jsp:param name=<span class="str">&quot;参数名称&quot;</span> <span class="kwrd">value</span>=<span class="str">&quot;参数值&quot;</span> /&gt;&lt;/jsp:include&gt;
<ul>
<li>若使用后一种语句可以向被包含的页面之中传递参数，如果是传递参数，则所包含的页面必须是JSP页面，必须是动态页面 </li>
<li>若包含的是JSP页面，则自动进行动态处理，若是非动态文件，则只是将内容包含进来 </li>
</ul>
</li>
<li>这种语句与HTML代码相似，称为<strong>标签指令形式</strong>
<ul>
<li><strong>标签指令形式代码必须完结 &lt;/XXX:XXXX&gt;</strong> </li>
<li><strong>标签指令形式代码必须写在Scriptlet（&lt;%&#8230;..%&gt;）之外</strong> </li>
</ul>
</li>
</ol>
<p>&lt;%@include file=&quot;uri&quot;%&gt;：只是将页面的内容静态的包含进来，若被包含的页面有JSP代码，则执行此代码而不管被包含的页面文件后缀如何&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; //&#160; <strong>先包含后处理</strong></p>
<p>&lt;jsp:include page=&quot;uri&quot;/&gt;：若被包含的文件内容是静态的，则直接将内容包含进来，但是不处理，如果被包含的页面是动态的，则先执行，再把结果包含进来显示&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; //&#160;&#160; <strong>先处理后包含</strong></p>
<p><strong>两者的区别</strong>：</p>
<ul>
<li>&lt;%@include%&gt; ：<strong>所有代码包含进来，一起进行处理，把所有代码合在一起</strong> </li>
<li>&lt;jsp:include&gt;：<strong>所有代码分别处理，处理完成之后再将代码的显示结果（处理结果）包含进来</strong> </li>
</ul>
<p>跳转语句&lt;jsp:forward&gt;</p>
<ol>
<li>&lt;jsp:forward page=<span class="str">&quot;uri&quot; /</span>&gt; 或者 &lt;jsp:forward page=<span class="str">&quot;uri&quot;</span> flush=<span class="str">&quot;true&quot;</span>&gt;&lt;jsp:param name=<span class="str">&quot;参数名称&quot;</span> <span class="kwrd">value</span>=<span class="str">&quot;参数值&quot;</span> /&gt;&lt;/jsp:forward&gt; </li>
<li>&lt;jsp:forward&gt;也属于标签指令，使用也必须完结 </li>
<li><strong>&lt;jsp:forward&gt;语句属于无条件跳转语句</strong> </li>
<li>使用此跳转语句，页面内容是进行了跳转，但是地址栏的地址没有变化，如果没有变化，意味着用户的请求依然没有改变，即<strong>&lt;jsp:forward&gt;属于服务器跳转</strong> </li>
</ol>
<p><a href="http://17fav.com/?url=http%3A%2F%2Fwww.hialex.net%2F2008%2F01%2Fjsp-syntax-b.html&title=%28%E4%B8%89%29JSP%E5%9F%BA%E6%9C%AC%E8%AF%AD%E6%B3%95B" title="用 17fav 收藏和分享本文"><img src="http://17fav.com/i/bookmark.gif" alt="17fav 收藏本文" /></a></p><h3  class="related_post_title">Related Posts</h3><ul class="related_post"><li>2008-04-02 -- <a href="http://www.hialex.net/2008/04/servlet-note.html" title="Servlet程序设计">Servlet程序设计</a> (0)</li><li>2008-02-13 -- <a href="http://www.hialex.net/2008/02/jsp-syntax-g.html" title="(八)JSP基本语法G&#8211;其他对象">(八)JSP基本语法G&#8211;其他对象</a> (0)</li><li>2008-01-11 -- <a href="http://www.hialex.net/2008/01/jsp-syntax-a.html" title="(二)JSP基本语法A">(二)JSP基本语法A</a> (0)</li><li>2008-03-15 -- <a href="http://www.hialex.net/2008/03/javabean-syntax-b.html" title="JavaBean语法(下)">JavaBean语法(下)</a> (0)</li><li>2008-03-01 -- <a href="http://www.hialex.net/2008/03/usage-of-jdbc.html" title="(九)JDBC操作技术">(九)JDBC操作技术</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.hialex.net/2008/01/jsp-syntax-b.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>(二)JSP基本语法A</title>
		<link>http://www.hialex.net/2008/01/jsp-syntax-a.html</link>
		<comments>http://www.hialex.net/2008/01/jsp-syntax-a.html#comments</comments>
		<pubDate>Fri, 11 Jan 2008 08:35:08 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[jsp]]></category>
		<category><![CDATA[page指令]]></category>
		<category><![CDATA[语法]]></category>

		<guid isPermaLink="false">http://www.hialex.net/2008/01/jsp-syntax-a.html</guid>
		<description><![CDATA[注释类型：

显示注释：HTML注释，此注释会发送到客户端 
隐式注释：JAVA注释，此注释不会发送到客户端 

在JSP中可以使用三种注释：

&#60;!&#8211; 注释内容 &#8211;&#62; 
&#60;% //JAVA注释内容 %&#62;或者&#60;% /*多行内容*/ %&#62; 
&#60;%&#8211; JSP注释 &#8211;%&#62; 

声明语句：格式：&#60;%!声明语句%&#62;&#160; 举例：&#60;%!String text=&#34;Hello World!&#34; %&#62;

用此种方式可以声明全局变量、类、方法 

表达式：格式：&#60;%=表达式%&#62;，用来输出值，类似于out.println();

在实际开发中尽量少用out.println();输出而用&#60;%=表达式%&#62;，这么做的目的是达到HTML和JAVA代码的分离 

脚本代码（Scriptlet）：格式：&#60;%代码段%&#62;，用来写具体的JAVA代码或者声明局部变量

&#60;%!&#160; %&#62;和&#60;%&#160; %&#62;声明的变量区别是：&#60;%!&#160; %&#62;只赋一次值 

JSP是一种动态的WEB程序，必须有交互功能
HTML与服务器的交互主要途径是表单
JSP接受传递过来的参数的方法：String str=request.getParameter(&#34;参数名称&#34;);
所有的JSP代码最终都是拼凑出来的，不是固定的，由WEB容器拼凑出来的
form表单的提交方式：

post：提交的内容不会被显示，没有长度要求 
get： 提交的内容会被显示出来，地址栏的长度只有4K~5K，大数据则无法显示 

范例：打印一个表格，行数和列数由用户输入
 

parameter.html&#160; :
&#60;coolcode lang=&#34;html&#34;&#62;
&#60;html&#62;     &#60;head&#62;&#60;title&#62;请输入参数&#60;/title&#62;&#60;/head&#62;      &#60;body&#62;      &#160;&#160;&#160; 请输入表格的行数和列数：      &#160;&#160;&#160; [...]]]></description>
			<content:encoded><![CDATA[<p>注释类型：</p>
<ul>
<li>显示注释：HTML注释，此注释<strong>会</strong>发送到客户端 </li>
<li>隐式注释：JAVA注释，此注释<strong>不会</strong>发送到客户端 </li>
</ul>
<p>在JSP中可以使用三种注释：</p>
<ol>
<li>&lt;!&#8211; 注释内容 &#8211;&gt; </li>
<li>&lt;% //JAVA注释内容 %&gt;或者&lt;% /*多行内容*/ %&gt; </li>
<li>&lt;%&#8211; JSP注释 &#8211;%&gt; </li>
</ol>
<p>声明语句：格式：&lt;%!声明语句%&gt;&#160; 举例：&lt;%!String text=&quot;Hello World!&quot; %&gt;</p>
<ul>
<li>用此种方式可以声明<strong>全局变量</strong>、类、方法 </li>
</ul>
<p>表达式：格式：&lt;%=表达式%&gt;，用来输出值，类似于out.println();</p>
<ul>
<li><strong>在实际开发中尽量少用out.println();输出而用&lt;%=表达式%&gt;，这么做的目的是达到HTML和JAVA代码的分离</strong> </li>
</ul>
<p><strong>脚本代码（Scriptlet）</strong>：格式：&lt;%代码段%&gt;，用来写具体的JAVA代码或者声明<strong>局部变量</strong></p>
<ul>
<li><strong>&lt;%!&#160; %&gt;和&lt;%&#160; %&gt;声明的变量区别是：&lt;%!&#160; %&gt;只赋一次值</strong> </li>
</ul>
<p>JSP是一种动态的WEB程序，必须有交互功能</p>
<p>HTML与服务器的交互主要途径是表单</p>
<p>JSP接受传递过来的参数的方法：<strong>String str=request.getParameter(&quot;参数名称&quot;);</strong></p>
<p>所有的JSP代码最终都是拼凑出来的，不是固定的，由WEB容器拼凑出来的</p>
<p>form表单的提交方式：</p>
<ul>
<li>post：提交的内容不会被显示，没有长度要求 </li>
<li>get： 提交的内容会被显示出来，地址栏的长度只有4K~5K，大数据则无法显示 </li>
</ul>
<p><em>范例：打印一个表格，行数和列数由用户输入</em></p>
<p> <span id="more-49"></span>
</p>
<blockquote><p>parameter.html&#160; :</p>
<p>&lt;coolcode lang=&quot;html&quot;&gt;</p>
<p>&lt;html&gt;     <br />&lt;head&gt;&lt;title&gt;请输入参数&lt;/title&gt;&lt;/head&gt;      <br />&lt;body&gt;      <br />&#160;&#160;&#160; 请输入表格的行数和列数：      <br />&#160;&#160;&#160; &lt;form action=&quot;printTable.jsp&quot; method=&quot;post&quot;&gt;      <br />&#160;&#160;&#160; 行数：&lt;input type=&quot;text&quot; name=&quot;rownum&quot;&gt;&lt;br /&gt;      <br />&#160;&#160;&#160; 列数：&lt;input type=&quot;text&quot; name=&quot;colnum&quot;&gt;&lt;br /&gt;      <br />&#160;&#160;&#160; &lt;input type=&quot;submit&quot; value=&quot;打印&quot;&gt;      <br />&#160;&#160;&#160; &lt;/form&gt;      <br />&lt;/body&gt;      <br />&lt;/html&gt; </p>
<p>&lt;/coolcode&gt;</p>
</blockquote>
<blockquote></blockquote>
<blockquote><p>printTable.jsp</p>
<p>&lt;coolcode lang=&quot;html&quot;&gt;</p>
<p>&lt;html&gt;     <br />&lt;head&gt;&lt;title&gt;打印表格&lt;/title&gt;&lt;/head&gt;      <br />&lt;body&gt;      <br />&#160;&#160;&#160; &lt;%      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; //接受参数      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; String t_row=request.getParameter(&quot;rownum&quot;);      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; String t_col=request.getParameter(&quot;colnum&quot;); </p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; int row = 0;     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; int col = 0;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; try{      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; row = Integer.parseInt(t_row);      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; col = Integer.parseInt(t_col);      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; catch(Exception e)      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {      <br />&#160;&#160;&#160; %&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; input error!      <br />&#160;&#160;&#160; &lt;%      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }      <br />&#160;&#160;&#160; %&gt;      <br />&lt;table border=&quot;1&quot;&gt;      <br />&lt;%      <br />&#160;&#160;&#160; for(int i=0;i&lt;row;i++)      <br />&#160;&#160;&#160; {      <br />%&gt;&#160;&#160;&#160; <br />&#160;&#160;&#160; &lt;tr&gt;      <br />&lt;%      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; for(int j=0;j&lt;col;j++)      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {      <br />%&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;td&gt;&lt;%=i*j%&gt;&lt;/td&gt;      <br />&lt;%      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }&#160;&#160;&#160; <br />%&gt;      <br />&#160;&#160;&#160; &lt;/tr&gt;      <br />&lt;%      <br />&#160;&#160;&#160; }      <br />%&gt;      <br />&lt;/table&gt;      <br />&lt;/body&gt;      <br />&lt;/html&gt; </p>
<p>&lt;/coolcode&gt;</p>
</blockquote>
<p><a href="http://www.hialex.net/images/post/JSPA_14074/1.jpg"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="182" alt="1" src="http://www.hialex.net/images/post/JSPA_14074/1_thumb.jpg" width="141" border="0" /></a> <a href="http://www.hialex.net/images/post/JSPA_14074/2.jpg"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="182" alt="2" src="http://www.hialex.net/images/post/JSPA_14074/2_thumb.jpg" width="141" border="0" /></a> <a href="http://www.hialex.net/images/post/JSPA_14074/3.jpg"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="181" alt="3" src="http://www.hialex.net/images/post/JSPA_14074/3_thumb.jpg" width="140" border="0" /></a> <a href="http://www.hialex.net/images/post/JSPA_14074/4.jpg"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="180" alt="4" src="http://www.hialex.net/images/post/JSPA_14074/4_thumb.jpg" width="140" border="0" /></a> </p>
<p><strong>page指令</strong></p>
<ul>
<li>要想在jsp中正常显示中文必须在JSP中置顶编码方式
<ul>
<li>&lt;coolcode lang=&quot;java&quot;&gt;&lt;%@page contetType=&quot;text/html;charset=gb2312&quot;%&gt;&lt;/coolcode&gt;</li>
</ul>
</li>
<li>还可以用page指令导入包
<ul>
<li>&lt;coolcode lang=&quot;java&quot;&gt;&lt;%@page import=&quot;java.util.*,java.io.*&quot;%&gt;&lt;/coolcode&gt;</li>
</ul>
</li>
</ul>
<p><a href="http://17fav.com/?url=http%3A%2F%2Fwww.hialex.net%2F2008%2F01%2Fjsp-syntax-a.html&title=%28%E4%BA%8C%29JSP%E5%9F%BA%E6%9C%AC%E8%AF%AD%E6%B3%95A" title="用 17fav 收藏和分享本文"><img src="http://17fav.com/i/bookmark.gif" alt="17fav 收藏本文" /></a></p><h3  class="related_post_title">Related Posts</h3><ul class="related_post"><li>2008-04-02 -- <a href="http://www.hialex.net/2008/04/servlet-note.html" title="Servlet程序设计">Servlet程序设计</a> (0)</li><li>2008-02-13 -- <a href="http://www.hialex.net/2008/02/jsp-syntax-g.html" title="(八)JSP基本语法G&#8211;其他对象">(八)JSP基本语法G&#8211;其他对象</a> (0)</li><li>2008-01-12 -- <a href="http://www.hialex.net/2008/01/jsp-syntax-b.html" title="(三)JSP基本语法B">(三)JSP基本语法B</a> (0)</li><li>2008-03-15 -- <a href="http://www.hialex.net/2008/03/javabean-syntax-b.html" title="JavaBean语法(下)">JavaBean语法(下)</a> (0)</li><li>2008-03-01 -- <a href="http://www.hialex.net/2008/03/usage-of-jdbc.html" title="(九)JDBC操作技术">(九)JDBC操作技术</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.hialex.net/2008/01/jsp-syntax-a.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
