JSP内部对象详解

来源:百度文库 编辑:神马文学网 时间:2024/04/28 20:29:27
1、Out对象
主要用来向客户端输出各种格式的数据,并且管理应用服务器上的输出缓冲区,Out对象的基类是javax.servlet.jsp.JspWriter类。
Out的主要方法:
out.println(DataType);或out.print(DataType);
实例:
<%@page language="java"
contentType="text/html;charset=gb2312"
import="java.util.*"
%>
<%
out.println(new Date().toLocaleString());
out.print("
");
out.print("测试成功");
%>
2、Request对象
Request.setAttribute()与Request.getAttribute()方法实例(也可以使用forward建立请求关系):
主页面:
<%@page language="java" contentType="text/html;charset=gb2312" %>
<%@ include file="1.jsp" %>
你刚才输入的内容是:
<%=request.getAttribute("gr")%>
引入页面:
<%@page language="java" contentType="text/html;charset=gb2312" import="java.util.*" %>
<% request.setAttribute("gr","123333");%>

Request.getParameter()方法实例
主页面
<%@page language="java" contentType="text/html;charset=gb2312" import="java.util.*" %>


引入页面
<%@page language="java" contentType="text/html;charset=gb2312" %>
你刚才输入的内容是:
<%=request.getParameter("gr1")%>
<%=request.getParameter("gr2")%>
<%=request.getParameter("gr3")%>
Request.getParameterName()方法实例
主页面
<%@page language="java" contentType="text/html;charset=gb2312" %>


指向页面
<%@page language="java" contentType="text/html;charset=gb2312" import="java.util.*" %>
你刚才输入的内容是:
<%
Enumeration e=request.getParameterNames();
while(e.hasMoreElements()){
String parameterName=(String)e.nextElement();
String parameterValue=(String)request.getParameter(parameterName);
out.print("参数名称:"+parameterName+"
");
out.print("参数内容:"+parameterValue+"
");
}
%>
Request.getAttributeName()方法实例
主页面:
<%@page language="java" contentType="text/html;charset=gb2312" import="java.util.*" %>
<%
Enumeration e=request.getAttributeNames();
while(e.hasMoreElements()){
String attributeName=(String)e.nextElement();
String attributeValue=(String)request.getAttribute(attributeName);
out.print("变量名称:"+attributeName);
out.print("变量内容:"+attributeValue+"
");
}
%>


转向页面
<%@page language="java" contentType="text/html;charset=gb2312" %>
<%
request.setAttribute("gr1","111");
request.setAttribute("gr2","222");
request.setAttribute("gr3","333");
%>
request.getRemoteAddr()方法实例:
<%@page language="java" contentType="text/html;charset=gb2312" %>
你的IP地址:
<%=request.getRemoteAddr()%>


3、Response对象
response.setHeader()方法网页自动刷新实例:
<%@page language="java" contentType="text/html;charset=gb2312" import="java.util.*" %>
<%
response.setHeader("refresh","3");
out.println(new Date().toLocaleString());
%>
4、Application对象
在JSP服务器运行时刻,仅有一个Application对象,它由服务器创建,也由服务器自动清除,
不能被用户创建和清除。我们只能创建这个Appliation对象的同步拷贝。
setAttribute(),getAttribute()和removeAttribute()方法实例:
<%@page language="java" contentType="text/html;charset=gb2312" %>
<%
String username="rossini";
String password="126263";
application.setAttribute("username",username);
application.setAttribute("password",password);
out.println(application.getAttribute("username")+"
");
out.println(application.getAttribute("password")+"
");
application.removeAttribute("password");
out.println(application.getAttribute("password")+"
");
%>
getAttributeNames()方法实例:
<%@page language="java" contentType="text/html;charset=gb2312" import="java.util.*" %>
<%
String username="rossini";
String password="126263";
application.setAttribute("username",username);
application.setAttribute("password",password);
Enumeration enum=application.getAttributeNames();
while(enum.hasMoreElements()){
String attrName=(String)enum.nextElement();
out.println(attrName+"----"+application.getAttribute(attrName)+"
");
}
%>
5、Session对象
当用户登陆网站,系统将为他生成一个独一无二的Session对象,用以记录改用户的个人信息
,一旦改用户退出网站,那么该Session对象将会注销。Session对象可以绑定若干个人信息或
者Java对象,不同Session对象的同名变量是不会相互干扰的。
getValue(String name)、
putValue(String name)、
removeValue(String name)、
getValueNames() 、
getCreationTime()、
getId()、
getLastAccessedTime()、
getMaxInactiveInterval()、
setMaxInactiveInterval()方法:
主文件:
<%@page language="java" contentType="text/html;charset=gb2312" %>
<%
String username="rossini";
String password="126263";
session.putValue("username",username);
session.putValue("password",password);
%>
指向第二页
转向页面1
<%@page language="java" contentType="text/html;charset=gb2312" %>
<%
String usr=(String)session.getValue("username");
String pwd=(String)session.getValue("password");
%>
<%=usr%>
<%=pwd%>
<%out.println("session create:"+session.getCreationTime());%>
<%out.println("session id:"+session.getId());%>
<%out.println("session last access:"+session.getLastAccessedTime());%>
<%out.println("session 原来最大休眠时间:"+session.getMaxInactiveInterval());%>
<%session.setMaxInactiveInterval(session.getMaxInactiveInterval()+1);%>
<%out.println("session 最新最大休眠时间:"+session.getMaxInactiveInterval());%>指向第三页
转向页面2
<%@page language="java" contentType="text/html;charset=gb2312" %>
<%
String usr=(String)session.getValue("username");
String pwd=(String)session.getValue("password");
%>
<%=usr%>
<%=pwd%>
invalidate()方法将会将会清除当前的session对象解除它和任何参数或者JAVA对象的绑定关系
简单的JSP计数器
实例:
主页面
<%@page language="java" contentType="text/html;charset=gb2312" %>
你是第 位访客
引入页面
<%!protected int count=0;%>
<%=++count%>
JavaBean设计规范及实例
javaBean的设计规范:
一个javaBean类必须是一个公共类
一个javaBean类必须有一个空的构造函数
一个javaBean类不应有公共实例变量
持有值应该通过一组存取方法(getXxx和setXxx)来访问
实例:
package Show;
import java.sql.*;
public class DBconn{
private String sDBDriver="org.gjt.mm.mysql.Driver";
private String sConnStr="jdbc:mysql://10.1.1.79:3306/web?user=root&password=2676141";
private Connection conn=null;
private ResultSet rs=null;
public DBconn(){
try{
Class.forName(sDBDriver);
}
catch(java.lang.ClassNotFoundException e){
System.out.println("DBconn():"+e.getMessage());
}
}
public String getsConnStr(){
return sConnStr;
}
public void setsConnStr(String sConnStr){
this.sConnStr=sConnStr;
}
public void executeUpdate(String sql)throws Exception{
sql=new String(sql.getBytes("GBK"),"ISO8859_1");
try{
conn=DriverManager.getConnection(sConnStr);
Statement stmt=conn.createStatement();
stmt.executeUpdate(sql);
conn.close();
stmt.close();
}
catch(SQLException ex){
System.out.println("sql.executeUpdate:"+ex.getMessage());
}
}
public ResultSet executeQuery(String sql)throws Exception{
rs=null;
try{
sql=new String(sql.getBytes("GBK"),"ISO8859_1");
conn=DriverManager.getConnection(sConnStr);
Statement stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
conn.close();
stmt.close();
}
catch(SQLException ex){
System.out.println("sql.executeQuery:"+ex.getMessage());
}
return rs;
}
}