美文网首页
JSP页面元素

JSP页面元素

作者: 正经龙 | 来源:发表于2018-10-13 15:37 被阅读0次

JSP页面语速可分为脚本元素、指令元素与动作元素三种类型

脚本元素:嵌入到jsp页面中的Java代码
指令元素:控制JSP引擎处理特殊代码实现特殊功能
动作元素:连接所要使用的组件
1. JSP指令元素

指令元素形式:

<%@指令名 属性=“属性值”  属性2=“属性值”%>

主要包括page指令 include 指令 taglib指令
下面详细介绍这三种类型的指令

  • Page指令
    page指令用于定于JSP文件中的全局属性,描述了和页面相关的指示
    在一个页面中page指令可以出现多次,但是一个属性只可以出现一次!!
主要格式:
<%@ page language="脚本语言"
extends="类名"
session="true|false"
buffe"none|8kb|自定义缓冲区大小"
info="页面信息"
isThreadSafe="true|false"
isELIgnored="true|false"
import="Java包列表"
pageEncoding="utf-8"%>
  • Include 指令

include 用于在编译JSP的时候插入一个包含文件。包含的过程是静态的,包含的文件可以是HTML\JSP\JAVA等

<%@ include  file = "URL"%>
file的属性值是相对与jsp文件的url,一般来说是网路服务器的根目录
  • taglib指令

taglib指令用于指示JSP页面使用的标签库

<%@ taglib prefix = "tagPrefix" uri="tagURL"%>
prefix 属性标示自定义标签的前缀,uri属性指定描述标签库位置的url
JSP脚本元素

JSP脚本元素是用来插入JAVA代码的,这些代码将出现在由当前JSP页面生成的servlet中。其中‘表达式’、‘脚本’、‘声明’统称为jsp脚本元素

  • 声明
格式:
<%! JAVA声明%>

举例:
<%!
      String userName = "司娟"
      String password = "123456"
%>
也可以声明方法和类
<%!
public static int tt(int n){
  if.......
}
%>
  • 表达式

表达式用于把Java数据直接输出到页面上
格式:

<%=表达式%>
举例:
<body>
   Current time :<%= new java.util.Data()%>
</body>
  • 脚本程序

脚本是任意的Java代码段。如果需要使用更加复杂的操作与控制,只靠声明是远远不够的,JSP脚本可以把任意的Java代码插入到Servlet中。

<%
      .....任意的Java代码
%>
举例
<%@ page language="java"  import="java.util.*" pageEncoding="utf-8" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
  <table>
    <%
      String name[] ={"liming","xiaowang","zangfei","xinxin"};
      for(int i = 0;i<name.length;i++){%>
    <tr><td><%=name[i]%><td></tr>
     <% }
    %>
  </table>
  </body>
</html>

效果:


运行效果
JSP动作元素

JSP动作元素利用 xml语法格式的标记来控制Servlet引擎的行为,利用JSP动作元素,可以做到动态插入文件,重用javaBean组件,把用户重定向到另外的页面,为Java插件生成HTML代码.

JSP基本动作元素包括以下几种:
jsp: include 在页面被请求时引入一个文件(区别于page指令元素的页面创建时静态引入)
jsp: useBean 寻找或实例化一个JavaBean
jsp: setProperty 设置javaBean的属性
jsp: getProperty 输出某个JavaBean的属性
jsp: forward 把请求转到另一个新的页面
jsp: plugin 根据浏览器的类型为Java 插件生成OBJECT 或 EMBED标记

!!!!!!动作元素与指令元素不同,动作元素是在客户端请求时动态执行的,每次有客户端请求时可能都会执行一次,而指令元素在编译使其被编译执行。他只会被编译一次
  • jsp:include 用法与<%@include file = “”%>相似,不做赘述
  • <jsp:useBean>
<jsp:useBean id = "name" classname = "package.class">

简单说明以下,classname 属性对应的值是一个javaBean的类名,id 属性对应的值是classname指定的类的一个变量名。除了这两个属性之外还有三个属性
scope 指定这个Bean的可使用范围:

  1. page: 当前页面
  2. request:当前客户端请求有效,保存在HTTPRequest对象中
  3. session 表示Bean对当前HttpSesion内的所有页面都有效
  4. application表示该Bean对具有相同ServletContext的页面都有效)
    useBean很重要,因为只有当当前范围没有已经存在的Bean对象时才会新建对象,否则,useBean动作的一切都将被忽略而使用已经存在的Bean
    应用举例:
<%@ page language="java"  import="java.util.*" pageEncoding="utf-8" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
#使用useBean创建Bean对象并初始化
  <jsp:useBean id = "student" class="Topten.Student" scope="page">
    <%
      student.setClass("一班");
      student.setMajor("软件工程");
      student.setName("宋小宝");
    %>
  </body>
  </jsp:useBean>
  <h2>显示javaBean中的信息</h2>
  <hr>
  <%
    String myName = student.getName();
    String myMajor = student.getMajor();
    String myClass = student.getmyClass();
  %>
  <table>
    <tr>
#使用 Bean对象
      <td>姓名:<%=myName%></td>
      <td>专业:<%=myMajor%></td>
      <td>班级:<%=myClass%></td>
    </tr>
  </table>
</html>
  • <jsp: forward>

<jsp:forward>动作把请求重定向到另外的页面,jsp:forward动作只有一个属性page,page属性包含的是一个相对URL,page的值可以直接给出,也可以在请求的时候动态计算。

