您的位置:首页 > 编程语言 > Java开发

struts2学习笔记之一(初识jsp)

2015-05-02 20:54 381 查看
1、注释:
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'helloread.jsp' starting page</title>
</head>

<body>
<!-- 嵌入JSP代码 -->
<%
for(int i = 0 ; i < 3 ; i ++){
%>
<font size=<%=i %>><strong> 读者,你好!</strong><br></font>
<!-- 嵌入jsp代码 -->
<%
}
%>
<%-- 这里的东西不会被编译,客户端的源文件也不会显示--%>
</body>
</html>

学习目标:
两种方式的注释。
<!-- 嵌入JSP代码 -->
<%-- 这里的东西不会被编译,客户端的源文件也不会显示--%>
2、声明变量和函数
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'jspdec.jsp' starting page</title>
</head>

<body>
<!-- JSP中的声明变量 -->
<%!int i = 0;%>
<%!int e,f,d;%>
<%!Object a = new Object();%>

<%!public String fun(int i){
if(i<3)
return "i < 3";
else
return "i > 3";

}%>

</body>
</html>
学习目标:
1、变量声明的语法
2、可以将页面都会使用的方法和变量声明在一个页面里,然后用的时候使用<%@ include %>
3、程序逻辑
<!-- 嵌入JSP代码 -->
<%
for(int i = 0 ; i < 3 ; i ++){
%>
<font size=<%=i %>><strong> 读者,你好!</strong><br></font>
<!-- 嵌入jsp代码 -->
<%
}
%>
<%-- 这里的东西不会被编译,客户端的源文件也不会显示--%>
4、编译指令
编译指令主要用来提供整个JSP页面相关的信息,并且用来设定JSP网页的相关属性,如:网页的编码方式,语法,信息等
<@ command %>
page
设定整个JSP网页的属性和相关功能
include
用来插入其他JSP
<%@ include file="relativeURL" %>
简单的将file中的内容拷贝过来
taglib
能够让用户自定义新的标签。
<%@ tablib uri = "taglibraryURI" prefix="tagPrefix"%>
支持XML语法
5、动作标签
跳转
<jsp:forward page="url">
动态插入文件
<jsp:include page="url" flush="true">
与include相对
标签操作JavaBean
<jsp:useBean id="name" class="package.class" scope="scopeType" />
<jsp:setProperty name="myName" property="someProperty" value="vallue" />
<jsp:getProperty name="myName" property="someProperty">
上述两条语句是在获得javabean实例之后用来操作实例属性的
BeanTest.jsp

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Bean的动作标签</title>

</head>

<body>
<!-- 使用JSP编译指令定义Bean -->
<jsp:useBean id="test" class="com.book.web3.SimpleBean" />
<!-- 使用JSP编译指令给bean赋值 -->
<jsp:setProperty name="test" property="message" value="Hello Reader" />
刚刚赋值的消息:<jsp:getProperty name="test" property="message" />
</body>
</html>
SimpleBean.java
package com.book.web3;
public class SimpleBean {
private String message = "No message specified";

public String getMessage() {
return message;
}

public void setMessage(String message) {
this.message = message;
}

}
体会javabean的用法,javabean实际上就是一个类,这个类是用来操作属性的。当使用<jsp:useBean> 的时候会初始化一个bean实例,具体是哪个bean的实例,由class决定,名字由id决定。这样jsp页面所在的内存空间就出现了一个bean的实例,然后就可以使用<jsp:setProperty> 和<jsp:getProperty>来操纵bean实例,为了区别bean实例和所操纵的实例属性,因此<jsp:setProperty>和<jsp:getProperty>这两个标签就出现了name和property的属性。为了设置属性的值,<jsp:setProperty>标签就出现了value属性(也可以使用param,这是指定哪个参数作为bean的值,两个不能同时使用)
6、JSP内置对象
九个
request
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>WELCOME</title>
</head>

<body>
欢迎你: <%=request.getParameter("username") %><br/>
协议:<%=request.getProtocol() %><br>
请求地址:<%=request.getRequestURI() %><br>
你的地址:<%=request.getRemoteAddr() %><br>
</body>
</html>
session
保存用户会话
public String gerID()
public void setAttribute(String key,Object obj)
public Object getAttribute(String  key)
public Boolean isNew()

实例:记录访问量,如果使用isNew()进行一个if判断,可以计算访问人数
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%! int number=0;
void countPeople(){
number++;
}
%>
<%
countPeople();
String str = String.valueOf(number);
session.setAttribute("count", str);
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>访问量</title>
</head>

<body>
<p>
本站的访问量:<%=(String) session.getAttribute("count")%>
</p>
</body>
</html>

application
JSP的范围:page,request,session,application。
对应的内置对象:pageContext,request,session,application
上述对象的方法都是setAttribute和getAttribute

pageContext

page
从该页面产生一个servlet实例,相当于这个JSP产生servlet类的this,可以通过page对象访问实例的属性和函数

config
用于存取servlet实例的初始化参数。
response
sendRedirect(URL):  重定向
与forward的区别:forward重定向到同一个web应用程序里,而sedRedirect可以重定向到任何地址
exception
处理异常,只有在错误页面才能使用。前提是在页面指令里要有isErrorPage=true的属性
则在也页面里可以使用exception内置对象。
<%=exception.getMessage()%>
String getMessage()
void printStackTrace()
out
是JspWriter的一个实例,用于向客户端输出数据,用于各种对象数据的输出
out.print()
out.newLine()
out.close()
例:输出时间
<body>
<%

Calendar now = new GregorianCalendar();
String hour = String.valueOf(now.get(Calendar.HOUR_OF_DAY));
String minute = String.valueOf(now.get(Calendar.MINUTE));
String second = String.valueOf(now.get(Calendar.SECOND));
%>

<font>
现在是
<% out.print(hour);%>时
<% out.print(minute);%>分
<% out.print(second); %>秒
</font>
</body>
注意:不能写成<%= out.print(hour) %>,因为“=”就相当于out了,其次要加";"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: