JSP(JavaServer Page)是一种动态页面技术,它在java web应用中主要实现表现逻辑。JSP页面是在HTML页面中嵌入JSP元素的动态Web页面,一般来说JSP页面中可以包含的元素有如下:
指令用于向容器提供关于JSP页面的而总体信息。指令有3种类型:
1) import属性,类似于Java程序的import语句,它将指定的类导入到页面中。可以在import属性中导入多个包,包名用逗号分开即可,如下:
<%@ page import = “java.util.*,java.io.*,com.demo.*”%>
2) contentType和pageEncoding属性。contentType属性指定JSP页面输出的MIME类型和字符集,MIME类型的默认值是text/html,字符集的默认值是ISO-8859-1。MIME类型和字符集之间用分号分开:
<%@page contentType=”text/html;charset=ISO-88159-1”%>
pageEncoding属性指定JSP页面JSP页面的字符编码
3) session属性,指定jsp页面是否参加HTTP会话。
4) errorPage与isErrorPage属性。
在页面执行过程中,嵌入在页面中的Java代码可能抛出异常。与一般的java程序一样,在jsp页面中也可以使用try-catch处理异常。然而,jsp规范定义一种更好的方法,它可以是错误厝里代码也主页面diamante分离,从而提高异常处理机智的可重用性。errorPage属性将异常代理给另一个包含错误处理代码的jsp页面。isErrorPage属性表示该页面是否是错误处理页面。
l jsp:include,在当前页面中包含另一个页面的输出。
l jsp:forward,将请求转发到指定的页面。
l jsp:useBean,查找或创建一个JavaBeans对象。
l jsp:setProperty,设置JavaBeans对象的属性值。
l jsp:getProperty,返回JavaBeans对象的属性值。
表达式语言(Expression Language,EL)是jsp 2.0新增加的特性,它是一种可以在jsp页面中使用的简介的数据访问语言。表达式语言以$开头,后面是一对大括号,括号里面是合法的EL表达式。该结构可以出现在JSP页面模板文本中,也可以出现在JSP标签的属性中。
1) 存储隐含对象的引用。
2) 提供了在不同作用域内返回或设置属性的非常便捷的方法。
3) 提供了forward()方法和include()方法实现将请求转发到另一个资源和将一个资源的输出包含到当前页面中的功能。
4) config变量。
5) exception变量,异常对象。它被用阿里进行异常处理。
在jsp页面中有4个作用域对象,它们的类型分别是ServletContext、HttpSession、HttpServletRequest和PageContext,这4个作用域分别称为应用(application)作用域,会话(session)作用域、请求(request)作用域和页面(page)作用域。
Web应用程序与DD文件
web应用程序是一种可以通过Web访问的应用程序。Web应用程序最大的好处是永和很容易访问应用程序。用户只需要有浏览器即可,不需要安装其他任何软件。一个Web应用程序是由完成特定任务的各种Web组件构成的,并通过Web将服务展示给外界。在实际应用中,Web应用程序是由多个Servlet、jsp页面、HTML文件及图像文件等组成的。
Web应用程序驻留在应用服务器上。应用服务器为Web应用程序提供一种简单、可管理的对话系统资源的访问机制。它也提供低级的服务。Web容器仅仅是应用服务器的一部分。除了Web容器外,应用服务器还可能提供其他Java EE组件,如EJB容器、JNDI服务器及JMS服务器等。有多种类型的应用服务器,常用的有Tomcat、Jetty、Resion、JRun、Jboss、Oracle的WebLogic和IBM的WebSphere等。
Web应用程序具有严格定义的目录结构。一个Web应用程序的所有资源被保存在一个结构化的目录中,目录结构是按照资源和文件的位置严格定义的。Tomcat服务器的webapps目录是所有Web应用程序的根目录。
(1) classes目录
classes目录存放支持该Web应用程序的类文件,如Servlet类文件、JavaBeans类文件等。在运行时,容器自动将该目录添加到类路径中。
(2) lib目录
lib目录存放Web应用程序使用的全部jar文件,包括第三方的jar文件。例如,如果一个Servlet使用JDBC连接数据库,JDBC驱动程序jar文件应该放在这里。也可以把应用程序所用到的类文件打包成jar文件放在该目录中。
(3) web.xml文件
每一个Web应用程序都必须有一个Web.xml文件。它包含Web容器运行Web应用程序所需要的信息,如Servlet声明、映射、属性、授权及安全限制等。
Web应用程序中包含多种组件,有些组件可使用注解配置,有些组件需要使用部署描述文件配置。部署描述文件(Deployment Descriptor,DD)可用来初始化Web应用程序的组件。Web容器再启动是读取该文件,对应用程序进行配置。下面是一个简单的部署描述文件Web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>UploadAndDownload</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
DD文件是一个XML文件。该文件的第一行是声明,通过version属性和encoding属性指定XML文件的版本及所使用的字符集。下面所有的内容都包含在<web-app>和</web-app>元素中,它是DD文件的跟元素,其他所有元素都应该在这里对元素内部声明。
在<web-app>元素中指定了5个属性。xmlns属性声明而来web.xml文件命名空间的XML模式文档的位置;xmlns:xsi属性指定了命名空间的实例;xsi:schemaLocation 属性指定了模式的位置;version指定了模式的版本;metadata-complete指定了是否可以在源程序中使用注解,true表示注解无效。对使用Servlet 3.0和JSP 2.2特征的Web应用程序,应该使用上述声明。
<web-app>的常用子元素。
1) 目录匹配。以斜杠“/”开头,以“/*”结尾的形式。<url-pattern>/helloServlet/hello/*</url-pattern>将把任何在Servlet路径中以/helloSevlet/hello/字符串开头的请求都发送到此Servlet实例。
2) 扩展名匹配。以星号“*.”开始,后接一个扩展名。
<servlet-mapping>
<servlet-name>pdfGeneratorServlet</servlet-name>
<url-pattern>*.pdf </url-pattern>
</servlet-mapping>
这个映射将把所有以.pdf结尾的请求发送到pdfGeneratorServlet。
3) 精确匹配。所有其他字符串都作为精确匹配。如
<servlet-mapping>
<servlet-name>reportServlet</servlet-name>
<url-pattern>/report</url-pattern>
</servlet-mapping>
容器把http://www.myserver.com/helloweb/report请求发送给reportServlet。然而不会把请求http://www.myserver.com/helloweb/report/sales发送给reportServlet。
原文:http://www.cnblogs.com/wangfengbin/p/6417227.html