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

来源:互联网 发布:女孩子湿有多夸张知乎 编辑:程序博客网 时间:2024/05/18 00:20
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了,其次要加";"
1 0
原创粉丝点击