1         Jsp基础

1.1           Jsp介绍

JSP(全称Java Server Pages)是一种web动态网页开发技术,通过标签和指令完成用户界面开发和交互操作。它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头以%>结束。具有跨平台(linux和window)、动态嵌入性能好、兼容java Servlet API的特点。

1.2           Jsp运行环境

安装jdk和tomcat,执行startup脚本,启动tomcat服务器。在tomcat根目录下有个\webapps\ROOT文件夹,将jsp文件复制到该文件夹下。在;浏览器中输入如下地址http://localhost:8080/test.jsp。就可以访问该jsp文件。或者在eclipse中"File-->New-->Dynamic Web Project",创建 TomcatTest 项目,关联tomcat服务器。在WebContent文件夹下新建一个test.jsp文件。如果之前调用了startup脚本开启了服务,则先关闭服务器,否则会出现服务启动不了,端口冲突的错误。直接在eclipse中用run on server菜单按钮启动tomcat服务器和程序。

1.3           Jsp服务器响应客户端请求的过程

                       

javabean建立 jsp java怎么创建jsp文件_开发工具

(1)    客户端发起request请求。

(2)    Web服务器识别出这是一个jsp请求,将请求传递给 JSP 引擎。

(3)    Jsp引擎从磁盘中载入jsp文件,转化为.java文件,编译为servlet.class文件。

(4)    调用servlet引擎,载入并执行servlet类,创建实例并执行初始化方法,jsp引擎执行_jspService()方法,servlet产生HTML格式的输出,并且嵌入HTTP response中上交给web服务器。

(5)    Web服务器以静态HTML网页的形式将HTTP response返回到您的浏览器中。

(6)    浏览器产生HTML网页界面。

1.4           Jsp语法

1.4.1            脚本程序

脚本程序包含在<%%>中间,可以包含任意有效的Java语句、变量、方法或表达式。与其等价的XML语句<jsp:scriptlet> 代码片段</jsp:scriptlet>。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>汉字编码格式
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>
Hello World!<br/>
<%
out.println("你的 IP 地址 " + request.getRemoteAddr());//脚本程序
%>
</body>
</html>

1.4.2            Jsp申明

用<%!变量;%>来声明一个或多个变量、方法,供后面的Java代码使用。用分号隔开。

 

JSP声明的语法格式:

<%! declaration; [ declaration; ]+ ... %>

 

或者,您也可以编写与其等价的XML语句,就像下面这样:

<jsp:declaration>

   代码片段

</jsp:declaration>

 

程序示例:

<%! int i = 0; %>

<%! int a, b, c; %>

<%! Circle a = new Circle(2.0); %>

1.4.3            Jsp表达式

用<%=表达式%>来包含一个表达式,表达式不能用分号。

<body>

<p>

   今天的日期是: <%= (new java.util.Date()).toLocaleString()%>

</p>

</body>

1.4.4            Jsp注释

<%-- 注释 --%> JSP注释,注释内容不会被发送至浏览器甚至不会被编译

<!-- 注释 --> HTML注释,通过浏览器查看网页源代码时可以看见注释内容

<\% 代表静态 <%常量

%\> 代表静态 %> 常量

\' 在属性中使用的单引号

\" 在属性中使用的双引号

1.4.5            Jsp三个指令

Jsp有三个指令:page设置属性,include包含文件,taglib指定标签库;JSP指令格式:<%@ directive {attribute=value}* %>(<%@ 指令名称 属性1=“属性值1” 属性2=“属性值2”。。。%>)

(1)   page设置属性

设置页面的属性,例如编码方式,缓冲区大小等

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

buffer

指定out对象使用缓冲区的大小

autoFlush

控制out对象的 缓存区

contentType

指定当前JSP页面的MIME类型和字符编码

errorPage

指定当JSP页面发生异常时需要转向的错误处理页面

isErrorPage

指定当前页面是否可以作为另一个JSP页面的错误处理页面

extends

指定servlet从哪一个类继承

import

导入要使用的Java类

