Servlet/jsp拾遗

原创 2016年08月29日 16:06:43

jsp内置对象{
request HttpServletRequest 在 _jspService(HttpServletResquest request,HttpServletReponse response);中定义的
用户端请求,这里会包含来自客户端(浏览器)GET/POST等请求参数
request也是作用域的一种 request中储存的键值对也可以用EL表达式获取
request中的键值对在本次请求中才能够获取,其他的域是不能够获取
request中能够做到转发
response HttpServletResponse 也是在_jspService方法中定义的用于向客户端(浏览器)传递信息(不是键值对并不能保存信息)
response可以做到重定向
pageContext PageContext 网页上下文 保存网页相关信息 jsp的其他对象均是通过这个对象获取

session HttpSession请求有关的会话 保存本次会话的相关信息

application ServletContext 保存servlet的相关信息 在jsp中一般不用这个servletContext 用pageContext 在servlet中用ServletContext

config ServletConfig 用于获取xml配置<init-param>信息

out JspWriter用于输出jsp页面的html js等页面信息在servlet中response.getWrite()或response.getOutputStram.write()方式输出

page Object对象就是本个jsp 对象

exception Excrption 针对错误的网页,捕捉的例外

}
Servlet生命周期{

web容器加载servlet,生命周期开始然后调用init()方法进行servlet初始化,这里的的init()方法仅执行一次,后面再次访问servlet时也不会调用这个方法

然后浏览器通过URL访问服务器,访问的同时会调用service()方法 service()会根据http访问的get/post方法调用doGet()/doPost()方法

最后调用destroy()仅执行一次,在服务器端停止且卸载Servlet时执行该方法。当Servlet对象退出生命周期时,负责释放占用的资源。一个Servlet在运行service()方法时可能会产生其他的线程,因此需要确认在调用destroy()方法时,这些线程已经终止或完成。

}
JSP、Servlet异同{
jsp是servlet技术扩展,本质上还是servlet,更强调应用的外表表达式,更注重表现层html的显示。servlet更注重java代码,以及相关的逻辑表示。
}
jsp中scope属性{
scope决定了javabean对象存在的范围
有四个值分别是page(默认值) request session application
当page时 他的范围只存在本jsp页面
request范围 存在当前jsp页面共享一个request对象(include forward都算)
session范围 存在整个session周期内
application一旦被创建,则存在整个web周期内
}
JSTL标签{
jstl标准标签库是一个jsp标签集合,它封装了jsp应用的通用核心功能(可以看成对在jsp页面中对java代码的封装)
根据jstl标签所提供的功能,将其分为5个类别
1.核心标签
2.格式化标签
3.sql标签
4.xml标签
5.jstl函数

jstl核心标签{
    引入标签库 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

    <c:out>在jsp页面中输出数据 eg:<c:out value="jstl"></c:out>

    <c:set>在页面中创建变量,并且这些变量是有范围的可以跨jsp访问  eg:<c:set var="salary" scope="session" value="${200*2 }"></c:set>
    <c:remove>移除用<c:set>创建的变量
    <c:catch>用来处理产生错误的异常状况
    <c:if>条件判断
    <c:choose><c:when><c:otherwise> 用于在jsp中代替switch case的
    <c:import>通过页面的相对/绝对路径拼接页面
    <c:forEach>用于迭代标签 可用来迭代list等多种集合{
        格式:<c:forTokens
                items="<string>"
                delims="<string>"
                begin="<int>"
                end="<int>"
                step="<int>"
                var="<string>"
                varStatus="<string>">
    }
    <c:forTakens>用于迭代一个有分隔符的字符串{
        <c:forTokens items="google;runoob;taobao" delims=";" var="name">
            <c:out value="${name}"/><p>
        </c:forTokens>
        输出的结果是:google

                runoob

                taobao
    }
    <c:url>用于生成一个url 可以将这个url赋值到一个变量上 并将这个变量设置一个范围

    <c:param>用于在c:url中生成参数{
            <c:url var="testurl" value="http://www.baidu.com" scope="session">
            <c:param name="wd" value="test"></c:param>
            </c:url>
    }

    <c:redirect>重定向

}
jstl格式化标签{
    <fmt:formatNumber>用于格式化数字 百分比 货币{
        <fmt:formatNumber
             value="<string>"
             type="<string>"
             pattern="<string>"
            currencyCode="<string>"
            currencySymbol="<string>"
            groupingUsed="<string>"
              maxIntegerDigits="<string>"
            minIntegerDigits="<string>"
            maxFractionDigits="<string>"
            minFractionDigits="<string>"
            var="<string>"
            scope="<string>"/>
        type表示输出的是什么类型 number(数字 默认) currency(货币) percent(百分比)
        其中 currencyCode currencySymbol表示货币码 货币符号 这个是取决于你定下的区域
    }
}
    <fmt:parseNumber>用于解析一个数字的字符串 就是将字符串转换成数字 同样有三种转换出来的结果number currency percent
    <fmt:formatDate>用于输出不同格式的格式化日期{
    <fmt:formatDate
        value="<string>"
        type="<string>"
        dateStyle="<string>"
        timeStyle="<string>"
        pattern="<string>"
        timeZone="<string>"
        var="<string>"
        scope="<string>"/>  
    value要显示的时间一般是 java.util.Date()类的对象
    type要显示的风格 date time both表示显示的是什么 日期 时间 和都显示
    timeStyle表示时间以什么形式现实 {
        full:下午05时43分00秒 CST
        long:下午05时43分00秒
        medium:5:43:36
        short下午5:43
    }
    dateStyle同上面的timeStyle
    pattern 自定义什么格式输出 pattern="yyyy-MM-dd HH:mm:ss G D z" 输出    2016-08-22 17:50:43 公元 235 CST 
    <fmt:formateDate>标签格式模式 G时代表示  y年份 M月份 d天 h 12小时制小时 H24小时制小时 m分钟 s秒速 S毫秒 E周几 D一年中的第几天 F一个月中的第几个周几(比如一月第二个周三) w一年中的第几周
    W一个月中的地基周 a a.m/p.m指示符 k小时(12小时制的小时) K24小时制小时  z时区

    <fmt:pareseDate>解析一个代表时间的字符串
    <fmt:bundle>绑定资源标签 可以用于绑定properties资源然后用<fmt:message>输出相对应的资源
    <fmt:setLocale>指定地区
    <fmt:setBundle>绑定资源 这个和上面的绑定资源有区别 只能用这种模式
     <fmt:bundle basename="test">
        <fmt:message key="basemsg"></fmt:message>
        </fmt:bundle>
    而<fmt:setBundle>则可以先绑定好了 不在里面就能用<fmt:message>输出
    <fmt:timeZone>指定时区
    <fmt:setTimeZone>指定时区
    <fmt:rquestEndcoding>设置request的字符编码
}
jstl sql标签用于与关系型数据库进行交互的标签{

        <%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
    基本使用规则 <sql:setDataSource var="datatest" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/test" user="root" password=""/>
            <sql:query dataSource="${datatest }"  var="result" sql="select * from users"></sql:query>
            <c:forEach var="row" items="${result.rows }">
            <c:out value="${row.uid }"/>
            <c:out value="${row.username }"/>
            <c:out value="${row.password }"/>
            </c:forEach>    

    首先创建一个连接的数据 再来做相对应的查询 然后用遍历的方式取出自己想要的数据 

    <sql:setDataSource>指定数据源
    <sql:query>运行查询sql语句{
        <sql:query
        var="<string>"
         scope="<string>"
        sql="<string>"
         dataSource="<string>"
        startRow="<string>"
        maxRows="<string>"/>

    maxRows最大的变量中的最大条数,默认是无穷大 statRow起始的行数
    }
    <sql:update>执行sql insert语句  
    <sql:param>参数 对sql语句中的占位符(?)做一个补充   
    <sql:dateParam> 将sql语句中日期参数设为指定的date对象值
    <sql:transaction> 事物标签 将查询 插入语句封装到事物中 可以避免脏读等错误的产生
}
jstl xml标签提供创建操作xml文档的标签{

    引入xml <%@ taglib prefix="x"  uri="http://java.sun.com/jsp/jstl/xml" %>
    使用案例{

        <c:set var="xmltest">
    <books>
        <book>
            <name>Think In Java</name>
            <author>tom</author>
        </book>
        <book>
            <name>c++ plus</name>
            <author>jun</author>
        </book>
    </books>
</c:set>
<x:parse xml="${xmltest }" var="output"></x:parse>
<x:out select="$output/books/book[1]/name"/>
<x:forEach select="$output/books/book/name" var="item">
    <x:out select="$item" />
</x:forEach>
    其中select后面的表达式是xpath表达式 在其中使用xml表达式的时候应该先加上$标识

<x:out>输出xpath标识后的数据
<x:parse>解析xml数据
<x:set>设置xpath表达式
<x:if> <x:forEach> <x:chose> <x:when> <x:otherwise> <x:transform><x:param>

    }
}
jstl函数{
    <%@ taglib prefix="fn"  uri="http://java.sun.com/jsp/jstl/functions" %>

    fn:contains()函数{
        用法:
        <c:if test="${fn:contains(<原始字符串>, <要查找的子字符串>)}">
            ...
        </c:if>
    }
    fn:containsIgnoreCase()函数用于确定一个字符串是否包含指定的子串,忽略大小写。用法同上
    fn:endsWith()函数用于确定一个字符串是否以指定后缀结尾。 用法同上
    fn:escapeXml()函数忽略用于XML标记的字符。如果不用这个当字符串中有xml 等标签的时候将不会输出 如果有这个将字符串完整输出 用法${fn:escapeXml(<要转义标记的文本>)} 
    fn:indexOf()函数返回一个字符串中指定子串的位置。${fn:indexOf(<原始字符串>,<子字符串>)}
    fn:join()函数将一个数组中的所有元素使用指定的分隔符来连接成一个字符串。用法:${fn:join([数组], <分隔符>)}
    fn:length()函数返回字符串长度或集合中元素的数量。
    fn:replace()函数将字符串中所有指定的子串用另外的字符串替换。用法${fn:replace(<原始字符串>, <被替换的字符串>, <要替换的字符串>)}
    fn:split()函数将一个字符串用指定的分隔符分裂为一个子串数组。${fn:split(<带分隔符的字符串>, <分隔符>)}
    fn:startsWith()函数用于确定一个字符串是否以指定的前缀开始。 <c:if test="${fn:startsWith(<原始字符串>, <搜索的前缀>)}"> </c:if>
    fn:substring()函数返回字符串中指定开始和结束索引的子串。${fn:substring(<string>, <beginIndex>, <endIndex>)}
    fn:substringAfter()函数返回字符串中指定子串后面的部分。${fn:substringAfter(<string>, <substring>)}
    fn:substringBefore()函数返回一个字符串中指定子串前面的部分。${fn:substringBefore(<string>, <substring>)}
    fn:toLowerCase()函数将字符串中的所有字符转为小写。${fn.toLowerCase(<string>)}
    fn:toUpperCase()函数将一个字符串中的所有字符转为大写。${fn.toUpperCase(<string>)}
    fn:trim()函数将字符串两端的空白符移除。${fn.trim(<string>)}
}

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Servlet拾遗

每一个Servlet实际上都可以配置多个名称,只需要增加对应的元素即可。 在容器启动时就自动为Servlet初始化1JSP内置对象config对象,可以读取web.xml中配置的初始化参数,此对象实...

JSP拾遗

JSP拾遗基本中可以定义局部变量、编写语句等。 可以定义全局变量、方法、类。指令page指令在Tomcat的conf/web.xml中可以查询MIME类型,如希望页面可以按照Word文档的形式显示,...

JSP在页面加载时调用servlet的方法

方法:先在JS里面写一个调用servlet的事件(可以利用ajax),然后利用标签的onload调用这个事件。 代码如下: jsp文件代码如下: Insert title here

李宁项目收获六(jsp连接servlet)

下面介绍一下如何在eclipse环境中通过jsp页面连接servlet,搭建三层环境!             首先创建一个网站在eclipsle环境中!  &#...

基于jsp,JQuery,Servlet,MySQL的小型BBS论坛

经过四五天的编写,自己编写的小型BBS论坛基本成型了,主要使用了jsp,JQuery,Servlet以及Mysql等技术,其中还有一些零碎的小技术,比如ajax,EL,JSTL,Jason,css,j...

JavaBean、JSP、Servlet

JSP是嵌入了Java代码的HTML网页; Servlet是嵌入了HTML内容的Java类。 JSP网页执行前所自动形成的JSP实现类实际上就是一个Servlet,Servlet是JSP的基础。 ...

Tomcat手工搭建Jsp和Servlet程序

要运行J2EE的程序,就必须安装相关的容器,而如何选择JSP+Servlet模式。Tomcat是很重要的选择之一,是世界上最为广泛的Servlet和JSP容器。 下载: 1. URL: http:/...

servlet 数据存储几种方式和jsp 作用域

有几个对象 1、Session:一个用户第一次访问网站,有一个唯一的id 存在客户电脑里(cookie) 2、request:从浏览器的一次请求 3、ServletContext:可以表示多个sevl...

Servlets&JSP基础篇之Servlet的编写&部署&运行

Servlets&基础篇之Servlet的编写&部署&运行本篇文章指在全手动建立一个最简单的web程序—在浏览器中输出Hello,Servlet和当前时间。1. 建立如下目录树 project-...

javaweb学习总结(——基于Servlet+JSP+JavaBean开发模式的用户登录注册

javaweb学习总结(二十二)——基于Servlet+JSP+JavaBean开发模式的用户登录注册 一、Servlet+JSP+JavaBean开发模式(MVC)介绍   Servlet+JS...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)