JSP内部对象详解(1)
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.*"
%>
<HTML>
<HEAD>
<TITLE> out对象使用实例</TITLE>
</HEAD>
<BODY>
<%
out.println(new Date().toLocaleString());
out.print("<BR>");
out.print("测试成功");
%>
</BODY>
</HTML>
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.*"
%>
<HTML>
<HEAD>
<TITLE> request对象使用实例</TITLE>
</HEAD>
<BODY>
<%
request.setAttribute("gr","123333");
%>
</FORM>
</BODY>
</HTML>
Request.getParameter()方法实例
主页面
<%@page language="java"
contentType="text/html;charset=gb2312"
import="java.util.*"
%>
<HTML>
<HEAD>
<TITLE> request.getParameter()方法使用实例</TITLE>
</HEAD>
<BODY>
<FORM METHOD=POST ACTION="2.jsp">
<INPUT TYPE="text" NAME="gr1"><BR>
<INPUT TYPE="text" NAME="gr2"><BR>
<INPUT TYPE="text" NAME="gr3"><BR>
<INPUT TYPE="submit" NAME="submit" value="提交">
<INPUT TYPE="reset" NAME="reset" value="清除">
</FORM>
</FORM>
</BODY>
</HTML>
引入页面
<%@page language="java"
contentType="text/html;charset=gb2312"
%>
你刚才输入的内容是:<BR>
<%=request.getParameter("gr1")%><BR>
<%=request.getParameter("gr2")%><BR>
<%=request.getParameter("gr3")%><BR>
Request.getParameterName()方法实例
主页面
<%@page language="java"
contentType="text/html;charset=gb2312"
%>
<HTML>
<HEAD>
<TITLE> request.getParameterName()方法使用实例</TITLE>
</HEAD>
<BODY>
<FORM METHOD=post ACTION="2.jsp">
<INPUT TYPE="text" NAME="gr1"><BR>
<INPUT TYPE="text" NAME="gr2"><BR>
<INPUT TYPE="text" NAME="gr3"><BR>
<INPUT TYPE="submit" value="提交">
<INPUT TYPE="reset" value="清除">
</FORM>
</FORM>
</BODY>
</HTML>
指向页面
<%@page language="java"
contentType="text/html;charset=gb2312"
import="java.util.*"
%>
你刚才输入的内容是:<BR>
<%
Enumeration e=request.getParameterNames();
while(e.hasMoreElements()){
String parameterName=(String)e.nextElement();
String parameterValue=(String)request.getParameter(parameterName);
out.print("参数名称:"+parameterName+"<BR>");
out.print("参数内容:"+parameterValue+"<BR>");
}
%>
Request.getAttributeName()方法实例
主页面:
<%@page language="java"
contentType="text/html;charset=gb2312"
import="java.util.*"
%>
<HTML>
<HEAD>
<TITLE> request.getAttributeName()方法使用实例</TITLE>
</HEAD>
<BODY>
<jsp:include page="2.jsp" flush="true"/>
<%
Enumeration e=request.getAttributeNames();
while(e.hasMoreElements()){
String attributeName=(String)e.nextElement();
String attributeValue=(String)request.getAttribute(attributeName);
out.print("变量名称:"+attributeName);
out.print("变量内容:"+attributeValue+"<BR>");
}
%>
</FORM>
</FORM>
</BODY>
</HTML>
转向页面
<%@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"
%>
<HTML>
<HEAD>
<TITLE> request.getRemoteAddr()方法使用实例</TITLE>
</HEAD>
<BODY>
<B>你的IP地址:</B>
<B><%=request.getRemoteAddr()%></B>
</FORM>
</FORM>
</BODY>
</HTML>
JSP内部对象详解(2)
3、Response对象
response.setHeader()方法网页自动刷新实例:
<%@page language="java" contentType="text/html;charset=gb2312" import="java.util.*" %> <HTML> <HEAD> <TITLE> response刷新页面实例</TITLE> </HEAD> <BODY> <% response.setHeader("refresh","3"); out.println(new Date().toLocaleString()); %> </BODY> </HTML>
4、Application对象
在JSP服务器运行时刻,仅有一个Application对象,它由服务器创建,也由服务器自动清除, 不能被用户创建和清除。我们只能创建这个Appliation对象的同步拷贝。
setAttribute(),getAttribute()和removeAttribute()方法实例:
<%@page language="java" contentType="text/html;charset=gb2312" %> <HTML> <HEAD> <TITLE> Application对象方法实例</TITLE> </HEAD> <BODY> <% String username="rossini"; String password="126263"; application.setAttribute("username",username); application.setAttribute("password",password); out.println(application.getAttribute("username")+"<BR>"); out.println(application.getAttribute("password")+"<BR>"); application.removeAttribute("password"); out.println(application.getAttribute("password")+"<BR>"); %> </BODY> </HTML>
getAttributeNames()方法实例:
<%@page language="java" contentType="text/html;charset=gb2312" import="java.util.*" %> <HTML> <HEAD> <TITLE> Application对象方法实例</TITLE> </HEAD> <BODY> <% 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)+"<BR>"); }
%> </BODY> </HTML>
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" %> <HTML> <HEAD> <TITLE> Session主页面</TITLE> </HEAD> <BODY> <% String username="rossini"; String password="126263"; session.putValue("username",username); session.putValue("password",password); %> <A HREF="2.jsp">指向第二页</A> </BODY> </HTML>
转向页面1
<%@page language="java" contentType="text/html;charset=gb2312" %> <HTML> <HEAD> <TITLE> Session转向页面1</TITLE> </HEAD> <BODY> <% String usr=(String)session.getValue("username"); String pwd=(String)session.getValue("password"); %> <%=usr%><BR> <%=pwd%><BR> <%out.println("session create:"+session.getCreationTime());%><BR> <%out.println("session id:"+session.getId());%><BR> <%out.println("session last access:"+session.getLastAccessedTime());%><BR> <%out.println("session 原来最大休眠时间:"+session.getMaxInactiveInterval());%><BR> <%session.setMaxInactiveInterval(session.getMaxInactiveInterval()+1);%><BR> <%out.println("session 最新最大休眠时间:"+session.getMaxInactiveInterval());%><BR <% String []name=session.getValueNames(); out.println("--------------"+"<BR>"); for(int i=0;i<name.length;i++) { out.println(session.getValue(name[i])+"<BR>"); } %> <% session.removeValue("username"); %> <A HREF="3.jsp">指向第三页</A> </BODY> </HTML>
转向页面2
<%@page language="java" contentType="text/html;charset=gb2312" %> <HTML> <HEAD> <TITLE> Session转向页面2</TITLE> </HEAD> <BODY> <% String usr=(String)session.getValue("username"); String pwd=(String)session.getValue("password"); %> <%=usr%><BR> <%=pwd%> </BODY> </HTML>
invalidate()方法将会将会清除当前的session对象解除它和任何参数或者JAVA对象的绑定关系 JSP内部对象详解(3)
简单的JSP计数器 实例:
主页面
<%@page language="java" contentType="text/html;charset=gb2312" %> <HTML> <HEAD> <TITLE> JSP计数器 </TITLE> </HEAD> <BODY> <div align="center"><font face="黑体" size="10">你是第<jsp:include page="11.jsp" flush="true"/> 位访客</font> </div> </BODY> </HTML>
引入页面
<%!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; } } |