info

定义JSP页面的描述信息

isThreadSafe

指定对JSP页面的访问是否为线程安全

language

定义JSP页面所用的脚本语言,默认是Java

session

指定JSP页面是否使用session

isELIgnored

指定是否执行EL表达式

isScriptingEnabled

确定脚本元素能否被使用


(2)   include包含文件

将其他jsp文件包含进来,实现文件的复用,例如网页的导航栏和页脚信息。

<%@ include file="relativeURL"%>  relativeURL:指向另一个JSP文件或者HTML文件的路径,例如,网址内所有页面均有一个统一风格的导航栏和页脚版权,那么就可以使用该指令将其包含进来。静态包含,在翻译时就把两个文件合并。

(3)   Taglib指令包含标签

JSP API允许用户自定义标签,一个自定义标签库就是自定义标签的集合。

Taglib指令引入一个自定义标签集合的定义,包括库路径、自定义标签。

Taglib指令的语法:

<%@ taglib uri="uri" prefix="prefixOfTag" %>

uri属性确定标签库的位置,prefix属性指定标签库的前缀。

等价的XML语法:

<jsp:directive.taglib uri="uri" prefix="prefixOfTag" />

1.4.6            Jsp动作元素

Jsp动作元素是以xml格式的指令,实现动态地插入文件、重用JavaBean组件、把用户重定向到另外的页面、为Java插件生成HTML代码等功能。

jsp:include

在页面被请求的时候引入一个文件。

jsp:useBean

寻找或者实例化一个JavaBean。  

jsp:setProperty

设置JavaBean的属性。  

jsp:getProperty

输出某个JavaBean的属性。  

jsp:forward

把请求转到一个新的页面。

jsp:plugin

根据浏览器类型为Java插件生成OBJECT或EMBED标记。  

jsp:element

定义动态XML元素

jsp:attribute

设置动态定义的XML元素属性。

jsp:body

设置动态定义的XML元素内容。

jsp:text

在JSP页面和文档中使用写入文本的模板

 

(1)<jsp:include>包含子jsp文件

将子jsp文件包含在主jsp文件中,浏览器访问主jsp文件时,会将主jsp文件转换编译为class文件,然后执行到include动作标识时,将请求转发给子jsp文件,jsp引擎将子jsp文件转换编译为另外一个class文件,执行子class文件后,返回到主class文件中执行后面的代码。Jsp引擎生成了两个class文件。主jsp文件如果不改动,则无需重新编译。子jsp文件如果经常改动,则只重新编译子jsp文件。

而include指令,被包含的文件的内容会原封不动地插入到包含页中使用该指令地位置,然后JSP编译器再对这个合成的文件进行编译,最终编译成的文件只有一个,被包含文件、包含文件中不能有重名的变量或方法。 如果子jsp文件经常改动,则需要重新编译文件。

语法格式如下:

<jsp:include page="相对 URL 地址" flush="true" />

page       包含在页面中的相对URL地址。

flush      布尔属性,定义在包含资源前是否刷新缓存区。

<jsp:include page="date.jsp" flush="true" />

(2)java bean操作

jsp:useBean 动作用来加载一个JavaBean。jsp:setProperty用来设置已经实例化的Bean对象的属性。jsp:getProperty动作提取指定Bean属性的值,转换成字符串,然后输出。这三个动作元素实现javabean的操作。

 

jsp:useBean有三个属性:

class

指定Bean的完整包名。

type

指定将引用该对象变量的类型。

beanName

通过 java.beans.Beans 的 instantiate() 方法指定Bean的名字。

 

jsp:setProperty属性:

name

name属性是必需的。它表示要设置属性的是哪个Bean。

property

property属性是必需的。它表示要设置哪个属性。有一个特殊用法:如果property的值是"*",表示所有名字和Bean属性名字匹配的请求参数都将被传递给相应的属性set方法。  

value

