目录
一、JSP的页面结构
•编译指令:<%@...%>
•操作指令:<jsp:…/>
•JSP代码: 1. <%!...%>
2. <%...%>
二、JSP的编译指令
•page指令:<%@ page...%>
•include指令:<%@ include...%>
•taglib指令:<%@ taglib...%>
三、page的指令
1.language标记 <%@ page language="java"%>
2.extends标记 <%@ page extends="mypackage.myclass"%>
3.import标记
<%@page import="java.sql.*, java.util.*"%>
‘,’注意逗号
<%@ page import=“java.util.*”,”java.io.*”,
”java.awt.*” %>
‘,’注意逗号上面的逗号等价于下方三个
1.<%@ page import=“java.util.*” %>
2.<%@ page import=“java.io.*” %>
3.<%@ page import=“java.awt.*”%>
4.errorPage标记
errorPage用来设定当JSP页面出现异常(Exception)时,所要转向的页面。
5.isErrorPage标记
6.contentType标记 contentType= “text/html;charset=GBK”
7.isThreadSafe标记
8.session标记 session定义当前JSP页面中是否要用到session,默认值为“true”。
9.include指令 <%@ include file = ”logo.htm“%>
10.taglib指令的语法为:<%@ taglib uri=”tagLibraryURI” prefix=”tagPrefix” %>
四、操作指令及其用法
•jsp:include 指令
<jsp:include page=“test.htm”/>
注:jsp:include指令必须以“/”结束,功能和include指令相同
•jsp:forward 指令
<jsp:forward page=”test2.jsp“/>
•jsp:param 指令
<jsp:param name="oper" value="add"/>”
例:
<jsp:forward page=“myjpage.jsp”>
<jsp:param page=“param1” value=“value1”/>
<jsp:param page=“param1” value=“value2”/>
</jsp:forward>
•jsp:useBean 指令
•jsp:setProperty 指令
•jsp:getProperty 指令
五、JSP代码
1. <%!...%>
2. <%...%>
(1)变量的声明与使用
<%@ page contentType="text/html;charset=GBK" %>
<%!int i=0; %>
<%
i++;
out.print(i);
%>个人访问本站
(2)方法的声明与使用
<%@ page contentType="text/html;charset=GBK" %>
<%! int number=0;
synchronized void countPeople() {
number++;
}
%>
<%
countPeople();
%>
您是第<%out.print(number);%>个访问本站的客户
(3)代码块
<%@ page contentType="text/html;charset=GBK" %>
<%int i=0; %>
<%
i++;
out.print(i);
%>个人访问本站
六、JSP内置隐含对象概述
1、out 对象
javax.servlet.jsp.JspWriter
out对象的语法是: out.print()和out.println
例如:out.println(“<h1>Hello,JSP</h1>”);
其他常用的方法有:
- out.write ()
- out.newLine()
- out.flush()
- out.close()
<%@ page contentType="text/html;charset=GBK" %>
<%
out.println("hello");
out.newLine();
out.write("hello");
%>
<%="hello"%>
<%
out.close();
%>
output:
hello hello hello
2、response 对象
javax.servlet.http.HttpServletResponse
三个常见的应用:
1)网页转向
网页转向用到的是sendRedirect()方法,语法格式为: response.sendRedirect("URL地址");
与jsp:forward标记的区别
用法举例
<!-- 转向4-01.jsp -->
<%@ page contentType="text/html;charset=GBK" %>
<%
response.sendRedirect("4-01.jsp");
%>
2)动态contentType响应
contentType的语法结构是: setContentType(“ text/html;charset=GB2312”);
也可以设置为其他一些类型,如:text/plain、application/x-msexcel和application/x-msword等。
<%@ page contentType="text/html;charset=GBK" %>
<HTML>
<BODY>
<P>response对象 <BR>setContentType方法
<P>将当前页面保存为word文档吗
<%
response.setContentType("application/msword;charset=GB2312");
%>
</BODY>
</HTML>
3)HTTP文件头响应
该方法的语法格式为:response.setHeader();
<%@ page contentType="text/html;charset=GBK" %>
<%@ page import="java.util.*" %>
<P>现在的时间是:<BR>
<% out.println(""+new Date());
response.setHeader("Refresh","5");
%>
output 如图:
3、request 对象
javax.servlet.HttpServletRequest
请求信息的内容包括:
请求的头信息
系统信息
请求的方式(GET或POST)
请求的参数名称和参数值等信息
4、application 对象
5、session 对象
6、cookie 对象
注:
1)得到Form表单的信息续
<!-- html文件 -->
<HTML><BODY>
<FORM ACTION="4-15.jsp" METHOD="POST">
<P>姓名:<INPUT TYPE="TEXT" SIZE="20" NAME="UserID"></P>
<P>密码:<INPUT TYPE="PASSWORD" SIZE="20" NAME="UserPWD"></P>
<P><INPUT TYPE="SUBMIT" VALUE="提 交"> </P>
</FORM>
</BODY></HTML>
<!-- JSP 01 文件 -->
<%@ page contentType="text/html;charset=GBK" %>
<%
request.setCharacterEncoding("GBK");
String strUserName = "";
String strUserPWD = "";
strUserName = request.getParameter("UserID");
strUserPWD = request.getParameter("UserPWD");
%>
姓名:<%=strUserName%><br>
密码:<%=strUserPWD%>
<!-- JSP 02 文件 -->
<%@page contentType="text/html;charset=GBK"%>
<%@page import="java.util.*"%>
<%
String current_param = "";
request.setCharacterEncoding("GBK");
Enumeration params = request.getParameterNames();
while(params.hasMoreElements()) {
current_param = (String)params.nextElement();
out.println("Name: " + current_param + "<br>");
out.println("Values: " + request.getParameter(current_param) + "<br>");}
%>