zoukankan      html  css  js  c++  java
  • JSP的一些笔记

    •JSP脚本:可以包含任何可执行的Java代码。Java代码可通过JSP脚本嵌入html页面。
      格式:<% java代码 %>
    eg:
      <body>
        <h3>计算学生的平均成绩:</h3>    <br>  
        <%
        double math=90.0, chinese=85, english=72, average;
          average=(math+chinese+english)/3;
          out.print(average);
       %>  
      </body>
    
    •JSP表达式:提供了一种输出表达式值的简单方法,语法格式如<%=java表达式%>。
    eg:
    <body>
    	<%double r=10.0; %>
    	<%=3.14*r*r %>
    </body>
    
     
    •JSP声明用于声明变量和方法。声明时不需要定义类。
      格式:<%! 变量和方法声明 %>
    JSP声明变量代码片段:
    <%! 
    	String  name="liu";
    	int  i=0;
    %>
    
    JSP声明方式还可以定义一个方法,定义方法格式如下:
    <%!
    	返回值数据类型 函数名(数据类型  参数, …) {
    		语句;
    		return (返回值);
    	}
    %>
    
     
     
     
    •JSP注释用于标注在程序开发过程中开发提示,不会输出到客户端。
     
      1 输出注释

        输出注释的语法规则如下:

        <!-- 注释内容[<%=表达式%>]-->

        这种注释和HTML文件中的注释很相似,唯一不同的是,前者可以在这个注释中用表达式,以便动态生成不同内容的注释。这些注释的内容在客户端是可见的,即能够返回到客户端html文件中。如下面一段注释:

      <!-- 现在时间是:<%=(new java.util.Date()).toLocaleString() %> -->

      2. 隐藏注释

        隐藏注释的语法规则如下:

        <%-- 注释内容--%>

        隐藏注释与输出注释不同的是,这个注释虽然写在JSP程序中,但是不会发送给用户,即在返回到客户端html的文件中不可见

    JSP中的三个编译指令:

      格式:<%@ 指令名称 属性1="属性值1" 属性2="属性值2" … 属性n="属性值n"%>

      •JSP的编译指令是通知JSP引擎的消息,它不是直接生成输出。
      •编译指令都有默认值,因此开发人员无须为每个指令设置值。
        –page:该指令定义当前页面的属性
    page指令用于设置JSP界面的属性,有以下的属性可以指定:language,import,isErrorPage,errorPage,buffer
      
    <%@ page language = "Java" import ="java.util.*" buffer = "8kb" 
    errorPage="error.jsp" isErrorPage="false"%>
    
    <%@ page
        [ language="java" ]
      [ extends="package.class" ]
      [ import="{package.class | package.*}, ..." ]
      [ session="true | false" ]
      [ buffer="none | 8kb | sizekb" ]
      [ autoFlush="true | false" ]
      [ isThreadSafe="true | false" ]
      [ info="text" ]
      [ errorPage="relativeURL" ]
      [ contentType=“mimeType [ ;charset=characterSet ]” | “text/html ”]
      [ isErrorPage="true | false" ]
    %>
        –include:用于指定包含另一个页面
    include 指令用于在运行时将 HTML文件或 JSP页面嵌入到另一个 JSP页面
        格式:<%@ include file="" %>
    include既可以包含静态文件,也可以包含jsp页面。会将包含的页面加入页面,融合成一个页面。因此,被包含的页面不需要是一个完整的页面。
        –taglib:用于定义和访问自定义标签
    taglib 指令的作用是在JSP页面中,将标签库描述符文件引入到该页面中,并设置前缀。从而,利用标签前缀去使用标签库表述文件中的标签。
        格式:<%@ taglib uri=“tagLibraryURI” prefix=“tagPrefix” %>
          其中,uri=“tagLibraryURI”指明标签库文件存放位置。prefix="tagPrefix"则表示该标签使用时的前缀。JSP页面在根目录中搜索tagLibraryURI 标签库描述符文件,而tagPrefix前缀将mytaglib中的标签嵌入JSP页面.
     
     
     
    JSP中的7个动作指令:
      动作指令是运行时的脚本动作,通常可替换为JSP脚本;
      JSP的7个动作指令:
        –jsp:forward
    jsp:forward执行页面转向,将请求的处理交给下一个页面
    <jsp:forward>的语法规则如下:

    <jsp:forward page=" { relativeurl  | <%= expression %> } " />

    或者为:

    <jsp:forward page=" { relativeurl  | <%= expression %> } " >

    <jsp:param name="paramName" value="{ paramValue | <%= expression %>}" />

    </jsp:forward>

    <jsp:forward>标记只有一个属性page。page属性指定要转发资源的相对URL。page的值既可以直接给出,也可以在请求时动态计算。

        –jsp:include
    jsp:include  将静态的HTML、服务器程序的输出结果及来自其他JSP的输出结果包括到当前页面中。
    –也可以在标签内向引用页面传递param
        
    <jsp:include page=" { relativeurl  | <%= expression %> } " flush="true" />
    或者为:
    <jsp:include page=" { relativeurl  | <%= expression %> } " flush="true" >
        <jsp:param name="paramName" value="{ paramValue | <%= expression %>}" />
    </jsp:include>
    
    l包含普通的HTML文件:<jsp:include page=" hello.html " />
    l使用相对路径:<jsp:include page=" /index.html " />
    l包含动态JSP文件:<jsp:include page=" scripts/login.jsp " />
    l向被包含的程序传递参数:

    <jsp:include page=" scripts/login.jsp " >

         <jsp:param name="usename" value="zheng" />

     </jsp:include>

        –jsp:param(jsp:param 用于传递参数,必须与其他支持参数的标签一起使用)
          
    <jsp:param>的语法规则如下:

    <jsp:param name="paramName" value="paramValue"/>

    例如:

    <jsp:param name= "username" value ="liu"/>

    <jsp:param>通常与<jsp:include>、<jsp:forward>或<jsp:plugin>等一起使用。在独立于其他操作使用时,<jsp:param>动作没有作用。

        –jsp:useBean
    jsp:useBean创建一个JavaBean实例
    –<jsp:useBean id="name" class="classname" scope="page | request | session | application" />
     
    –id:设置JavaBean的名称,利用此id,可以识别在同一个JSP程序中使用不同的JavaBean组件实例。
    –class:指定JavaBean对应的Java类名,查找该JavaBean路径。
    –scope属性值:
    page:仅在本页面有效
    request:仅本次请求有效
    session:在本次session有效
    application:在本应用内一直有效
     
    useBean可与setProperty,getProperty一起使用
    eg:
    java文件:

    public class simpleBean

    {

        private String name = null;

        private int age = 0;

        public simpleBean()

        {

        }

        public String getName()

        {

            return name;

        }

        public void setName(String username)

        {

            name = username;

        }

    }

    jsp:

    <html> 

        <head>

            <title> 在 JSP 中使用 JavaBean </title>

            <jsp:useBean id="BeanId" class=“simpleBean" scope="application"/>

            <jsp:setProperty  name="BeanId" property="name"  value="Andrew"/>

            <jsp:setProperty name="BeanId" property="age"   value="25"/>

        </head>

        <body>

            姓名:<jsp:getProperty name="BeanId"   property="name"/> <br/>

            年龄:<jsp:getProperty name="BeanId"   property="age"/>

        </body>

    </html>

        –jsp:setProperty(设置javaBean实例的属性值,用法见上面的例子)
        –jsp:getProperty(获取javaBean实例的属性值,用法见上面的例子)
        –jsp:plugin(jsp:plugin用于下载JavaBean或Applet到客户端执行,目前很少用。)
     
     
     
    JSP中9个内置对象:
    javax.servlet.http:HttpServletRequest的实例,该对象封装了一次请求,客户端请求参数都被封装在该对象里。这是一个常用的对象,获取客户端请求参数使用该对象。
      
      输入输出对象:request,response,out;
      作用域对象:pageContext,application,session
      Servlet对象:page,config;
      错误对象:exception
     
    1.输入输出对象:
      控制页面的输入和输出
      访问与所有请求和响应有关的数据
      输入和输出对象包括request、response 和out
     
    2.request对象:
      用来表示并存储客户端对服务器的请求,使用http协议。
          javax.servlet.http:HttpServletRequest的实例,该对象封装了一次请求,客户端请求参数都被封装在该对象里。这是一个常用的对象,获取客户端请求参数使用该对象。
      常用方法:
      •getParameter(String paramNarne)
      •getParameterValues(String paramName)
      •setAttribute(String atttibuteName, Object attributeValue)
      •getAttribute(String attributeName)
      •setCharacterEncoding(String env)
     
      

    request其他主要的方法:

      getCookies():返回客户端的Cookie对象,结果是一个Cookie数组。
      getHeader(String name):获得HTTP协议定义的传送文件头信息,例如,request.getHeader(“User-Agent”)含义为:返回客户端浏览器版本号、类型。
      getServerPort():获得服务器的端口号。
      getServerName():获得服务器的名称。
      getRemoteAddr():获得客户端的IP地址。
      getRemoteHost():获得客户端的主机名,如果该方法失败,则返回客户端的IP地址。
      getProtocol():获得客户端向服务器端传送数据所依据的协议名称。
      lgetMethod():获得客户端向服务器端传送数据的方法。
      getServletPath():获得客户端所请求的脚本文件的文件路径。
      getCharacterEncoding ():获得请求中的字符编码方式。
      getSession(Boolean create):返回和当前客户端请求相关联的HttpSession对象。
      getQuertString():返回查询字符串,该字符串由客户端以get方法向服务器端传送。
      getRequestURI():获得发出请求字符串的客户端地址。
      lgetContentType():获取客户端请求的MIME类型。如果无法得到该请求的MIME类型,则返回-1。
     
    3.response对象:
      处理jsp生成的响应,并将响应发送给客户端,实现javax.servlet.http.HttpServletResponse接口,可对客户的请求做出动态的响应,向客户端发送数据,如Cookies、HTTP文件的头信息等。通常response对象常用于重定向,而输出响应使用out 对象。
      常用方法:void sendRedirect(String str)
     

    response对象其他主要方法:

      addHeader(String name,String value):添加HTTP头文件,该头文件将会传到客户端去,如果有同名的头文件存在,那么原来的头文件会被覆盖。
      setHeader(String name,String value):设定指定名字的HTTP文件头的值,如果该值存在,那么它将会被新的值覆盖。
      containsHeader(String name):判断指定名字的HTTP文件头是否存在,并返回布尔值。
      flushBuffer():强制将当前缓冲区的内容发送到客户端。
      addCookie(Cookie cookie):添加一个Cookie对象,用来保存客户端的用户信息,可以用request对象的getCookies()方法获得这个Cookie。
     
    4.out对象
      表示输出流, 通常用于在页面上输出变量值和常量
      在使用输出表达式的地方,可通过out对象达到同样的效果
      javax.servlet.jsp.JspWriter类的实例
      使用write()、print()和println()方法
     
     
    内置对象的作用域包括page、request、session和application
    作用域通信对象包括session、application 和pageContext
    5.session对象
      
      该对象代表一次会话。从客户端浏览器与站点建立连接起,开始会话,直到关闭浏览器时结束会话。
      javax.servlet.http.HttpSession接口的实例,session中存储有关用户会话的所有信息。
      
    session对象最常用的方法有:
    –void setAttribute(String name, Object value)
    –以键/值的方式,将一个对象的值存放到session 中
    –void getAttribute(String name)
    –根据名称去获取session中存放对象的值
     

    session对象其他方法如下:

      getAttributeNames():返回session对象存储的每一个属性对象,结果集是一个Enumeration类的实例。
      getCreationTime():返回session对象被创建的时间,单位为毫秒。
      getId():返回session对象在服务器端的编号。
      getLastAccessedTime():返回当前session对象最后一次被操作的时间,单位为毫秒。
      getMaxInactiveInterval ():获取sessionn对象的生存时间,单位为秒。
      setMaxInactiveInterval (int interval):设置session对象的有效时间(超时时间),单位为秒。在网站的实际应用中,30分钟的有效时间对某些网站来说有些太短,但对有些网站来说又有些太长。
      removeAttribute(String name):删除指定属性的属性名和属性值。
        invalidate():注销当前的session对象。
     
    servlet
    1.简介
      •Servlet在本质上就是Java类,编写Servlet需要遵循Java的基本语法。
      •但是与一般Java类不同的是,Servlet是只能运行在服务器端的Java类,必需遵循特殊的规范,在运行的过程中有自己的生命周期
      •Servlet是和HTTP协议是紧密联系的,所以使用Servlet几乎可以处理HTTP协议各个方面的内容。
     
    2.servlet工作原理 
      •Servlet容器是Web服务器或应用程序服务器的一部分,主要任务是管理servlet的生命周期;web服务器,它是来管理和部署 web应用的。
      •Servlet是运行在服务器端的程序,Servlet容器负责把请求传递给Servlet,并把结果返回给客户,维护Servlet的运行状态
      •Servlet容器负责处理servlet的并发访问,当多个用户请求同一个Servlet,Servlet容器负责为每个用户启动一个线程,这些线程的运行和销毁由Servlet容器负责
     
    3.servlet生命周期
    • l初始化:当某Servlet被第一次请求时,Servlet引擎调用init()方法初始化这个Servlet
    • l提供服务:当Servlet对象被创建后,调用service()方法为用户提供服务
    • l销毁:调用Servlet的destroy()方法把内存中Servlet对象销毁
     
    4.servlet开发配置
      •两个基本Java Servlet 开发包:javax.servlet和javax.servlet.http
      –javax.servlet提供了用来控制Servlet生命周期所需的类和接口,是编写Servlet必需要实现的。
      –javax.servlet.http提供了处理与HTTP相关操作的类和接口
     
      •编写一个Servlet必需直接或间接实现Servlet接口
      –实际开发中,继承 javax.servlet.http.HttpServlet或者javax.servlet.GenericServlet
     
    (待续)
  • 相关阅读:
    HDU3516 树的构造
    poj1160 post office
    poj1260 pearls
    POJ 3709 K-Anonymous Sequence
    HDU2829
    HDU 3480 division
    HDU3507 print artical
    HDU2490 parade
    HDU3530 子序列
    HDU3415
  • 原文地址:https://www.cnblogs.com/zhouQing17/p/4357443.html
Copyright © 2011-2022 走看看