<jsp:forward page = "URL" />

利用forword与java实现一个简单的登陆验证

首先是登陆界面

<%@ page language="java"  import="java.util.*" pageEncoding="utf-8" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
  <form action="test.jsp" method="post" id ="form1" name="form1">
    <table>
      <tr>
        <td>用户名:</td>
        <td><input type="text" name="usename"></td>
      </tr>
      <tr>
        <td>密码:</td>
        <td><input type="text" name="password"></td>
      </tr>
      <tr><input type="submit" name="Submit" value="登陆"></tr>
    </table>
  </form>
  </body>
</html>
登陆页面

其次是中途用于跳转的页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%
#获取请求,用于跳转
    String useName = request.getParameter("usename");
    String password = request.getParameter("password");
    if(useName.equals("yao")&&password.equals("123")){
%>
#成功则跳转到success,否则跳转到error
    <jsp:forward page="success.jsp"/>
<%}else{%>
    <jsp:forward page="error.jsp"/>
<%}%>
</body>
</html>

运行程序,输入账号密码,成功会转到成功的页面,失败会转到失败的页面,是不是很简单?我们仅仅使用了一个动作元素就可以完成所有的跳转任务!


登陆
成功
<jsp: setProperty>与<jsp: getProperty>

<jsp:setProperty>与<jsp:getProperty>都是设置JavaBean的属性,所以必须要和<jsp:useBean>搭配使用

格式:

<jsp:setProperty>
  name="beanInstanceName" #javaBean对象实例名称
  {
    property="*"
    property="propertyName"|param="paramName"
    property="property" value="{string|<%=exoression%>}"
  }

该动作有以下四个属性:

  1. name 指定需要设置属性的JavaBean实例名称
  2. property: 指定要设置的属性名称,这里有一点需要注意:当把property设置为“符号星”的时候,JSP容器会把系统ServletRequest对象中的参数逐个列举出来,检查这个JavaBean的属性是否和ServletRequest对象中的参数具有相同的名称,如果有,就自动将ServletRequest中的同名参数值传给对应的javaBean
  3. value 直接设定值为某一个值,不可以和param同时使用
  4. param 将对应的属性值设置成url附带的参数名

实战练习:
利用<jsp:setProperty>与<jsp:getProperty>设置属性与获取属性
首先是登陆界面

<%@ page language="java"  import="java.util.*" pageEncoding="utf-8" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
  <form action="test.jsp" method="post" id ="form1" name="form1">
    <table>
      <tr>
        <td>姓名:</td>
        <td><input type="text" name="name"></td>
      </tr>
      <tr>
        <td>专业:</td>
        <td><input type="text" name="major"></td>
      </tr>
      <tr>
        <td>班级:</td>
        <td><input type="text" name="grade"></td>
      </tr>
      <tr><td><input type="submit" name="Submit" value="提交"></td></tr>
    </table>
  </form>
  </body>
</html>
实现一个提交页面 提交

接下来实现提交后的页面,通过<jsp:setProperty>设置对应属性,分别通过调用属性方法与<jsp:getProperty>两种方法来获取对应的属性值

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<jsp:useBean id="student" class="Topten.Student" />
<jsp:setProperty   name="student" property="*"/>
姓名:<%=student.getName()%>
班级:<%=student.getGrade()%>
专业:<jsp:getProperty name="student" property="major"/>
</body>
</html>

当输入内容点击提交时,会显示出已经提交的内容



提交

出现乱码是编码的问题,不是重点不考虑

相关文章

  • JSP笔记

    JSP 基本结构JSP 页面组成:模板文本(HTML,XML,纯文本),JSP 元素;JSP 元素:脚本元素,指令...

  • jsp看这篇文章就够了

    一、JSP基础语法 1、JSP模板元素 JSP页面中的HTML内容称之为JSP模版元素。 JSP模版元素定义了网页...

  • [java][JSP]:基本语法+3个指令+6个动作

    1、基本语法 模版元素 JSP页面中的html内容称之为模版元素,JSP模版元素定义了页面的基本骨架,即定义了页面...

  • JavaWeb-JSP常用标签

    JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中...

  • JavaWeb-017-JSP标签

    概念 JSP还提供了一种称之为Action的元素,在JSP页面中使用Action元素可以完成各种通用的JSP页面功...

  • JSP页面元素

    JSP页面语速可分为脚本元素、指令元素与动作元素三种类型 脚本元素:嵌入到jsp页面中的Java代码 指令元素:控...

  • JSP页面元素

    JSP页面由两部分组成静态部分:HTML、CSS标记等动态部分:脚本元素、指令、动作和注释1、JSP注释。JSP页...

  • JSP学习笔记(二)

    JSP页面元素的构成:静态内容,注释,声明,小脚本,表达式,指令。 JSP指令 page指令:通常位于jsp页面的...

  • JavaWeb-013-JSP的基本语法

    JSP模版元素 JSP页面中的静态HTML内容称之为JSP模版元素,在静态的HTML内容之中可以嵌套JSP的其他各...

  • Java Web开发学习中2.(JSP指令元素)

    JSP指令元素: page指令, include指令,taglib指令. 一. page指令: 用来设定JSP页面...

网友评论

      本文标题:JSP页面元素

      本文链接:https://www.haomeiwen.com/subject/yvdoaftx.html