JSP入门

JSP入门

基本概述

     JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它是由Sun公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。

     它实现了Html语法中的java扩展(以 <%, %>形式)。JSPServlet一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。

JSP技术使用Java编程语言编写类XMLtagsscriptlets,来封装产生动态网页的处理逻辑。网页还能通过tagsscriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 JSP(Java Server Pages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。

     Java ServletJSP的技术基础,而且大型的Web应用程序的开发需要Java ServletJSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。

PS:其实就是JSP是用来处理界面,Servlet用来处理业务逻辑,Java用来处理数据访问,这样来实现MVC分层,至于具体实现可以参考我的另一篇博客《Web MVC模式实现》。

参考文档:http://tomcat.apache.org/tomcat-7.0-doc/jspapi/index.html?index-all.html

参考文档:http://www.runoob.com/jsp/jsp-tutorial.html

 

运行原理图

JSP入门_第1张图片

PSJSP运行之后会在Tomcat服务器主目录下的work目录中生成相应的.java.class文件

其格式为tomcat主目录名\work\Catalina\主机名\应用名\org\apache\jsp\文件名

注意:.java文件和.class文件是在一起的


JSP页面如何被翻译成Servlet

html->servlet

  <body>
    This is my JSP page. <br>
  </body>

  out.write("  <body>\r\n");
  out.write("    This is my JSP page. <br>\r\n");
  out.write("  </body>\r\n");

jsp标签内代码->servlet

  <%
    int i=90;
    int j=i+90;
  %>
  <%
    out.println("j="+j);
  %>

public void _jspService(HttpServletRequest request, HttpServletResponse response)
        throws java.io.IOException, ServletException {
    // 隐式对象创建
	int i=90;
    int j=i+90;
    // 代码块
    // out.write(“j=” + j + “\r\n”);
    // 代码块

}

jsp元素

指令元素

    用于从jsp发送一个信息到容器,比如设置全局变量,文字编码,引入包等等

 

1page指令

基本用法:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"  contentType="text/html; charset=utf-8"%>

 

常用的属性:

import,contentType,pageEncoding,errorPage

 

import 引入外部包

contentType 设置HTTP响应contentType属性

pageEncoding 指定Servlet引擎以什么方式从jsp->servlet,并指定网页以什么方式显示

errorPage 设置错误页面

 

2include指令

基本用法:

<%@ include file=”文件路径” %>

 

PS:路径是相对路径,通过该方式引入的JSP文件不能包含唯一HTML标签,比如<head><body>等,并且该方式并不会将引入的JSP文件翻译成Servlet然后编译,也就是说只会产生一个servlet文件,因此这种引入方式也叫作静态引入。

 

3taglib指令

参考博客:http://www.biaodianfu.com/jsp-taglib.html

 

脚本元素

1、声明

基本语法:

<%! int i=90; %>

<%! public int getResult(int a,int b){return a+b;}%>

 

2、小脚本

<% java 代码 %>

 

3、表达式

<%=表达式 %>

<%=78 %>

 

PS

声明相当于定义Java的成员变量和成员方法。

小脚本相当于定义jsp service方法中的局部变量。

表达式相当于out.write(表达式);,其作用是将表达式的返回值输出到页面中

 

 

动作元素

该文档写的非常详细:http://www.runoob.com/jsp/jsp-actions.html

 

PS

<%@include file=文件路径静态引入

<jsp:include page=文件路径></jsp:include> 动态引入

两者的区别是前者把两个jsp翻译成一个Servlet,所以被引入的文件不包含<html><body>之类的唯一HTML标记,后者是将两个jsp分别翻译然后将一个页面的结果引入到另一个页面,所以被引入的jsp包含有<html><body>也可以

<jsp:forward page=文件路径>也是常用的动作元素,用于把请求转发到另外的页面。

 

JSP注释

    JSP注释有两种方式,一种是<%-- 要注释的内容  --%>,另一种是<!-- 要注释的内容 -->

PS:前者是不会在HTML源码中看到并且不会被编译,叫做JSP注释,后者能在HTML源码中看到,但是不会显示在HTML页面中,叫做HTML注释。建议统一用JSP注释,这样既节省内存也安全。


JSP内置对象

    JSP隐式对象是JSP容器为每个页面提供的Java对象,开发者可以直接使用它们而不用显式声明。JSP隐式对象也被称为预定义变量。JSP一共支持九大隐式对象。

对象名

类型

作用域

request请求对象

javax.servlet.ServletRequest

Request

response响应对象

javax.servlet.ServletResponse

Page

pageContext页面上下文对象

javax.servlet.jsp.PageContext

Page

session会话对象

javax.servlet.http.HttpSession

Session

out输出对象

javax.servlet.jsp.JspWriter

Page

config配置对象

javax.servlet.ServletConfig

Page

page页面对象

java.lang.Object 相当于this

Page

exception异常对象

java.lang.Throwable

Page

application应用程序对象

javax.servlet.ServletContext

Application

 

 

小结

1jsp运行在服务器

2jsp(java server page) 

3jsp的基础是servlet(相当于对servlet进行一个包装)

4jsp是综合技术 jsp=html+css+javascript+java代码+jsp标签(servlet)

5jsp无需配置.直接使用,如果修改了jsp文件,不需要重新reload web应用.

6jsp如何方法 http://ip:8080/web应用名/jsp路径

7jsp是一种动态网页技术

8、为了防止直接访问JSP文件,可以将JSP文件放入WEB-INF目录下,然后通过<jsp:forward>WebRoot目录下跳转当访问文件。

 

 

PS:上述只是JSP语法和使用的一部分知识,其他内容可以参考API文档和教程,已在基本概述中给出。

 

----------参考《韩顺平.细说JSP


你可能感兴趣的:(jsp,入门,参考)