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>
");
   }
%>
原文地址:https://www.cnblogs.com/tanlei-sxs/p/10056375.html