Jsp技术

Jsp技术

1. Jsp 概述

  • Jsp:Java Server Page

  • Jsp 程序是在传统的HTML文档中插入Java程序段或Jsp标签而形成。(*.jsp)

  • Jsp 是一种实现静态和动态混合编码的技术。

<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"  pageEncoding="utf-8"%>
<body>
      <%
         Date d=new Date();
         int h=d.getHours();
         if(h>12) out.print("下午好");
         else out.print("上午好");
      %>
</body>

<body>
    <% for(int i=0; i<5; i++) { %>
    <!-- Jsp表达式 -->
		<div style="font-size:<%=20+i%>px">测试JSP</div>
     <% } %>
</body>

* Jsp 执行过程

Jsp页面中的HTML标记(静态部分)交给客户端浏览器直接显示。

服务器端执行<%%>之间的Java程序(动态部分),并把执行结果交给客户端的浏览器显示。

服务器端还要负责处理相关的Jsp标记,并将有关的处理结果发送到客户的浏览器。

2. Jsp 脚本元素

2.1 HTML注释

** ** 客户端可见

2.2 隐藏的注释

<%-- 注释语句 --%> 客户端不可见

<%-- 张三编写   日期:  2016.3 --%>
<script>
       function clickme(){
           alert("你敢点我!");     // js 注释
       }
</script>
<!-- 欢迎页面 -->
<p onclick="clickme()" style="cursor: pointer">点击我</p>

2.3 输出表达式

<%= 表达式 %>

<% String s="abcde"; %>
字符串s= <%=s%>,长度= <%= s.length()%>

2.4 全局变量声明

<%! 变量声明; [声明; ] ... %>

<body>
  <% i++;  %>
  <p>您是第<%=i%>个访问本站的客户</p>
  <%! int i=0; %>
</body>

2.5 方法声明

<%! 方法代码 %>

<body>
  <%! int add(int a,int b)  { 
              return a+b; 
          } 
   %>
  1+2=<%= add(1,2) %>
</body>

2.6 类声明

<%! 类代码 %>

<body>
    <%! class GF {
        	  String XM;
        	  int AGE;
        	  GF(String xm, int a) { XM=xm; AGE=a; }
        	  String getXM() { return XM;  }
             }
    %>
    <%GF a=new GF("小明",20);%>
    <%=a.getXM() %>
</body>

3. Jsp动作组件

  • < jsp:include>:在页面中包含一个文件。

  • < jsp:forward>:把请求转发到另一个新的页面。

  • < jsp:param>:在动作组件中引入参数信息。

  • < jsp:useBean>:寻找或者实例化一个JavaBean。 【JavaBean中使用】

  • < jsp:setProperty>:设置JavaBean的属性。【JavaBean中使用】

  • < jsp:getProperty>:输出某个JavaBean的属性。【JavaBean中使用】

3.1 jsp:include

语法格式:

<jsp:include page="relativeURL"/>
或
	<jsp:include page="relativeURL"> 
		<jsp:param name="参数1"  value="参数1值"/>
		…
		<jsp:param name="参数n"  value="参数n值"/>
	</jsp:include> 

3.2 < jsp:forward>

语法格式:

< jsp:forward page="relativeURL"/>
或
	< jsp:forward page="relativeURL"> 
		<jsp:param name=“参数1”  value=“参数1值”/>
		…
		<jsp:param name=“参数n”  value=“参数n值”/>
	</jsp:include> 

3.3 < jsp:param>

  • 用于传递参数信息,必须配合< jsp:include>或< jsp:forward>动作组件一起使用。

语法格式:

 <jsp:param name=“参数” value=“参数值”/>

4. Jsp内置对象

4.1 request对象

  • request对象中封装了客户端发送过来的所有的请求数据(包括请求头信息,请求方式,客户端ip地址以及请求参数等)。

  • request对象的作用域为一次请求

4.2 response对象

  • response对象代表服务器对客户端请求的响应

基本用法:

void setHeader(String name, String value) 

void sendRedirect(String location) 
4.2.1 response.setHeader()方法
  • 用法1:设置页面自动刷新
response.setHeader("refresh", "秒数"); 
  • 用法2:设置定时跳转页面
response.setHeader("refresh", "秒数 **;** URL=页面名称") ; 
4.2.2 response.sendRedirect()方法
  • 用法1:请求重定向到新页面(页面跳转
response.sendRedirect("http://www.wust.edu.cn"); 
  • 用法2:跳转时传递数据
response.sendRedirect("edit.jsp?id=1"); 
4.2.3 redirect和forward方式区别
jsp:forward response.sendRedirect****()
效率高,速度快 效率低,速度慢
地址栏不改变跳转,服务器端跳转,服务器之间内部转 地址栏改变跳转,客户端跳转(其中地址可以是任意的)
使用forward时,相同的request,依然能保留在下一个页面 客户端跳转,不同的request
传递参数: <jsp:param name=" " value=" " /> URL传递参数:response.sendRedirect("test.jsp?id=1234")
无条件立刻跳转,之后的代码不再被执行 所有代码执行完毕之后再跳转
地址中的"/"代表网站地址,如: http://localhost:8080/Test 地址中的"/"代表服务器地址: http://localhost:8080/

4.3 session对象

  • session代表服务器与客户端所建立的会话。

    从一个客户端打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。

  • 当一个客户首次访问服务器上页面时,服务器将产生一个session对象,同时分配一个String类型的id号。

  • session可以实现在一个会话期间的多页面间的数据共享/传递。

4.3.1 session基本用法
  • session.setAtrribute(String name, Object value)

    用value来初始化session对象某个属性(name指定)的值;

    如果指定的属性不存在,则新建一个;如果已存在,则更改name属性的值。

  • session.getAtrribute(String name)

    获得由name指定名称的session对象属性的值;

    方法返回Object对象,因此,对返回的对象要用强制转换把得到的对象转换为此对象原来的类型;

    如果属性不存在,返回空值。

4.4 application对象

  • Web服务器一旦启动,就会自动创建application对象,并一直保持,直到服务器关闭。

  • application对象负责提供应用程序在服务器中运行时的一些全局信息,客户端使用的application对象都是一样的。

  • 在此期间,在任何地方对application对象相关属性的操作,都将影响到其他用户对此的访问。

  • application对象可以实现用户间数据的共享/传递。

4.4.1 application基本用法

  • application.setAttribute(String name, Object value)

    用value来初始化application对象某个属性(name指定)的值;

    如果指定的属性不存在,则新建一个;如果已存在,则更改name属性的值。

  • application.getAttribute(String name)

    获得由name指定名称的application对象属性的值;

    方法返回Object对象,因此,对返回的对象要用强制转换把得到的对象转换为此对象原来的类型;

    如果属性不存在,返回空值。

4.5 out对象

  • out对象用来向客户端发送数据(文本级),其内容将是浏览器需要显示的内容。

  • 常用方法:pirnt()

都说酒是陈的香。
原文地址:https://www.cnblogs.com/yihangjou/p/11909148.html