文档章节

JSP设计

lzw_me
 lzw_me
发布于 2014/05/30 01:20
字数 1310
阅读 229
收藏 5
点赞 0
评论 0

header和headerValues:  header 储存用户浏览器和服务端用来沟通的数据  例:要取得用户浏览器的版本,可以使用${header["User-Agent"]}。  另外在鲜少机会下,有可能同一标头名称拥有不同的值,此时必须改为使用headerValues 来取得这些值。 []与.运算符:     EL 提供.和[]两种运算符来存取数据。 当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号,就一定要使用 []。 例如:         ${user.My-Name}应当改为${user["My-Name"] }     如果要动态取值时,就可以用[]来做,而.无法做到动态取值。例如:         ${sessionScope.user[data]}中data 是一个变量 变量:     EL存 取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为username的变量。因为我们并没有指定哪一个范围的 username,所以它会依序从Page、Request、Session、Application范围查找。假如途中找到username,就直接回 传,不再继续找下去,但是假如全部的范围都没有找到时,就回传null。     属性范围在EL中的名称         Page         pageScope         Request         requestScope         Session         sessionScope         Application     applicationScope EL隐含对象:  1.与范围有关的隐含对象  与范围有关的EL 隐含对象包含以下四个: pageScope、requestScope、sessionScope 和applicationScope;  它们基本上就和JSP的pageContext、request、session和application一样;  在EL中,这四个隐含对象用来取得范围属性值,即getAttribute(String name).   例如:我们要取得session中储存一个属性username的值,可以利用下列方法:     session.getAttribute("username") 取得username的值,  在EL中则使用下列方法     ${sessionScope.username}    2.与输入有关的隐含对象  与输入有关的隐含对象有两个:param和paramValues,它们是EL中比较特别的隐含对象。    例如我们要取得用户的请求参数时,可以利用下列方法:     request.getParameter(String name)     request.getParameterValues(String name)  在EL中则可以使用param和paramValues两者来取得数据。     ${param.name}     ${paramValues.name} 其他隐含对象:  cookie  JSTL并没有提供设定cookie的动作,  例:要取得cookie中有一个设定名称为userCountry的值,可以使用${cookie.userCountry}来取得它。    header和headerValues  header 储存用户浏览器和服务端用来沟通的数据  例:要取得用户浏览器的版本,可以使用${header["User-Agent"]}。  另外在鲜少机会下,有可能同一标头名称拥有不同的值,此时必须改为使用headerValues 来取得这些值。  书上的例子: <c:forEach items="${pageContext.request.cookies}" var="c">
          &nbsp;&nbsp;<b><c:out value="${c.name}" /></b>:
          <c:out value="${c.value}" /><br>
        </c:forEach>
cookie:

javax.servlet.http
类 Cookie

java.lang.Object   javax.servlet.http.Cookie
包含getName和getValue方法
Example 8-3. Request information (reqinfo.jsp):
<%@ page contentType="text/html" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>    <html>   <head>     <title>Request Info</title>   </head>   <body bgcolor="white">        The following information was received:     <ul>       <li>Request Method:          <c:out value="${pageContext.request[method]}" />       <li>Request Protocol:          <c:out value="${pageContext.request[protocol]}" />       <li>Context Path:          <c:out value="${pageContext.request.contextPath}" />       <li>Servlet Path:          <c:out value="${pageContext.request.servletPath}" />       <li>Request URI:          <c:out value="${pageContext.request.requestURI}" />       <li>Request URL:          <c:out value="${pageContext.request.requestURL}" />       <li>Server Name:          <c:out value="${pageContext.request.serverName}" />       <li>Server Port:          <c:out value="${pageContext.request.serverPort}" />       <li>Remote Address:          <c:out value="${pageContext.request.remoteAddr}" />       <li>Remote Host:          <c:out value="${pageContext.request.remoteHost}" />       <li>Secure:          <c:out value="${pageContext.request.secure}" />       <li>Cookies:<br>         <c:forEach items="${pageContext.request.cookies}" var="c">           &nbsp;&nbsp;<b><c:out value="${c.name}" /></b>:           <c:out value="${c.value}" /><br>         </c:forEach>       <li>Headers:<br>         <c:forEach items="${headerValues}" var="h">            &nbsp;&nbsp;<b><c:out value="${h.key}" /></b>:           <c:forEach items="${h.value}" var="value">             <br>             &nbsp;&nbsp;&nbsp;&nbsp;<c:out value="${value}" />           </c:forEach>           <br>         </c:forEach>     </ul>   </body> </html>
pageContext隐含对象对应于javax.servlet.jsp.PageContext型态之对象,
隐含对象都自动的被加入至pageContext中,您可以藉由它来取得与JSP相关的隐含对象对应之Servlet对象
request:请求作用域,就是客户端的一次请求。
Request对象代表了客户端的请求信息(如请求的来源、
cookies和请求相关的参数值等等),
主要用于接受客户端通过HTTP协议传送给服务器端的数据。
accessed through the implicit pageContext variable's request property.
The request property is an instance
of a class named javax.servlet.http.HttpServletRequest

 Properties for javax.servlet.http.HttpServletRequestProperty nameJava typeAccessDescriptionauthType StringReadThe name of the authentication scheme protecting the requestcharacterEncoding     StringReadThe request body character encoding, or null if unknowncontentLength     intReadThe request body length, or -1 if unknowncontentType     StringReadThe request body MIME typecontextPath     StringReadThe context path for the requestcookies     javax.servlet.http.Cookie[]ReadThe cookies received with the requestlocale     java.util.LocaleReadThe client's preferred localelocales     java.util.EnumerationReadA list of all client locales in order of preferencemethod     StringReadThe request method (e.g., GET, POST)protocol     StringReadThe protocol name and version, e.g., HTTP/1.1remoteAddr     StringReadThe client's IP addressremoteHost     StringReadThe client's hostname or IP address if not knownremoteUser     StringReadThe username used to make the request if the page is protected, otherwise nullrequestURI     StringReadThe request URI, e.g., /app/page.jsprequestURL     StringBufferReadThe request URL, e.g., http://server/app/page.jspscheme     StringReadThe scheme, e.g., http or httpsservletPath     StringReadThe context-relative path for the request, e.g., /page.jspserverName     StringReadThe name of the server the request was sent toserverPort     intReadThe port the request was sent tosecure     booleanReadtrue if the request was made over a secure channel (e.g., SSL)userPrincipal     java.security.PrincipalReadThe Principal representing the user making the request if the page is protected, otherwise null
