JSP入门之JSP内置对象

系列文章目录


前言

有些对象不用声明就可以在JSP页面的Java程序片和表达式部分使用,这就是JSP的内置对象。JSP的常用内置对象有request,response,session,application和out。

一、request对象

在JSP中,内置对象request封装了用户提交的信息,那么该对象调用相应的方法可以获取封装的信息,即使用该对象可以获取用户提交的信息。

1.获取用户提交的信息

request对象获取用户提交信息的最常用的方法是getParameter(String s)。

代码如下:<%@ page contentType="text/html" %>
<%@ page pageEncoding = "utf-8" %> 
<%@ page import="java.util.regex.Pattern" %>
<%@ page import="java.util.regex.Matcher" %>
<style>
   #tom{
      font-family:宋体;font-size:22;color:blue 
   }
</style> 
<HTML><body id ="tom" bgcolor = #ffccff>
输入购物小票内容(显示的是默认内容):
<%
   String content = "牛奶:12.68元,面包:6.6元,"
                    +"苹果:28元,香皂:6.58元";
%>
<form  action =""  method="post" id ="tom">
   <textArea  name="shopping" rows=5 cols=32 id ="tom">
      <%= content %>
   </textArea>
   <input type="submit" id ="tom" name="submit" value="提交"/>
</form>  
<%   String shoppingReceipt=request.getParameter("shopping");
     if(shoppingReceipt==null) {
        shoppingReceipt="0";
     }
     Pattern pattern;          
     Matcher matcher;         
     String regex="-?[0-9][0-9]*[.]?[0-9]*" ;
     pattern = Pattern.compile(regex); //初试化模式对象。
     matcher =
     pattern.matcher(shoppingReceipt); 
     double sum = 0;
     while(matcher.find()) {
       String str = matcher.group(); 
       sum += Double.parseDouble(str);
     } 
     out.print("购物小票消费总额:"+sum);
%>
</body></HTML>

 2.JSP页面文件的编码方式

JSP页面文件的编码方式为utf-8编码,只要让request对象在获取对象之前调用setCharacterEncoding方法设置编码为utf-8就可以避免乱码的现象。 

代码如下:request.setCharacterEncoding("utf-8");

3.常用方法举例 

String getProtocol()获取用户向服务器提交信息所使用的通信协议。                                                String getServeletPath()获取用户请求的JSP页面文件的名字。                                                        String getContextPath()获取用户请求的当前Web服务目录。                                                            int getContentLength()获取用户提交的整个信息的长度。                                                                  String getMethod()获取用户提交信息的方式。                                                                                String getHeader(String s)获取HTTP头文件中由参数s指定的头名字的值。                                    Enumeration getHeaderNames()获取头文字的一个枚举。                                                              Enumeration getHeaders(String s)获取头文件中指定头名字的全部值的一个枚举。                        String getRemoteAddr()获取用户的IP地址。                                                                                    String getServerName()获取服务器的名称。                                                                                    String getServerName()获取服务器的名称。                                                                                  String getServerPort()获取服务器的端口号。                                                                                    Enumeration getParameterNmaes()获取用户提交的信息体部分中各个nmae给出的参数的一个枚举。

4.处理HTML标记 

JSP页面可以含有HTML标记,当用户通过浏览器请求一个JSP页面时,Tomcat服务器将该JSP页面中的HTML标记直接发送到用户的浏览器,由用户的浏览器负责执行这些HTML标记。而JSP页面中的变量声明、程序片以及表达式由Tomcat服务器处理后,再将有关的结果用文本的方式发送到用户的浏览器。                                                    

1.form标记:用于对象提交数据,一般格式如下 

< form action = "请求访问的页面或者servlet" method = get|post>

   各种提交手段

   提交键

</form>

其中form表单经常把 文本框,下拉列表,滚动列表等作为form表单的子标记。

2.input 标记:用来指定form表单中数据的输入方式以及form表单的提交键,一般格式如下

