[有书共读]JavaWeb高级编程

JavaWeb高级编程 -- 篇4

使用JSP显示页面内容

JSP是一个混合解决方案,它结合了Java代码和HTML标签。JSP可以包含除了Java代码之外的任何HTML标签、内建JSP标签、自定义JSP标签以及表达式语言。
JSP中的指令标签:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

该指令标签提供了对JSP如何转换、渲染和传输的控制。
指令标签中:特性language将告诉容器JSP中使用的是哪种脚本语言。contentType告诉容器在发送响应时如何设置其中Content-Type头的值。Content-Type头同时包含内容类型和字符编码,以分号隔开。
JSP中除了各种不同的HTML和JSP标签,还有几种独特的结构用于JSP中:

  1. 使用指令
    <%@ 指令 %>
    指令用于指示JSP解释器执行某个操作或者对文件做出假设、导入类、在转换时包含其他JSP或者包含JSP标签库。
  2. 使用声明
    <%! 声明 %>
    用于在JSP Servlet类的范围内声明一些东西,例如定义实例变量、方法或声明标签中的类。这些声明都将自动出现在自动生成的JSP Servlet类中,所以声明中定义的类实际上是JSP Servlet类的内部类。
  3. 使用脚本
    <% 脚本 %>
  4. 使用表达式
    <%= 表达式 %>

无论何时在JSP中包含直接使用类的Java代码,该JSP要么使用完全限定类名,要么在JSP文件中添加一条导入指令。
eg:<%@ page import="java.util.*,java.io.*" %>

包含其它JSP
eg:<%@ include file="/path/to/some/file.jsp" %>
<jsp:include page="/path/to/some/file.jsp" />
前一个是静态方式包含,后一个是动态方式。
在静态方式中,在JSP被转换成Java之前,编译器将使用被包含JSP文件的内容替换include指令。在此之后,合并后的JSP文件将被转换成Java代码并编译。
在动态方式中,被包含的文件将会被单独编译。在运行时,请求将会被临时地重定向到被包含的JSP,再将该JSP的结果输出到响应中,然后再将控制权返还给主JSP页面。
Java方法编译后的字节数目最大不能超过65534字节。
如果希望使用标签库中的标签,需要使用taglib指令引用该标签库:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

特性uri指定了目标标签库所属的URI命名空间,特性prefix定义了用于引用标签库中标签时使用的别名。

<jsp:forward>标签用于将当前JSP正在处理的一些请求转发至其他JSP。
eg:<jsp:forward page="/path/to/some/file.jsp"

使用该标签时,在该标签之前生成的任何响应内容仍然会被发送到客户端浏览器中。任何在此标签之后的代码都将被忽略。

标签<jsp:useBean>在页面中声明一个JavaBean,标签<jsp:getProperty>将从使用<jsp:useBean>声明的bean中获取属性值,标签<jsp:setProperty>将用于设置该实例的属性,标签<jsp:plugin>用于在HTML页面中内嵌Java Applet。

WEB-INF目录中的文件都是禁止通过web访问的。可以将JSP文件添加到该目录中以防止用户通过浏览器访问这些JSP。

使用请求派发器将Servlet中的请求转发给JSP

private void funName(HttpServletRequest re,HttpServletREsponse res)
    throws ServletException,IOException
{
    re.getRequestDispatcher("/WEB-INF/jsp/view/ticketForm.jsp")
        .forward(re,res);
}
#Java##读书笔记#
全部评论

相关推荐

想进开水团喝开水:哦 给我一个 就算你真拿到牛友也会为你开心的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务