对比代码:
<%
out.println("Protocol: " + request.getProtocol() + "<br>");
out.println("Scheme: " + request.getScheme() + "<br>");
out.println("Server Name: " + request.getServerName() + "<br>" );
out.println("Server Port: " + request.getServerPort() + "<br>");
out.println("Protocol: " + request.getProtocol() + "<br>");
out.println("Remote Addr: " + request.getRemoteAddr() + "<br>");
out.println("Remote Host: " + request.getRemoteHost() + "<br>");
out.println("Character Encoding: " + request.getCharacterEncoding() + "<br>");
out.println("Content Length: " + request.getContentLength() + "<br>");
out.println("Content Type: "+ request.getContentType() + "<br>");
out.println("Auth Type: " + request.getAuthType() + "<br>");
out.println("HTTP Method: " + request.getMethod() + "<br>");
out.println("Path Info: " + request.getPathInfo() + "<br>");
out.println("Path Trans: " + request.getPathTranslated() + "<br>");
out.println("Query String: " + request.getQueryString() + "<br>");
out.println("Remote User: " + request.getRemoteUser() + "<br>");
out.println("Session Id: " + request.getRequestedSessionId() + "<br>");
out.println("Request URI: " + request.getRequestURI() + "<br>");
out.println("Servlet Path: " + request.getServletPath() + "<br>");
out.println("Accept: " + request.getHeader("Accept") + "<br>");
out.println("Host: " + request.getHeader("Host") + "<br>"); 
out.println("Referer : " + request.getHeader("Referer") + "<br>"); 
out.println("Accept-Language : " + request.getHeader("Accept-Language") + "<br>"); 
out.println("Accept-Encoding : " + request.getHeader("Accept-Encoding") + "<br>"); 
out.println("User-Agent : " + request.getHeader("User-Agent") + "<br>"); 
out.println("Connection : " + request.getHeader("Connection") + "<br>"); 
out.println("Cookie : " + request.getHeader("Cookie") + "<br>"); 


%>

本文转载自:http://blog.csdn.net/syhhl007/article/details/1756460

共有 人打赏支持
lzw_me
粉丝 4
博文 149
码字总数 42741
作品 0
昌平
程序员
深入研究Servlet线程安全性问题

摘 要:介绍了Servlet多线程机制,通过一个实例并结合Java 的内存模型说明引起Servlet线程不安全的原因,给出了保证Servlet线程安全的三种解决方案,并说明三种方案在实际开发中的取舍。   ...

凯文加内特
2014/05/15
0
0
开发出一个高质量的J2EE系统解析

首先说下, 这篇文章我觉得很强大,很给力,概念性的东西蛮多的,所以需要慢慢的去读,可以加深你对j2ee的理解和应用。值得大家阅读。 J2EE学习者越来越多,J2EE本身技术不断在发展,涌现出各...

dengzhangtao
2010/12/06
0
0
JBoss 系列八十四: 使用 JMS session 时的一个误区

概述 我们通常使用 JMS session 连接JMS消息队列,创建生产者往队列发送消息,或创建消费者从队列消费消息,BaseJMSTaskServer.java中的start()方法就是一个例子,注意BaseJMSTaskServer.jav...

无鸯
2014/02/04
0
0
Servlet 工作原理解析【转】

简介: Web 技术成为当今主流的互联网 Web 应用技术之一,而 Servlet 是 Java Web 技术的核心基础。因而掌握 Servlet 的工作原理是成为一名合格的 Java Web 技术开发人员的基本要求。本文将带...

