J2EE 3.JSP内置对象

版权声明:本文为博主原创文章,转载请声明原创网址。 https://blog.csdn.net/lagoon_lala/article/details/83042452

JSP内置对象

不需要创建的对象:9个,常用的5个:resquest 、response、session、application和out

提交的信息

<form  action= “JSP页面”  method= get | post  >

    提交手段

</form>

request对象使用getParameter(String s)方法获取表单提交的信息.

处理汉字信息两种方法

1.对信息重新编码

request将获取的信息重新编码,即用ISO-8859-1(JSP默认编码)进行编码,并将编码存放到一个字节数组中,然后再将这个数组转化为字符串。如下列所示:

String str=request.getParameter("message");

byte  b[]=str.getBytes("ISO-8859-1");

str=new String(b,“gb2312”);

2.request设置编码

     request在获取信息之前使用setCharacterEncoding方法设置自己的编码为gb2312:(页面charset编码)

     request.setCharacterEncoding("gb2312");

 

内置对象request常用方法如下:

getProtocol()  获取用户向服务器提交信息所使用的通信协议,比如http/1.1等。

getServletPath()  获取用户请求的JSP页面文件的目录。

getContextPath() 获取用户请求的当前Web服务目录。

getRemoteAddr()  获取用户的IP地址。

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

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

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

<form> 标记

get方法和post方法的主要区别是:使用get方法提交的信息会在提交的过程中显示在浏览器的地址栏中

<input>标记

<input  type="输入对象的GUI类型"  name= "名字">

GUI类型

1)文本框text

   <input type="text" name="me"  value="hi"   maxlength="30">

2)单选框radio

   <input type="radio"  name="rad"  value="red"   algin= "top"  checked="java" >

3)复选框checkbox

  <Input type="checkbox"  name= "ch"  value="pink"   algin= "top"  checked="java">

4)口令框password

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

5)隐藏hidden

   <input type= "hidden"  name="h"  value= "123"  >   request对象调用getParemeter方法,通过name的名字来获取由value指定的值。

6)提交键submit

7)重置键:reset

     <input type="reset" >

 <select>、<option> 标记

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

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

  <option  value="item1">

</select>

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

</textArea>

<table >

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

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

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

    </tr>

</table>

<image  src="图像文件的URL" >描述文字</image>可以使用width和height属性

<embed  src="音乐或视频文件的URL" >描述文字</embed > autostart属性,是否立刻播放,loop属性,width和height属性

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

response 对象

动态响应contentType属性setContentType

 

split利用正则表达式分割有多个空字符串[]正则^取反

web目录上下文(项目地址):request.getContextPath();

javaEE在线文档

几个单选按钮、几个复选框的名字要一样,同一组

响应也包括一些头。response对象可以使用方法

addHeader(String  head,String value);

或setHeader(String head ,String value)

头中refresh设置刷新时间

response重定向sendRedirect(URL url)

response对象的setStatus(int n)方法来改变响应的状态行的内容

 

 

 

得到参数:

单个request.getParameter

多个request.getParameterValues

 

音乐放在webContent

 

Table标记

Th Tr Td

Java+标签 动态生成表单(标签要放在<%%>外)

<img scr></img>标记

嵌入视频embed

 

处理超链接

     <a href=链接的页面地址?参数1=串值1&参数2=

       串值2& 参数n=串值n >文字说明</a>

?&的格式

 

接收参数:String A=request.getParameter("sizeA");

  转换类型  double a=Double.parseDouble(A);

处理中文:

request.setCharacterEncoding("gb2312");

        String information_fees=request.getParameter("information_fees");

        double number=0;

        if(information_fees==null) {

           information_fees="";

        }

分割

String []a = information_fees.split("[^0123456789.]");

double sum=0;

        for(String s:a) {

           try {

             sum+=Double.parseDouble(s);

           }

           catch(NumberFormatException exp){}

 

 

响应

contentType也可(解析方法)

response.setContentType(String s)

如响应Excel表格

addHeader设置头的值,刷新

页面重定向:.sendRedirect(url)

 

response状态码200正确500服务器内部错误

 

session对象

http是无状态协议,不保留连接信息

session记录连接信息

  1. session对象被分配了一个String类型的id号,Tomcat服务器同时将这个id号发送到用户端,存放在用户的Cookie中。
  2. 简单地说,用户在访问一个Web服务目录期间,服务器为该用户分配一个session对象(称作用户的会话),服务器可以在各个页面使用这个session记录当前用户的有关信息。而且服务器保证不同用户的session对象互不相同。

浏览器没关闭,不同页面同一个sessionID

不支持cookie时,URL重写,向新的URL添加session传递

session对象使用下列方法处理数据:

1.public void setAttribute (String  key ,Object  obj)

session对象可以调用该方法将参数Object指定的对象obj添加到session对象中,并为添加的对象指定了一个索引关键字。

2.public Object getAttribute(String key)

获取session对象索引关键字是key的对象。

使session失效:invalidate()方法使得session无效或session对象达到了设置的最长的“发呆”状态时间以及是否关闭服务器,默认session30分钟

application对象

(1) public void setAttribute(String  key ,Object  obj)

application对象可以调用该方法将参数Object 指定的对象 obj添加到application对象中,并为添加的对象指定了一个索引关键字。

(2) public Object Attribute(String key)

获取application对象含有的关键字是key的对象。

out 对象

out.print out.println

实验

实验3_1 request对象

编写一个JSP页面input.jsp,该页面提供一个表单,用户可以通过表单输入两个数和四则运算符号提交给该页面。用户提交表单后,JSP页面input.jsp将计算任务交给另一个JSP页面result.jsp去完成。

  1. input.jsp的具体要求

input.jsp页面提供一个表单,要求表单中提供两个text输入框,供用户输入数字;提供一个下拉列表,该下拉列表有加、减、乘、除四个选项,供用户选择运算符号。用户在表单中输入的数字、选择运算符号提交给result.jsp页面。

  1. result.jsp的具体要求

要求result.jsp页面获取input.jsp提交的数据,并计算出相应的结果显示给用户。

Debug:java比较字符串用equals不用==

<!-- input.jsp -->
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP 'input.jsp' starting page</title>
  </head>
  <body>
    This is my JSP page. <br>
    <form action="result.jsp" method="get">
    	<input type="text" name="num1">
    	<select name="op">
    		<option value="+">+
    		<option value="-">-
    		<option value="*">*
    		<option value="/">/
    	</select>
    	<input type="text" name="num2">
    	<input type="submit" value="提交">
    </form>
  </body>
</html>
<!-- result.jsp -->
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP 'result.jsp' starting page</title>
  </head>
  <body>
    This is my JSP page. <br>
    <%
    	String s1=request.getParameter("num1");
    	String s2=request.getParameter("num2");
    	String op=request.getParameter("op");
    	double result=0;
    	int num1=0;
    	int num2=0;
    	if(s1!=null&&s1.length()!=0){
    		num1=Integer.parseInt(s1);
    	}
    	if(s2!=null&&s2.length()!=0){
    		num2=Integer.parseInt(s2);
    	}
    	/* out.print(op); */
    	if(op.equals("+")){result=num1+num2;out.print(result);}
    	else if(op.equals("-")){result=num1-num2;out.print(result);}
    	else if(op.equals("*")){result=num1*num2;out.print(result);}
    	else if(op.equals("/")){result=num1/num2;out.print(result);}
     %>
  </body>
</html>

猜你喜欢

转载自blog.csdn.net/lagoon_lala/article/details/83042452