zoukankan      html  css  js  c++  java
  • Jsp

    Jsp的执行过程 

      客户端

      Servlet容器(服务器)

      *.jsp

    Jsp常用标签

    Jsp指令

    指令格式

    使用<%@ %>标记

    常用指令

      page指令用来定义一个JSP页面的相关属性

    //脚本语言        language="java" 
        //字符集编码    contentType="text/html; charset=UTF-8"
        //             pageEncoding="UTF-8"
        //自动刷新       autoFlush="true"
        //错误页面       errorPage="index_err.jsp"
        //导包        import="java.util.Date"
        //过滤注释信息     trimDirectiveWhitespaces="true"

     web.xml里指定错误页面

    <jsp-config>
         <jsp-property-group>
          <url-pattern>*.jsp</url-pattern>
           <page-encoding>
          UTF-8
          </page-encoding>
          <trim-directive-whitespaces>
          true
          </trim-directive-whitespaces>
         </jsp-property-group>
      </jsp-config>

     include指令用于在JSP中静态包含一个文件(包含的内容和jsp页面翻译成一个java文件) 

     <%@ include file="includeURL" %>

         taglib指令在JSP页面中使用标签时使用

    <%@ taglib prefix="prefix_name"  url="tag_uri"     tagdir="tag_dir"%>
    
    

    JSP脚本

    声明(类似于在java类中定义字段)

    <%! int age=23;  %>

    小脚本

    <% for(int i=0;i<age;i++){%>
    
          <li><%=i+1%></li>
    
    <%}%>

    表达式

    <%=age%>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%!
     int count=0;
     int add(int a,int b){
         return a+b;
     }
    %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>JSP脚本</title>
    </head>
    <body>
    <% 
     int result=add(5,12);
    %>
    
    count:<%=count %>
    <br>
    result:<%=result %>
    
    </body>
    </html>

    Jsp隐式对象

    不能在声明中使用

      out    通过page指令指定其缓冲区大小

      config   获取JSP初始化数据

      exception    对JSP页面产生的异常进行处理  错误页面中使用

      response    

      page   当前jsp转换成Servlet的实例

    (作用域对象)

      pageContext    提供获取其他隐式对象的方法(getRequest,getOut)   作用域为page时,数据保存在pageContext中(setAttribute)   生命周期最短

      request           作用域为Request,数据保存在request中

      session          作用域为session,数据保存在session中

      Application      作用域为Application,数据保存在Application中(整个运用共享)

    Jsp动作

    Include

    <%@ include file="url"%> 当前文件 翻译(转换)
    <jsp:include page="url"/> 当前页面 请求处理

    forward

    <jsp:forward page="url"/>

    param

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

    通过request的getParameter或getParameterValues获取

    JSP useBean动作

    javaBean

       必须是一个public的java类

      必须包含一个默认(无参)的构造方法

      属性名称第二个字母不能大小(getter,setter方法)

    useBean

    创建一个由id代表的class指定的类的示例并保存至scope指定的作用域

    <jsp:useBean
    
      class="com.tanlei.User"
    
      id="user" scope="page"/>

    setProperty

    配合useBean使用request对象获取的用户数据为属性赋值

    <jsp:setProperty name="user" property="*"/>
    
    <jsp:setProperty name="user" param="name" property="pname"/>

    控制流语句

    JSP提供对Java语言的全面支持。您可以在JSP程序中使用Java API甚至建立Java代码块,包括判断语句和循环语句等等。

    判断语句

    If…else块

    <% if (day == 1 | day == 7) { %>
          <p>今天是周末</p>
    <% } else { %>
          <p>今天不是周末</p>
    <% } %>

    switch…case块,与if…else块有很大的不同,它使用out.println(),并且整个都装在脚本程序的标签中

    <% 
    switch(day) {
    case 0:
       out.println("星期天");
       break;
    case 1:
       out.println("星期一");
       break;
    case 2:
       out.println("星期二");
       break;
    case 3:
       out.println("星期三");
       break;
    case 4:
       out.println("星期四");
       break;
    case 5:
       out.println("星期五");
       break;
    default:
       out.println("星期六");
    }
    %>
    View Code

    循环语句

    在JSP程序中可以使用Java的三个基本循环类型:for,while,和 do…while。

    <%for ( fontSize = 1; fontSize <= 3; fontSize++){ %>
       <font color="green" size="<%= fontSize %>">
        菜鸟教程
       </font><br />
    <%}%>

    将上例改用 while 循环来写:

    <%while ( fontSize <= 3){ %>
       <font color="green" size="<%= fontSize %>">
        菜鸟教程
       </font><br />
    <%fontSize++;%>
    <%}%>

    JSP 读取表单数据

    • getParameter(): 使用 request.getParameter() 方法来获取表单参数的值。

    • getParameterValues(): 获得如checkbox类(名字相同,但值有多个)的数据。 接收数组变量 ,如checkbox类型

    • getParameterNames():该方法可以取得所有变量的名称,该方法返回一个 Enumeration。

    • getInputStream():调用此方法来读取来自客户端的二进制数据流。

    读取所有表单参数

    <%
       Enumeration paramNames = request.getParameterNames();
    
       while(paramNames.hasMoreElements()) {
          String paramName = (String)paramNames.nextElement();
          out.print("<tr><td>" + paramName + "</td>
    ");
          String paramValue = request.getParameter(paramName);
          out.println("<td> " + paramValue + "</td></tr>
    ");
       }
    %>
  • 相关阅读:
    个人总结
    第二次冲刺 10
    第二次冲刺 09
    第二次冲刺 08
    第二次冲刺 07
    团队冲刺第七天
    团队绩效评估
    团队冲刺第六天
    团队冲刺第五天
    团队冲刺第四天
  • 原文地址:https://www.cnblogs.com/tanlei-sxs/p/10056375.html
Copyright © 2011-2022 走看看