磊神Ray
2011/09/01
0
3
关于servlet线程安全问题

Servlet/JSP技术和ASP、PHP等相比,由于其多线程运行而具有很高的执行效率。由于Servlet/JSP默认是以多线程模式执行的,所以,在编写代码时需要非常细致地考虑多线程的安全性问题。然而,很多...

underA
2013/05/12
0
2
(JavaEE-07)JSP.md

JSP JSP全称是Java Server Pages,它和Servlet技术一样,都是SUN公司定义的一种用于开发动态Web资源的技术。JSP的编写就像编写HTML一样简单,但是与HTML不同的是,在JSP中,可以编写Java代码...

_-Leon-_
2014/07/04
0
0
2014-07-03 Java Web的学习(3)-----Servlet的知识

1.什么是Servlet SUN公司定义Servlet规范,其中Servlet API是这样定义的:A servlet is a small Java program that runs withina Web server. Servlets receive and respond to requests from ......

查封炉台
2014/07/08
0
0
Servlet 工作原理解析

要介绍 Servlet 必须要先把 Servlet 容器说清楚,Servlet 与 Servlet 容器的关系有点像枪和子弹的关系,枪是为子弹而生,而子弹又让枪有了杀伤力。虽然它们是彼此依存的,但是又相互独立发展...

lvzjane
2013/01/05
0
2
WebApplicationContext : org.springframework.web...

如果您想要在自己所定义的Servlet类别中使用Spring的容器功能,则也可以使用 org.springframework.web.context.ContextLoaderListener,例如在web.xml中使用< listener>标签加以定义: ... ...

王健
2011/12/23
0
0
深入研究Servlet线程安全性问题

Servlet/JSP技术和ASP、PHP等相比,由于其多线程运行而具有很高的执行效率。由于Servlet/JSP默认是以多线程模式执行的,所以,在编写代码时需要非常细致地考虑多线程的安全性问题。然而,很多...

hx50859042
2014/04/22
0
2

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Kafka设计解析(一)- Kafka背景及架构介绍

原创文章,转载请务必将下面这段话置于文章开头处。(已授权InfoQ中文站发布) 本文转发自技术世界,原文链接 http://www.jasongj.com/2015/03/10/KafkaColumn1 摘要   Kafka是由LinkedI...

mskk
8分钟前
0
0
使用Service Mesh整合您的微服务架构

在微服务架构的世界中,它正在达到这样的程度,即管理系统的复杂性对于利用它带来的好处变得至关重要。 目前,如何实现这些微服务不再是一个问题,因为有很多可用的框架(Spring Boot,Vert....

xiaomin0322
11分钟前
0
0
看看 LinkedList Java 9

终于迎来了 LinkedList 类,实现的接口就有点多了 Serializable, Cloneable, Iterable<E>, Collection<E>, Deque<E>, List<E>, Queue<E>。LinkedList是一个实现了List接口和Deque接口的双端链......

woshixin
30分钟前
0
0
算法 - 冒泡排序 C++

大家好,我是ChungZH。今天我给大家讲一下最基础的排序算法:冒泡排序(BubbleSort)。 冒泡排序算法的原理如下: 比较相邻的元素。如果第一个比第二个大(可以相反),就交换他们两个。 对每...

ChungZH
33分钟前
0
0
jquery ajax request payload和fromData请求方式

请求头的不同 fromData var data = { name : 'yiifaa'};// 提交数据$.ajax('app/', { method:'POST', // 将数据编码为表单模式 contentType:'application/x-ww...

lsy999
35分钟前
0
0
阿里P7架构师,带你点亮程序员蜕变之路

前言: Java是现阶段中国互联网公司中,覆盖度最广的研发语言。 掌握了Java技术体系,不管在成熟的大公司,快速发展的公司,还是创业阶段的公司,都能有立足之地。 有不少朋友问,成为Java架...

Java大蜗牛
36分钟前
1
0
Ecstore 在没有后台管理界面(维护)的情况如何更新表的字段

window 系统: 切换到:app\base 目录下: C:\Users\qimh>d: D:\>cd D:\WWW\huaqh\app\base 执行:D:\WWW\huaqh\app\base>cmd update linux 系统: 1># cd /alidata/www.novoeshop.com/app/......

qimh
41分钟前
0
0
设计模式-策略模式

策略模式 解释 对工厂模式的再次封装,使用参数控制上下文信息(将工厂返回的实例赋值给context field) 不会返回bean实例,只是设置对应的条件 调用context的方法(调用field的方法) 用户只...

郭里奥
44分钟前
0
0
python使用有序字典

python自带的collections包中有很多有用的数据结构可供使用,其中有个叫OrderedDict类,它可以在使用的时候记录元素插入顺序,在遍历使用的时候就可以按照原顺序遍历。 a = {"a":1,"b"...

芝麻糖人
今天
0
0
RestTemplate HttpMessageConverter

RestTemplate 微信接口 text/plain HttpMessageConverter

微小宝
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部