value 属性是可选的。该属性用来指定Bean属性的值。字符串数据会在目标类中通过标准的valueOf方法自动转换成数字、boolean、Boolean、 byte、Byte、char、Character。例如,boolean和Boolean类型的属性值(比如"true")通过 Boolean.valueOf转换,int和Integer类型的属性值(比如"42")通过Integer.valueOf转换。     value和param不能同时使用,但可以使用其中任意一个。

param

param 是可选的。它指定用哪个请求参数作为Bean属性的值。如果当前请求没有参数,则什么事情也不做,系统不会把null传递给Bean属性的set方法。因此,你可以让Bean自己提供默认属性值,只有当请求参数明确指定了新值时才修改默认属性值。

jsp:getProperty属性

name

要检索的Bean属性名称。Bean必须已定义。

property

表示要提取Bean属性的值

 

应用实例

先创建一个java文件如下,编译为class文件。

package com.runoob.main;
public class TestBean {
   private String message = "菜鸟教程";
 
   public String getMessage() {
      return(message);
   }
   public void setMessage(String message) {
      this.message = message;
   }
}

Jsp文件内容

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>
 
<h2>Jsp 使用 JavaBean 实例</h2>
<jsp:useBean id="test" class="com.runoob.main.TestBean" />
 
<jsp:setProperty name="test"
                    property="message"
                    value="菜鸟教程..." />
 
<p>输出信息....</p>
 
<jsp:getProperty name="test" property="message" />
 
</body>
</html>

 

(4)<jsp:forward>跳转

jsp:forward动作把请求转到另外的页面。jsp:forward标记只有一个属性page。语法格式如下所示: <jsp:forward page="相对 URL 地址" />。例如<jsp:forward page="date.jsp" />

(5)jsp:plugin 插件动作

jsp:plugin动作用来根据浏览器的类型,插入通过Java插件 运行Java Applet所必需的OBJECT或EMBED元素。如果需要的插件不存在,它会下载插件,然后执行Java组件。 Java组件可以是一个applet或一个JavaBean。 plugin动作有多个对应HTML元素的属性用于格式化Java 组件。param元素可用于向Applet 或 Bean 传递参数。

 

以下是使用plugin 动作元素的典型实例:

<jsp:plugin type="applet" codebase="dirname" code="MyApplet.class"
                           width="60" height="80">
   <jsp:param name="fontcolor" value="red" />
   <jsp:param name="background" value="black" />
   <jsp:fallback>
      Unable to initialize Java Plugin
   </jsp:fallback>
</jsp:plugin>

 

(6)动态加入xml

<jsp:element> 定义xml元素、 <jsp:attribute>定义xml属性、 <jsp:body>定义元素体,三个动作元素能够动态的插入,动作元素动态定义XML元素。动态是非常重要的,这就意味着XML元素在编译时是动态生成的而非静态。

 

以下实例动态定义了XML元素:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>
<jsp:element name="xmlElement">
<jsp:attribute name="xmlElementAttr">

   属性值

</jsp:attribute>
<jsp:body>
   XML 元素的主体
</jsp:body>
</jsp:element>
</body>
</html>

 

自己编了一个股票监控软件,有如下功能,有兴趣的朋友可以下载;

(1)   个股监测。监测个股实时变化,可以监测个股大单交易、急速拉升和下降、主力入场和出场、股票最高点和最低点提醒。检测到最高点、最低点、主力进场点、主力退场点、急速拉升点、急速下跌点,给出语音或者声音提醒,不用再时刻看着大盘了,给你更多自由的时间;

(2)   大盘监测。监测大盘的走势,采用上证、深证、创业三大指数的综合指数作为大盘走势。并实时监测大盘的最高点和最低点、中间的转折点。

(3)   股票推荐。还能根据历史数据长期或短期走势进行分析,对股市3千多个股票进行分析对比,选出涨势良好的股票,按照增长速度从大到小排序,推荐给你涨势良好的股票;

下载地址:

1.0.3版本(修复大盘指数崩溃缺陷)下载地址:

链接:https://pan.baidu.com/s/1BJcTp-kdniM7VE9K5Kd3vg 提取码:003h