javaWeb开发----JSP内置对象


前言

本章内容:request对象、response对象、session对象、out对象、application对象。


提示:以下是本篇文章正文内容,下面案例可供参考

一、request对象

HTTP通信协议是用户与服务器之间一种提交(请求)信息与响应信息(request/respond)的通信协议。在JSP中,内置对象request封装了用户提交的信息,那么该对象调用相应的方法可以获取用户提交的信息。内置对象request是实现了ServletRequest接口类的一个实例,可以在Tomcat服务器的webapps\tomcat-docs\servletapi中查找ServletRequest接口的方法。

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

2、request对象获取用户提交的信息中如果含有汉字或其他非ASCLL字符,就必须进行特殊的处理方式,只要让request对象在获取信息之前调用setCharacterEncoding方法设置编码为UTF-8就可以避免乱码现象,代码如下:

request.setCharacterEncoding("utf-8");

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

 post/example.jsp/HTTP.1.1

host:localhost:8080

accept-encoding:gzip,deflate

1、request对象常用方法如下 :

1、String getProtocol()获取用户向服务器提交信息所使用的通信协议(例如:http/1.1等)

2、String getServletPath()获取用户请求的JSP页面文件名字(带目录符号\,例如\hello.jsp)

3、String getContextPath()获取用户请求当前Web服务目录(例如:ch4)

4、int getcontentLength()获取用户提交的整个信息的长度

5、String getMethod()获取用户提交信息的方式,;例如post或get

6、String getHeader(String s)获取HTTP头文件中由参数s指定的头名字的值,一般来说s可取的头名有accpet、accept-language,conten-type ,accpet-encoding,user-agent,host,content-length,connection,cookie等,例如,s取值user-agent将获取用户的浏览器的版本号等信息。

7、Enumeration getHeaderNames()获取头名字的一个枚举。

8、Enumeration getHeaders(String s)获取头文件中指定头名字的全部值的一个枚举。

9、String getRemoteAddr()获取用户的IP地址

10、String getRemoteHost()获取用户机的名称(如果获取不到,就获取IP地址)

11、String getServerName()获取服务器的名称。

12、String getServerPort()获取服务器的端口号。

13、Enumeration getParameterNames()获取用户提交的信息体部分中各个name给出的参数的一个枚举。

2、处理HTML标记

1、form标记(form表单)

form表单的一般格式是:

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

       各种提交手段

       提交键

</form>

例如:

 

<form action="tom.jsp"method=" post">

       <input type="text" name="boy"value="ok">

       <input type="submit"name="submit"value="提交">

</form>

 2、input标记

<input>标记的基本格式:

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

文本框text

<input type="text"name="m"value="h"size="8"algin="left"maxlength="9"/>

单选框radio

 <input type="radio"name="hi" value="男"algin="top"checked="ok"/>

 <input type="radio"name="hi" value="女"algin="top"/>

 复选框checkbox

 <input type="checkbox"name="itme"value="A"algin="top"checked="ok">

 <input type="checkbox"name="itme"value="B"algin="top"/>

 <input type="checkbox"name="itme"value="C"algin="top"checked="ok"/>

 <input type="checkbox"name="itme"value="D"aglin="top"/>

口令框password

<input type="password" name="me"size="12"maxlength="30"/> 

隐藏hidden

<input type="hidden"name="nogui"value="hello"/> 

提交键submit

<input type ="submit"name="me"value="确定"size="12"/> 

重置键reset

<input type="reset"value="重置"> 

3、select、option标记

 下拉式列表和滚动列表通过select和option标记来定义,经常作为form的子标记,为表单提供选择数据的GUI。select标记将option作为子标记形成下拉列表或滚动列表。

下拉列表的基本格式:

<select name="myName">

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

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

........

</select>

 在select中增加size属性的值就变成滚动列表,size的值是滚动列表的可见的数目。

滚动列表的基本格式:

<select name="myName"size="正整数">

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

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

........

</select>

4、textArca标记

 <textArca>是一个输入或显示多行文本的文本区,在form表单中使用<textArea>作为子标记可提交多行文本给提交多行文本给所请求的JSP页面。<textArca>的基本格式为:

<textArea name="名字"rows="文本可见行数"cols="文本可见列数">

</textArea>

5、style样式标记 

<style>

   #textStyle{

          font-family:宋体;font-size:18;color:blue 

   }

   #tom{

        font-family:黑体;font-size:16;color:black

   }

</style>

6、table 

表格以行列形式显示数据,不提供输入数据功能。经常将某些数据或GUI放置在表格的单元格中,让界面更加简练、美观。

表格由<table>标记定义,一般格式:

<table border="边框的宽度">

    <tr width="该行的宽度">

      <th width="单元格的宽度">单元格中的数据</th>

     ....

      <td width="单元格的宽度">单元格中的数据</td>.....

    </th>

