Java for Web学习笔记(十一):JSP(1)何为JSP
来源:互联网 发布:数据库设计方面的书籍 编辑:程序博客网 时间:2024/06/04 19:56
使用JSP
通java代码来编写HTML很是繁琐,通过使用JSTL(JSP标准标签库,JavaServer Pages™ Standard Tag Library),通过JSP来更便携的实现。对JSP的支持Maven中包括javax.servlet.jsp-api、javax.servlet.jsp.jstl-api。Jstl在2011年12月发布1.2.1后就没有再更新,如需要更全面的功能,引入org.glassfish.web提供的jar包。Maven的pom.xml代码片段如下:
<dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>javax.servlet.jsp-api</artifactId> <version>2.3.2-b02</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet.jsp.jstl</groupId> <artifactId>javax.servlet.jsp.jstl-api</artifactId> <version>1.2.1</version> <scope>compile</scope> </dependency><dependency> <groupId>org.glassfish.web</groupId> <artifactId>javax.servlet.jsp.jstl</artifactId> <version>1.2.2</version> <scope>compile</scope> <exclusions> <exclusion> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> </exclusion> <exclusion> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> </exclusion> <exclusion> <groupId>javax.servlet.jsp.jstl</groupId> <artifactId>jstl-api</artifactId> </exclusion> </exclusions> </dependency>
什么是JSP
下面是一个JSP的例子:
<%@ page contentType="text/html;charset=UTF-8" language="java" %><!DOCTYPE html><html><head><title>Chapter 04 Application</title></head><body><h2>Hello World!</h2></body></html>
JSP提供了脚本和java混合方式。例子是index.jsp。第一行的相关语法后面学习。其中contentType="text/html;charset=UTF-8"设置了HTTP应答中的header:Content-Type,即response.setContentType("text/html;charset=UTF-8");
JSP是“syntactic sugar”(英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语。指的是,在计算机语言中添加某种语法,这种语法能使程序员更方便的使用语言开发程序,同时增强程序代码的可读性,避免出错的机会;但是这种语法对语言的功能并没有影响。)JSP编译器将jsp转换为Java代码,每一个jsp作为一个servlet。如果在tomcat中部署,位于tomcat目录下work\Catalina\localhost\<your app>,如果使用Eclipse调测,则在缺省项目目录\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\chapter04\org\apache\jsp,里面有index_jsp.java和index_jsp.class。
我们打开index_jsp.java,看到:
public final class index_jsp extends org.apache.jasper.runtime.HttpJspBase implements org.apache.jasper.runtime.JspSourceDependent,org.apache.jasper.runtime.JspSourceImports { … … public void _jspService(final javax.servlet.http.HttpServletRequest request,final javax.servlet.http.HttpServletResponse response) throws java.io.IOException, javax.servlet.ServletException { …… } … …}
不同的web container翻译java code会有所不同,tomcat使用的是org.apache.jasper类,但是都会符合jsp的标准,虽然代码看起来不同,但是运行的结果是一样的。
Tomcat会在第一次访问jsp时进行翻译和编译,因此第一次运行可能会引发性能问题。有不少web container提供在部署时预编译的选项,这会增加部署时间,根据需求选择。
相关链接: 我的Professional Java for Web Applications相关文章
- Java for Web学习笔记(十一):JSP(1)何为JSP
- Java for Web学习笔记(十五):JSP(5)在JSP中使用Java吗?
- Java for Web学习笔记(十四):JSP(4)JSP Tag
- Java for Web学习笔记(十二):JSP(2)Tag:directive,declaration,scriptlet,expression
- Java for Web学习笔记(十三):JSP(3)Directive
- Java for Web学习笔记(十六):JSP(6)jspx
- Java.Web学习笔记 JSP
- java web学习笔记(Jsp内置对象)
- JSP学习笔记(1)-JSP简介
- Java web学习笔记一:JSP学习
- JSP&Servlet学习笔记(1)Web开发基础理论
- Java开发学习笔记之十一:开始JSP之旅
- Java Web学习笔记之JSP基础
- 【Java Web 学习笔记】JSP基础语法
- 【Java Web 学习笔记】JSP内置对象
- Java Web学习笔记——JSP
- JSP学习笔记(1)
- JSP学习笔记(1)
- AngularJS Promise
- 冒泡排序,选择排序,快速排序,堆排序与二分查找算法
- 关于myeclipse 2015 破解 integrity check error 问题
- GoLang操作Mysql
- HTTP协议与状态链接解决方案cookie,session的关系
- Java for Web学习笔记(十一):JSP(1)何为JSP
- VMWare下CentOS的网络设置
- JabRef中文手册
- Android Studio的自动Import功能
- Dlib机器学习库学习系列1----编译安装
- android 开发基本工具的配置
- 产销存报表直接在MB5B上取数
- Java并发编程系列之五:happens-before原则
- main(int argc, char*argv[])函数里参数的含义