<input type = "GUI对象" name = "GUI对象的名字" value= "GUI中的默认值"/>

type可以指定的类型有文本框text、单选框radio、复选框checkbox、口令框passward、隐藏hidden、提交键submit和重置键reset。

3.select,option标记:下拉式列表和滚动列表通过select和option标记来定义,经常作为form的子标记,一般格式如下:

<select name = "myName">

  <option value= "item1">文本描述</option>

  <option value= "item2">文本描述</option>

    ...

</select>

<%@ page contentType="text/html" %>
<%@ page pageEncoding = "utf-8" %>
<style>
   #tom{
      font-family:宋体;font-size:26;color:blue 
   }
</style> 
<%   String music = request.getParameter("music");
     String pic = request.getParameter("pic");
     String onOrOff=request.getParameter("R"); 
     if(music==null) music = "";
     if(pic==null)   pic = "";
     if(onOrOff==null) onOrOff = "off";
%>
<HTML><body id=tom background="image/<%= pic %>" >
<form action=""  method=post >
   <b>选择音乐:<br>
   <select id=tom name="music" >
      <Option selected value="back1.mp3">绿岛小夜曲
      <Option value="back2.mp3">我是一片云</option>
      <Option value="back3.mp3">红河谷</option>
   </select> 
   <input type="radio" name="R" value="on" />打开 
   <input type="radio" name="R" value="off" />关闭 
   <br><b>选择背景图像:<br>
   <select id=tom name="pic" size = 2>
      <option value="back1.jpg">荷花图</option>
      <option value="back2.jpg">玫瑰图</option>
      <option value="back3.jpg">校园图</option>
   </select> <br> 
   <input id=tom type="submit"  name="submit" value="提交"/>
</form> 
<%   if(onOrOff.equals("on")) {
%>       <br><embed src="sound/<%= music %>" height=50 />
<%   } 
%>
</body></HTML> 

4.textArea标记:能输入或显示多行文本的文本区。

5.style样式标记:用于定义HTML,其他标记中的字体样式。

6.table标记:表格以行列形式显示数据,不提供输入数据的功能。

7.image标记:用来显示一幅图像。

8.cmbed标记:用来播放音乐和视频。

5.处理超链接       

用户单击超链接标记的文字说明,可以访问超链接给出的链接页面,一般格式如下
<a href = 链接的页面地址> 文字说明</a>

超链接所链接的页面,使用request对象调用getParameter("参数")方法获取超链接参数传递过来的参数的值,即字符串(不允许含有ASCII字符,例如汉字等)。

String idStr = request.getParameter("id")

二、response对象

可以用response对象对用户的请求做出动态响应,向用户发送数据。

1.动态响应contentType属性       

页面用page指令设置页面的contentType属性的值,那么Tomcat服务器将按照这种属性值作出响应,将页面的静态部分返回给用户,用户浏览器接受到该响应就会使用相应的手段处理所收到的信息。

2.response对象的HTTP文件头

当用户访问一个页面时,会提交一个HTTP请求给Tomcat服务器,这个请求包括一个请求行、HTTP头和信息体。

3.response对象的重定向

可以使用response对象的sendRedirect(URL url)方法实现用户的重定向,即可以让用户从一个页面跳转到sendRedirect(URL url)中url指定的页面,即所谓的客户端跳转。

<%@ page contentType="text/html" %>
<%@ page pageEncoding = "utf-8" %>
<style>#textStyle
    { font-family:宋体;font-size:36px;color:blue}
</style>
<HTML><body bgcolor=#ffccff>
<p id="textStyle">
    填写姓名(<%= (String)session.getAttribute("name")%>):<br>
<form action="test1.jsp" method="post" name=form>
    <input type="text" id="textStyle"  name="name">
    <input type="submit" id="textStyle" value="确定"/>