.....

</table>

7、<image>标记

 使用image标记可以显示一副图像,image标记的基本格式为:

<image src="图像文件的URL">描述文字</image>

8、cmbed标记 

使用embed标记可以播放音乐和视频,当浏览器执行该标记时,会把浏览器所在机器上的默认播放器嵌入到浏览器,以便播放器音乐或视频文件。embed标记的基本格式为:

<embed src="音乐或视频文件的URL">描述文字</embed>

<embed src="音乐或视频文件的URL">

9、style样式标记 

style标记可用于定义HTML其他标记中的字体样式,例如,style标记给出样式:

<style>

    #textStyle{

         font-family:宋体;font-size:18;color:bule

    }

</style>

 2、处理超链接

 HTML的超链接标记

<a href=链接的页面地址>文字说明</a>

 是一个常用标记,例如:

<a href="example4_9_receive.jsp">购买</a>

二、reponse

1.动态响应contenType属性

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

2.respond对象的HTTP文件头

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

post/example3_1.jsp/HTTP.1.1

host:localhost:8080

accept-encoding:gzip,deflate

三、session对象 

1、session对象的id

用户(浏览器)在访问一个web服务目录期间,服务器为该用户分配一个session对象(称作和该用户的会话),服务器可以在各个页面使用这个session对象记录当前用户的有关信息。而且服务目录保证不同用户的session对象互不相同。

2、session对象于URL重写

session对象能和用户建立起一一对应关系依赖于用户浏览器是否支持Cookie。如果用户端浏览器不支持Cookie,那么用户在不同网页之间session对象可能是互不相同的因为Tomcat服务器无法将id存放到用户端浏览器中,就不能建立session对象和用户的一一对应关系。

如果用户不支持Cookie,JSP页面可以通过URL重写来实现session对象的唯一性。所谓URL重写,就是当用户从一个页面重新链接接到一个页面时,通过向这个新的URL添加参数,把session对象的id传带过去,这样就可以保障用户在Web服务目录的各个页面中session对象是完全相同的。可以让reponse对象调用encodeURL()或 encodeRedirectURL()方法实现URL重写,比如,如果从examp4_13_b.jsp页面链接到example_13_b.jsp页面,首先在程序片中实现URL重写:

String str=response.encodeRedirectURL("example4_13_b.jsp");

然后将链接目标写出<%=str%> 即可。例如,将examlpe4_13_a.jsp的代码;

<form action="examlpe4_13_a.jsp"method=post>

更改为:

<form action="%=str%"method=post>

3、session对象存储数据 

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

(1)public void setAttibute(String key,Object obj)。session对象可以调用该方法将参数Object指定的对象obj添加到session对象中,并为添加的对象指定了一个索引关键字,如果添加的两个对象的关键字相同,则先前添加的对象被清除。

(2)public Object getAttribute(String key).获取session对象索引关键字是key的对象。由于任何对象都可以添加到session对象中,因此用该方法取回对象时,应显示转化为原来的类型。

(3)public Enumeration getAttributeName()。session对象调用该方法产生一个枚举对象,该枚举对象使用nextElemets()遍历session中的各个对象所对应的关键字。

(4)public Enumeration getAttributeName(String key).  session对象调用该方法移掉关键字key对应的对象。

4、session对象的生存期限

session对象可以使用下列方法获取或设置和生存时间有关的信息

(1) public long getCreationTime()获取session创建的时间,单位是毫秒

(2) public long getLastAccssedTime()获取session最后一次被操做的时间单位是毫秒

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

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

(5)public boolean isName()判断session是否是一个新建的session 

(6)invalidate()使session无效。

四、application对象

(1)public void setAttribute(String key,Object obj)。application对象可以调用该方法将参数Object指定的对象obj添加到application对象中,并为添加的对象指定了一个索引关键字,如果添加的两个对象的关键字相同,则先前添加对象被清楚。

(2)public Object getAttibute(String key)或取application对象含有的关键字是key的对象。由于任何对象都可以添加到application对象中,因此用该方法取回对象时,应显示转化为原来的类型。

(3)public Enumeration getAttributeName()对象调用该方法产生一个Enumeration对象,该Enumeration对象使用nextElemets()遍历application中的各个对象所对应的关键字。

(4)public void removeAttribute(String key)从当前application对象中删除关键字是key对象。

(5)public String getServletInfo()获取servlet编译器的当前版本的信息。

五、out对象

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

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

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

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

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

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

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

println和print方法的区别是:println会向缓存区写入一个换行,而print不写入换行。但是浏览器的显示区域目前不识别println写入的换行,如果希望浏览器显示换行,应当向浏览器写入"<br>"实现换行。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值