用 PHP 读取和编写 XML DOM
使用 DOM 库、SAX 解析器和正则表达式
有许多技术可用于用 PHP 读取和编写 XML。本文提供了三种方法读取 XML:使用 DOM 库、使用 SAX 解析器和使用正则表达式。还介绍了使用 DOM 和 PHP 文本模板编写 XML。
用 PHP 读取和编写可扩展标记语言(XML)看起来可能有点恐怖。实际上,XML 和它的所有相关技术可能是恐怖的,但是用 PHP
读取和编写 XML 不一定是项恐怖的任务。首先,需要学习一点关于 XML 的知识 —— 它是什么,用它做什么。然后,需要学习如何用 PHP
读取和编写 XML,而有许多种方式可以做这件事。
本文提供了 XML 的简短入门,然后解释如何用 PHP 读取和编写 XML。
什么是 XML?
XML 是一种数据存储格式。它没有定义保存什么数据,也没有定义数据的格式。XML 只是定义了标记和这些标记的属性。格式良好的 XML 标记看起来像这样:
<name>Jack Herrington</name>
这个 <name>
标记包含一些文本:Jack Herrington。
不包含文本的 XML 标记看起来像这样:
<powerUp />
用 XML 对某件事进行编写的方式不止一种。例如,这个标记形成的输出与前一个标记相同:
<powerUp></powerU ......
用 PHP 读取和编写 XML DOM
使用 DOM 库、SAX 解析器和正则表达式
有许多技术可用于用 PHP 读取和编写 XML。本文提供了三种方法读取 XML:使用 DOM 库、使用 SAX 解析器和使用正则表达式。还介绍了使用 DOM 和 PHP 文本模板编写 XML。
用 PHP 读取和编写可扩展标记语言(XML)看起来可能有点恐怖。实际上,XML 和它的所有相关技术可能是恐怖的,但是用 PHP
读取和编写 XML 不一定是项恐怖的任务。首先,需要学习一点关于 XML 的知识 —— 它是什么,用它做什么。然后,需要学习如何用 PHP
读取和编写 XML,而有许多种方式可以做这件事。
本文提供了 XML 的简短入门,然后解释如何用 PHP 读取和编写 XML。
什么是 XML?
XML 是一种数据存储格式。它没有定义保存什么数据,也没有定义数据的格式。XML 只是定义了标记和这些标记的属性。格式良好的 XML 标记看起来像这样:
<name>Jack Herrington</name>
这个 <name>
标记包含一些文本:Jack Herrington。
不包含文本的 XML 标记看起来像这样:
<powerUp />
用 XML 对某件事进行编写的方式不止一种。例如,这个标记形成的输出与前一个标记相同:
<powerUp></powerU ......
在JSP和Servlet中有几个地方都可以设置编码,各个编码的功能也不一样,本文将对各个编码做一个小结。
各种编码一览
A. JSP/Servlet都有的编码设置
1. request.setCharacterEncoding("UTF-8")
2. response.setCharacterEncoding("UTF-8")
3. response.setContentType("text/html;
charset=UTF-8");
4. response.setHeader("Content-Type", "text/html; charset=UTF-8");
B. JSP专有的编码设置
1. <%@ pageEncoding="UTF-8" %>
2. <%@ contentType="text/html; charset=UTF-8" %>
C. HTML页面中的编码设置
1. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
※以下内容用到本部分编码设置时,将使用A1, A3, B2的方式。
浏览器如何确定编码格式来显示页面
web服务器在接收到浏览器的请求信息后,经过处理,会发送一个应答消息给浏览器。应答消息包含一般三个部分:状态行,应答首部,应答主体。下面是一个示例:
HTTP/1.0 200 OK
Last-Modified: Mon: 20 Dec 2001 23:26:42 GET
Date: Tue 11 Jan 2002 20:52:40 GMT
S ......
未登陆,禁止访问任何页面,自动跳转到登陆页
package com.catalogeasy.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class LoginFilter implements Filter {
public void destroy() {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
// TODO Auto-generated method stub
HttpServletRequest httprequest = (HttpServletRequest) arg0;
HttpServletResponse httpresponse = (HttpServletResponse) arg1;
String temp = httprequest.getServletPath();
if(httprequest.getSession().getAttribute("user")==null){
if("/jdom.do".equals(temp)||"/login. ......
我把index.jsp文件放到WEB-INF下,又在WEB-INF下建立一个目录js用来放javascript文件,也就是说index.jsp和js目录是平级的,但是在index.jsp下引用javascript文件时怎么也找不到。
WEB-INF对于用户(也就是IE)不可见。
对策,把js放到WEB-INF外,或者通过专门的jsp/servlet/action等forward到相应的资源。 ......
<%
//header.jsp
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("Server Info: " + getServletConfig().getServletContext().getServerInfo() + "<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 ......
<%
//header.jsp
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("Server Info: " + getServletConfig().getServletContext().getServerInfo() + "<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 ......
struts2的实现方法
LangSelector.jsp
<%@taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<script type="text/javascript">
<!--
function langSelecter_onChanged() {
document.langForm.submit();
}
//-->
</script>
</head>
<body>
<s:set name="SESSION_LOCALE" value="#session['WW_TRANS_I18N_LOCALE']" />
<s:bean id="locales" name="tutorial.Locales" />
<form action="<s:url includeParams="get" encode="true"/>"
name="langForm"
style="background-color: powderblue; padding-top: 4px; padding-bottom: 4px;">
& ......