</form>
</body></HTML>
<%@ page contentType="text/html" %>
<%@ page pageEncoding = "utf-8" %>
<HTML><body bgcolor = #DDEEFF>
<%  request.setCharacterEncoding("utf-8");
    String name=request.getParameter("name");
    if(name==null||name.length()==0) {
        response.sendRedirect("test.jsp");
        String str =(String)session.getAttribute("name");。
        session.setAttribute("name","李四"+str);
    }
%>
<b>欢迎<%= name %>访问网页。
</body></HTML>

三、session对象

Tomcat服务器使用内置对象session记录用户的信息。

1.session对象的id

当一个用户首次访问Web服务目录中的一个JSP页面时,Tomcat服务器产生一个session对象,这个session对象被分配了一个String类型的id号。这样session对象和用户之间就建立起一一对应的关系了。

2.session对象与URL重写   

如果用户浏览器支持Cookie,那么session对象可以和用户建立起一一对应的关系;如果不支持就需要重写URL来实现session对象的唯一性。可以让response对象调用encodeURL()或encodeRedirectURL()方法来实现URL重写。

String str = response.encodeRedirectURL("jsp文件")

<form action = <%jsp文件> method = post>

3.session对象存储数据   

session对象驻留再服务器端,该对象调用某些方法保存用户在访问某个Web服务目录期间的有关数据。主要方法如下:

public void setAttribute(String key, Object obj)

public Object getAttribute(String key)

pubnlic Enumeration getAttributeNames()

public void removeAttribute(String key)

4.session对象的生存期限   

一个用户在某个Web服务目录的session对象的生存期限依赖于session对象是否调用invalidate()方法使得session无效或session对象达到了设置的最长的“发呆”状态时间以及用户是否关闭浏览器或服务器被关闭。session对象可以使用下列方法获取或设置和生存时间有关的信息:

public long getCreationTime()获取session创建的时间

public long getLastAccessTime()获取session最后一次被操作的时间

public int getMaxInactiveInterval()获取session最长的发呆时间

public void setMaxInactiveInterval(int interval)设置session最长的发呆时间

public bhoolean isNex()判断session是否是一个新建的session

invalidate()使session无效

四、application对象

application对象也是由Tomcat服务对象负责创建,但与session对象不同的是,application对象被访问该Web服务目录的所有的用户共享,但不同Web服务目录下的application互不相同。

1.application对象的常用方法

public void setAttribut(String key, Object obj)

public Object getAttribute(String key)

public Enumeration getAttributeNames()

public void removeAttribute(String key)

public String getServletInfo()

2.application留言板

<%@ page contentType="text/html" %>
<%@ page pageEncoding = "utf-8" %>
<HTML>
<style>
    #textStyle{
        font-family:宋体;font-size:18;color:blue
    }
</style>
<body id='textStyle' bgcolor = #ffccff>
<form action='example4_16_pane.jsp' method='post' >
    留言者:<input  type='text' name='peopleName' size = 40/>
    <br>标题:<input  type='text' name='title' size = 42/>
    <br>留言:<br>
    <textArea name='contents' id='textStyle' rows='10' cols=36 wrap='physical'>
</textArea>
    <br><input type='submit' id='textStyle' value='提交留言' name='submit'/>
</form>
<a href='example4_16_show.jsp'>查看留言</a>
<a href='example4_16_delete.jsp'>删除留言</a>
</body></HTML>

五、out对象

out对象是一个输出流,用来向用户端输出数据,常用方法如下:

out.print(boolean)或out.println(boolean)用于输出一个布尔值

out.print(char)或out.println(char)用于输出一个字符

out.print(double)或out.println(double)用于输出一个双精度的浮点数

out.print(float)或out.println(float)用于输出一个单精度的浮点数

out.print(long)或out.println(long)用于输出一个长整型数据

out.print(String)或out.println(String)用于输出一个String对象的字符序列

总结

以上就是今天要讲的内容,本文仅仅简单介绍了JSP内置对象的使用,想要更加深入的了解JSP的内置对象可以去参考别人的博客。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值