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>
    ");
       }
    %>
  • 相关阅读:
    Maven关于web.xml中Servlet和Servlet映射的问题
    intellij idea的Maven项目运行报程序包找不到的错误
    修改Maven项目默认JDK版本
    刷题15. 3Sum
    刷题11. Container With Most Water
    刷题10. Regular Expression Matching
    刷题5. Longest Palindromic Substring
    刷题4. Median of Two Sorted Arrays
    刷题3. Longest Substring Without Repeating Characters
    刷题2. Add Two Numbers
  • 原文地址:https://www.cnblogs.com/tanlei-sxs/p/10056375.html
Copyright © 2011-2022 走看看