JSP 学习笔记


tomcat 配置

1. 部署 Web 应用
部署 Web 应用到某个目录后,要在 CATALINA_HOME/conf/server.xml 文件中添加相应条目并重启 tomcat 才能生效。比如将一个 Web 应用项目 aaa 部署到了 D:/aaa,则需要在上述 server.xml 文件中 <Host> 与 </Host> 之间添加如下条目:
<Context path="/aaa" reloadable="true" docBase="D:/aaa" workDir="D:/aaa/work" />
从理论上说,workDir 可以是任意目录,但一般都选择项目根目录(在这里是 D:/aaa)下的 work 目录作为工作目录。

2. 开启 servlet 调用器
servlet 调用器允许在不修改 Web 应用的 WEB-INF/web.xml 文件的情况下运行 servlet。你只需要将 servlet 复制到 WEB-INF/classes 目录中,使用 http:// host/servlet/ ServletName (默认 Web 应用)或 http:// host / webAppPrefix/servlet/ ServletName (定制 Web 应用)就可以使用它。
如果要启用 servlet 调用器,需要将 CATALINA_HOME/conf/web.xml 文件中下面的 servlet 和 servlet-mapping 元素取消注释:
    <servlet>
        <servlet-name>invoker</servlet-name>
        <servlet-class>
          org.apache.catalina.servlets.InvokerServlet
        </servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
        </init-param>
        <load-on-startup>2</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>invoker</servlet-name>
        <url-pattern>/servlet/*</url-pattern>
    </servlet-mapping>


推荐和建议

1. 将被包含的页面放在 WEB-INF 目录中,这样可以防止客户出于偶然访问到这些页面(这种情况可能会比较糟糕,因为它们一般都不是完整的 HTML 文档)。

2. 不要将完整的 HTML 文档作为被包含页面,这样可以防止客户得到的最终结果中两次出现诸如 DOCTYPE, BODY 等标签。

3. 如果被包含页面中没有定义主页面要用到的字段或方法,也没有设置主页面的响应报头,则应该采用 jsp:include 动作而不是 include 指令,这样就没有注意点1中所提到的维护麻烦了。


注意点

1. 如果使用了 include 指令,并且更改了被包含的页面,则必须更新所有包含该页面的主页面的修改日期,否则客户端下一次请求时服务器并不会重新载入主页面并将其转换成新的 servlet,这样你的更改就无法在客户端得到体现。
   推荐做法:在主页面的 include 指令前加上一行 JSP 注释,在注释里写上被包含页面的修改日期,每次修改被包含的页面时,相应修改该日期。
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
这一点非常需要注意,如果没注意到这点会让你觉得莫名其妙,不知道服务器为什么不听话:)

2. applet 的 class 文件必须放在浏览器能够访问的目录中,不能放在 WEB-INF/classes 目录中,因为使用它们的是浏览器,而不是服务器。

3. 在 servlet 通过 forward 方法将请求转发给服务器上的其他页面时,如果目的页面使用图像和样式表的相对 URL,那么这些 URL 应该相对于 servlet 的 URL 或服务器的根目录,不能相对于目的页面的实际位置,因为服务器是相对于初始 URL 进行解释的。针对这个问题,最简单的解决方案是给出图像和样式表文件在服务器上的完整路径。

4. 如果需要读取请求参数并将其值显示在生成的页面中,则必须过滤出那些特殊的 HTML 字符(如 " < > & 等)。不这样做可能会导致输出中缺失某些部分,或者某些部分格式错误。




参考:
(美)Marty Hall,Larry Brown 著,赵学良 译,Servlet与JSP核心编程(第2版),清华大学出版社
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值