zoukankan      html  css  js  c++  java
  • JSP学习1

    Web应用程序能以项目的形式存在或打包为war文件。不管哪一种形势,都可以将其复制到webapps目录下进行部署。例如,有一个Web应用程序名为myApp的Web项目,将该Web应用程序文件夹复制到webapps下,启动Tomcat后,通过URL就可以访问

    http://localhost:8080/myApp/xxx.jsp

    其中xxx.jsp为项目下的文件。

    注意:

    在运行程序之前,关闭Eclipse Java EE之外的Tomcat服务器。因为如果Eclipse中启动Tomcat,外部的Tomcat服务器也处于Started状态,就会出现错误对话框,提示8080端口已经被占用。这时需要关闭外部的Tomcat服务器。如果不是这种原因造成的,可以尝试修改Tomcat的端口号。

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>我的第n个JSP程序!!!</title>
    </head>
    <body>
    <%! int number=1; %>
    <%!
    	public int count(){
    	return number++;
    }
    %>
    <%
    	out.println("Hello jSP");
    	out.println();
    %>
    <br>
    <%= "您是第"+count()+"个客人!" %>
    <br>
    </body>
    </html>
    

      注意编码设置为UTF-8。

    隐藏注释:

    JSP语法格式:

    <%--  comment  --%>

    <%-- 注释 --%>

    隐藏注释标记的字符在JSP编译时会被忽略,它希望隐藏或者注释JSP程序时是非常有用的。JSP编译器不会对<%-- 和 --%>之间的语句进行编译,且该语句也不会显示在客户端的浏览器中。

    HTML注释:

    又称显式注释,用户能够在客户端看到注释内容。

    <!--   注释语句[<%=表达式%>] -->

    JSP声明:

    <%!  int a=1; %><%!  int b; %><%!  int String s="test"; %>

    可以一次声明多个变量和方法,只要以;结尾即可。

    声明必须以;结尾

    可以直接使用在<%@ page %>中被包含进来的已经声明的变量和方法,不需要对它们重新进行声明。

    一个声明仅在一个页面中有效,对于一些在每个页面都用得到的声明,最好把他们写成一个单独的文件,然后用<%@ include %>或 <jsp:include >语句把该文件及文件中的各个元素包含进来。

    JSP的变量作用域:

    在<% ... %>声明的变量是JSP的局部变量。

    在<%! ...%>中声明的变量是全局变量,这种变量在整个JSP页面内都有效。因为JSP引擎将JSP页面编译成Java文件时,将这些变量作为类的成员变量,这些变量的内存空间直到服务器关闭后才释放。

    区别:

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    <% int count=0; %>
    <%! int number=0; %>
    <%
        count++;
        number++;
    %>
    <%= ""+count+"" %><br>
    <%= ""+number+"" %>
    </body>
    </html>

     全局变量始终在增大,而局部变量始终是1.

    方法的声明:

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    <p>请输入圆的半径:</p>
    <form action="dec_method.jsp" method="get" name="from">
    <input type="text" name="radius" >
    <input type="submit" name="submit" value="开始计算">
    </form>
    <%!
        double area(double r){
        return Math.PI*r*r;
    }
        double perimeter(double r){
            return Math.PI*2*r;
        }
    %>
    
    <%
        String str= request.getParameter("radius");
    if(str!=null){
        try{
            double r;
            r = Double.parseDouble(str);
    %>
    <p>圆的面积是:<%= area(r) %></p>
    <p>圆的周长是:<%= perimeter(r) %></p>
    <% 
        }catch(Exception e){
            out.print(e.getMessage());
        }
    }
    
    %>
    
    
    </body>
    </html>

     脚本代码:

    JSP中的脚本代码是一段Java程序代码,这些代码在请求处理时在服务器端按顺序执行,脚本代码中如果使用了out对象,则会在客户端显示输出内容。

    脚本代码的语法格式如下:

    <%  code fragment  %>

    <%@page import="java.util.Calendar"%>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>混合静态HTML代码和Scriptlet</title>
    </head>
    <body>
    <%
        if(Calendar.getInstance().get(Calendar.AM_PM)==Calendar.AM){
            %>
            早上好!
            <%
        }else{
            %>
            下午好!
            <%
        }
    %>
    
    </body>
    </html>

     表达式:

    JSP能够计算表达式,并向JSP页面输出表达式的运算结果。其语法格式如下:

    <%=          %>

    表达式元素表示的是一个在Java脚本语言中被定义的java表达式,在运行后被自动转换成字符串,然后被插入到表达式所在JSP文件的位置显示。表达式在运行时进行计算(页面被请求时),因此可以访问和请求有关的全部信息。

    <%= new java.util.Date() %>//输出当前系统的时间。

    <%= "Hello" %>//输出Hello

    <%= 1+3+5 %>//输出9

    在JSP页面使用表达式注意:

    1、不能用分号(;)作为表达式的结束符。

    2、可能由多个表达式组成,这些表达式的顺序是从左到右。

    表达式实际上是被转换成out.println()方法中的内容。如<%= "hello world!" %>相当于JSP页面中的  <% out.println("hello world!");  %>

    JSP指令元素:

      JSP的指令元素描述了JSP页面转换成JSP容器所能执行的Java代码的控制信息,如JSP页面所使用的语言、导入的Java类、网页的编码方式和指定错误处理页面等。·  

    JSP的指令元素独立于JSP页面接受的任何请求,且不产生任何页面输出信息。

    例如,用户常在每个JSP页头上加上一个指定页面语言和编码方式的指令:

    <%@ page  language="java" contentType="text/html;charset=gb2312"  %>

      page指令

      page指令用来定义JSP页面中的全局属性,它描述与页面相关的一些信息。page指令的位置一般在JSP页面的开头,放在其他位置也是可行的,在一个JSP页面中可以有多个page指令。

    1、language="java"

    2、import=",,,"

    <%@ page import="java.util.Vector,java.util.Calendar"     %>  一次性导入多个,用逗号隔开。

    3、session="true | false"

      设定客户是否需要HTTP Session,如果为true,那么session是有用的;如果为false,那么用户就不能使用session对象,以及定义scope=session的<jsp:useBean>元素。默认值是true。

    4、buffer = "none   | 8kb  |sizekb"

      buffer的大小被out对象用于处理执行后的JSP对客户端的输出,默认是8KB。如果设置为none,则不使用缓冲区。

      例如,设置缓冲区为64KB .

    <%@ page buffer  = " 64KB" %>

      禁用缓冲区:

    <%@ page buffer= "none" %>

    5、errorPage="relativeURL"

    设置处理异常事件的JSP文件。

    6、isErrorPage  = "true | false"

      isErrorPage属性设置此JSP页面是否为错误处理页面,默认值为false。如果设置为true,则表明在该页面中可以获取异常对象exception,并通过该对象取得从发生错误的页面传出的错误信息,获取错误信息的常用方法如下:

    <%= exception.getMessage()   %>

    7、contentType="mimeType[;charset=characterSet]" | "text/html"

      contentType属性指定返回浏览器的内容类型,可用的属性值有text/plain(纯文本页面)、text/html(纯文本的HTML页面)、text/xml(XML页面)、appliication/x-msexcel(Excel文件)、application/msword(Word文件)。

    contentType可以同时指定返回页面中所使用的字符编码,如charset=gbk等。

    <%@ page contentType="text/html;charset=gb2312"   %>

    注:无论把<%@ page %>指令放在JSP文件的那个地方,它的作用范围都是整个JSP页面。

    设置错误页面:

    pageError.jsp程序中设置了出错页面为errorPage="error.jsp",在页面运行过程中一旦遇到异常,就自动跳转到error.jsp中处理异常。在error.jsp中利用isErrorPage="true"将其设置为错误页面,可以在该页面中处理捕获到的异常。

    pageError.jsp代码如下:

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    <%@ page errorPage="error.jsp" %>
    </head>
    <body>
    Test for using page;
    <%
    int i=0;
    
    %>
    <%= 10/i %>
    </body>
    </html>
    error.jsp
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8" isErrorPage="true"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>出错原因</title>
    </head>
    <body>
    <font color="red">
    <h2>出错啦!</h2>
    Message:<%= exception.getMessage() %><br>
    </font>
    </body>
    </html>

  • 相关阅读:
    母函数
    匈牙利算法
    AC 自动机
    MFC Invalidate闪屏问题
    求解x=a^b(mod m)
    Millar_rabin和Pollard_Rho
    图论入门算法理解
    Numpy 库常用函数大全
    Linux 系统中“|”管道的作用是什么
    win10 万能修复公式
  • 原文地址:https://www.cnblogs.com/hengx/p/14124251.html
Copyright © 2011-2022 走看看