jsp基本语法结构2之jsp隐含对象

1、jsp命令指令
2、jsp隐含对象
3、jsp动作指令
4、jsp中的javabean
5、jsp用户自定义标签
6、jsp2.0的新特性
————————————————————————————
jsp隐含对象
在jsp中,web服务器为jsp定义了许多隐含对象,用户可以通过这些对象与jsp网页中的可执行servlet环境交互。

在jsp环境中用户可以直接用这些对象的各种方法。这些隐含对象如下:

request 客户端请求,包括从GET/POST请求传递过来的参数
response 网页传回客户端的反应
session 与请求关联的会话
config 代码片段配置对象
application 代码片段的运行环境
out 传送响应的输出流
pageContext 在此管理网页属性
page JSP网页本身
exception 有错的网页中未被捕获的例外

-----------------------------
一、request
用于封装客户端的请求信息,通过调用相应的方法可以获取客户端提交的信息。
客户端通常使用html表单向服务器提交信息。表单的格式一般如下:

<FORM method=get action="提交信息的目的页面">
</FORM>

××××××实例3 获取客户提交的信息××××××××××

1、编写login.jsp

<% @ page contentType = " text/html;charset=GB2312 "   %>
< HTML >
< BODY  >
   
< FORM action = " getinfo.jsp "  method = post name = form >
       
< INPUT type = " text "  name = " name " >  
       
< INPUT TYPE = " submit "  value = " Enter "  name = " submit " >
   
</ FORM >  
</ FONT >
</ BODY >
</ HTML >


2、把login.jsp保存到webapps/02/3目录下

3、编写getinfo.jsp

 

<% @ page contentType = " text/html;charset=GB2312 "   %>
< HTML >
< BODY  >    
< P > 获取文本框提交的信息:
   
<% String textContent = request.getParameter( " name " );
   
%>
< BR >
   
<%= textContent %>  
< P >  获取按钮的名字:
   
<% String buttonName = request.getParameter( " submit " );
   
%>
< BR >
   
<%= buttonName %>  
</ FONT >
</ BODY >
</ HTML >

 

4、把login.jsp保存到webapps/02/3目录下

5、在浏览器中输入输入http://localhost:8989/02/3/login.jsp就可以了

¥¥¥如果直接进入http://localhost:8080/02/3/getinfo.jsp则获得

获取文本框提交的信息: 
null 

获取按钮的名字: 
null 

¥¥¥¥¥¥工作流程是<FORM action="getinfo.jsp" method=post name=form>把login.jsp的对象信息获取保存到getinfo.jsp来,然后再getinfo.jsp用request语法把这些信息提取出来。

——————————————————————————————————————————————————
二、response 对象
   与request相对应,response 用于对客户端请求做出动态响应,将jsp容器处理后的信息向客户端输出。
在某些情况下,当响应客户端时,需要将客户端转向另一个页面。
这就可以用response 对象的sendRedirect(URL url)方法实现客户端的重定向。

××××实例4 页面重定向××××××××××
本实例包含三个页面,分别是登录页面、正确显示信息页面、信息填写不全的错误提示页面

1、编写登录页面input.html

< HTML >
< HEAD >
< TITLE > 登录页面 </ TITLE >
</ HEAD >
< BODY >
< BR >
< FORM  action ="sendRedirect.jsp"  method =post  name =form1 >
< P > 姓名 :  < INPUT  name =inputName  ></ P >
< P > E-Mail :  < INPUT  name =inputE_Mail  ></ P >
< INPUT  name =submit  type =submit  value =送出 >
</ FORM >
</ BODY >
</ HTML >

2、编写处理提交信息及正确显示信息页面sendRedirect.jsp

<% @ page contentType = " text/html; charset=GB2312 "   %>
<% @ page language = " java "   %>
<%
String Name 
=  request.getParameter( " inputName " );
String E_Mail 
=  request.getParameter( " inputE_Mail " );
if (Name.equals( "" ||  E_Mail.equals( "" )) // 检查Name或E_Mail是否完成资料输入
 response.sendRedirect( " sendRedirect.html " );  // 若未完成资料输入则将网页导向sendRedirect.html
%>
< HTML >
< HEAD >
< TITLE > 网页引导 </ TITLE >
</ HEAD >
< BODY >

< BR >
< P > 您输入的姓名是:
<%=  Name  %>
</ P >
< P > 您输入的E - Mail帐号为:
<%=  E_Mail  %>
</ P >
</ BODY >
</ HTML >

3、编写错误提示页面sendRedirect.html

 

< HTML >
< HEAD >
< TITLE > 网页引导 </ TITLE >
</ HEAD >
< BODY >

< BR >
< FORM  action ="sendRedirect.jsp"  method =post  name =form1 >
< font  size =5  color =red >
你输入的信息不完整,请重新输入!
</ font >
< br >
< P > 姓名 :  < INPUT  name =inputName  ></ P >
< P > E-Mail :  < INPUT  name =inputE_Mail  ></ P >
< INPUT  name =submit  type =submit  value =送出 >
</ FORM >
</ BODY >
</ HTML >

 

4、把这三个页面保存到webapps/02/4目录下

在浏览器中输入输入http://localhost:8989/02/4/input.html就可以了

----------------------------------
三、session 对象

Session其实指的就是访问者从到达某个特定主页到离开为止的那段时间。每一访问者都会单独获得一个Session

。在Web应用程序中,当一个用户访问该应用时,Session类型的变量可以供这个用户在该Web应用的所有页面中共

享数据;如果另一个用户也同时访问该Web应用,他也拥有自己的Session变量,但两个用户之间无法通过Session

变量共享信息,而Application类型的变更则可以实现站点多个用户之间在所有页面中共享信息。
--想想登录论坛的时候每个页面上都有的用户名

session 中存储和获取信息的方法:

session.setAttribute(String name,String value)设置指定名称的session属性值;
Object getAttribute(String name)获取指定名称的session属性值;
void removeAttribute(String name)移除指定名称的session属性值;
void putValue(String name,Object value)添加一个session变量;
Object getValue(String name)获得指定名称的session变量的值;
void removeValue(String name)移除一个session变量的值;
String[] getValueName()取得所有session变量的名称的集合。

×××××实例5 在会话过程中存储用户属性××××××××××××××××

有三个页面,在第一个页面session1.jsp中输入用户名,
第二个页面session2.jsp通过request对象提取session1.jsp表单中的thename值,将它存储为name变量,然后将

这个name值保存到session对象中。第三个页面session3.jsp的主要任务是显示问答结果,它从session对象提取

thename的值并显示它,以此证明在多个页面中可以通过session对象存储和维持信息。

1、编写session1.jsp

 

< HTML >  
  
< BODY >  
  
< FORM  METHOD =POST  ACTION ="session2.jsp" >  
  请输入您的姓名: 
  
< INPUT  TYPE =TEXT  NAME ="thename" >  
  
< INPUT  TYPE =SUBMIT  VALUE ="SUBMIT" >  
  
</ FORM >  
  
</ BODY >  
</ HTML >  

 

2、编写session2.jsp

 

 

< HTML >  
< BODY >  
<% @ page language = " java "   %>  
<%!  String name = "" %>  
<%  
name 
=  request.getParameter( " thename " ); 
session.putValue(
" thename " , name); 
%>
您的姓名是: 
<%=  name  %>  
< p >  
< FORM METHOD = POST ACTION = " session3.jsp " >  
您喜欢吃什么 
?  
< INPUT TYPE = TEXT NAME = " food " >  
< P >  
< INPUT TYPE = SUBMIT VALUE = " SUBMIT " >  
</ FORM >  
</ BODY >  
</ HTML >  


3、
编写session3.jsp

 

< HTML >  
< BODY >  
<% @ page language = " java "   %>  
<%!  String food = "" %>  
<%  
food 
=  request.getParameter( " food " ); 
String name 
=  (String) session.getValue( " thename " ); 
%>  
您的姓名是:
<%=  name  %>  
< P >  
您喜欢吃:
<%=  food  %>  
</ BODY >  
</ HTML >  

 

4、把这三个页面保存到webapps/02/5目录下

在浏览器中输入输入http://localhost:8989/02/5/session1.jsp就可以了

------------------------------
四、application 对象
和Session类似但作用范围不同,Session每个用户各一个互不共享,而所有用户共享同一个application对象。

×××××实例6 简单网站计时器×××××

具体代码application.jsp如下(这里面还有几个有用的html语法)

<% @ page contentType = " text/html; charset=GB2312 "   %>
<% @ page language = " java "   %>
< HTML >
< HEAD >
< TITLE > 存取application数据 </ TITLE >
</ HEAD >
< BODY >
< CENTER >
< FONT SIZE  =   5  COLOR  =  blue > 存取application数据 </ FONT >
</ CENTER >
< BR >
< HR >
< BR >
<%
Object obj 
=   null ;
String strData 
=  (String)application.getAttribute( " Data " );
int  Data  =   1 ;
// 检查是否Data变量是否可取得
if (strData  !=   null )
 
// 将取得的值增加1
 Data  =  Integer.parseInt(strData)  +   1 ;
// 起始Data变量值
application.setAttribute( " Data " , String.valueOf(Data));
%>
< CENTER >
当前您的访问次数是:
< Font color  =  red ><%=  Data  %></ Font >
</ CENTER >
< BR >
</ BODY >
</ HTML >

2、把这个页面保存到webapps/02/6目录下

在浏览器中输入输入http://localhost:8989/02/6/application.jsp就可以了。

————————————————————————------
五、out对象

out对象是一个输出流,用来向客户端输出数据。

××××××××××实例7 向客户端输出数据××××××××××××××

1、具体代码out.jsp如下

<% @page language = " java "  contentType = " text/html;charset=gb2312 "   %>
<% @page import = " java.util.* "   %>  
 
< HTML >  
< HEAD >  
< TITLE >  out对象使用实例 </ TITLE >  
</ HEAD >  
< BODY >  
<%  
out.println(
new  Date().toLocaleString()); 
out.print(
" <BR> " ); 
out.print(
" 测试成功 " ); 
%>  
</ BODY >  
</ HTML >  

2、把这个页面保存到webapps/02/7目录下

在浏览器中输入输入http://localhost:8989/02/7/out.jsp就可以了。

---------------------
六、config对象

config 对象
config对象提供了对每一个给定的服务器小程序或JSP页面的javax.servlet.ServletConfig对象的访问。它封装

了初始化参数以及一些使用方法。
作用范围就当前页面,被包含到别的页面无效.jsp的config对象作用不什么到,在servlet中作用比较大.
 
config对象的方法
(1)getInitParameter(String name)----返回String类型的初始化参数。
语法如下:
config.getInitParameter(String name)
(2)getInitParameterNames()----返回所有初始化参数的名字。
语法如下:
config.getInitParameterNames()
(3)getServletName()----获得当前服务器小程序或JSP页面的名称。
语法如下:
config.getServletName()
(4)getServletContext()----获得当前服务器小程序或JSP页面的服务器小程序环境。
语法如下:
config.getServletContext()
 
 

 实例:(调试失败)
config.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"
  pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>meg.jsp</title>
  </head>
  <body>
    <table align="center" border="0" cellPadding="0" cellSpacing="0"
      width="730">
      <tr>
        <td>
          <div align="center">
            <br>
            客户服务信箱:
            <%=config.getInitParameter("email")%>
            客户服务热线:
            <%=config.getInitParameter("phone")%>
            <br>
            客户服务 QQ:
            <%=config.getInitParameter("qq")%>
            <br>
          </div>
        </td>
      </tr>
    </table>
  </body>
</html>
在web.xml的</web-app>前插入

<!-- config -->
    <servlet>
     <servlet-name>admin</servlet-name>
     <jsp-file>/config.jsp</jsp-file>
     <init-param>
        <param-name>email</param-name>
        <param-value>service@abc.com</param-value>
     </init-param>
     <init-param>
        <param-name>phone</param-name>
        <param-value>0411-12345678</param-value>
     </init-param>
     <init-param>
        <param-name>qq</param-name>
        <param-value>88888中文呢</param-value>
     </init-param>
    </servlet>
    <servlet-mapping>
     <servlet-name>admin</servlet-name>
     <url-pattern>/config.jsp</url-pattern>
    </servlet-mapping>
<!-- end config -->

 

####参考####
1、《白领就业指南:J2EE开发员成长之路》
2、http://blog.chinaunix.net/u/27731/showart_290196.html

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值