Jsp基本语法
1. Jsp语法的组成:脚本元素、指令元素和动作元素;
2. Jsp脚本元素:
a) 隐藏注释:Jsp注释:<%-- comment --%>;HTML中注释:<!—comment -->;
b) 声明语句:Jsp声明:<%! Declaration;%>或<%! 声明;[声明;]%>;(1)注意声明用
来定义一个或多个变量或方法,但并不输出任何文本;(2)声明语句必须在结尾以分号“;”结束,page指令中包含进来的变量或方法,不需要对其进行再声明;(3)被<%!--%>声明的变量为全局变量(方法)在整个页面有效,变量占用的空间知道服务器关闭后才释放;被脚本<%--%>声明的变量为局部变量,变量在一定的范围内有效;(4)对于多个页面都要使用到的变量,可以使用<%@ include%>或<jsp:include>包含进来;
3. Jsp脚本段(Scriptlets):<% code fragment%>包含了变量、表达式、方法和多个Jsp语
句;
4. 表达式(Expression):<%=expression%>,注意运算顺序为从左到右;
5. Jsp指令元素:描述了Jsp页面转换成Jsp容器所能执行的Java代码的控制信息;
a) 指令格式:<%@ 指令名 属性1=”值1” 属性2=”值2”…..%>
page指令:<%@ page
[language=”java”][extends=”package.class”][import=”{package.class|package.*},…..”][session=”true|false”][buffer=”none|8kb|sizekb”][autoFlush=”true|false”][isThreadSafe=”true|false”][info=”text”][errorPage=”relativeURL”][contentType=”mineType[;charset=characterSet]”|”text/html;charset=ISO-8859-1”][isErrorPage=”true|false”]%>注意:有些Java类默认导入的:java.lang.*;javax.servlet..*;javax.servlet.jsp.*;javax servlet.http.*;contentType属性指定返回浏览器的内容类型,属性值有:text/plain(纯文本页面),text/html(纯文本的HTML页面),text/xml(XML页面),application/x-msexcel(Excel文件)和application/msword(word文件),在该属性中指定返回页面中所使用的字符编码方式:charset=gbk等;如:<%@ page contentTypt=”text/html;charset=gbk2312”%>。Info属性设置的值,能够使用Servlet.getServletInfo方法取回。
b)include指令:<%@ include file=”relative url%>
c)taglib指令:<%@ taglib uri=”tagLibraryURL” prefix=”tagPrefix”%>,uri:统一资源标识符,指明标签的路径;prefix表示标签的前辍;注意:前辍不能是:jsp/jspx/javax/servlet/sun/sunw.
6. Jsp动作元素:Jsp预设Action Element标签;
a) JavaBean类:<jsp:useBean>:使用JavaBean,<jsp:setProperty>:设置JavaBean的属性,<jsp:getProperty>:获得JavaBean的属性;
b) 一般元素:<jsp:plugin>:载入javaApplet或javaBean,<jsp:forwor>:网页重新定向,<jsp:include>:载入Html或Jsp文件;
c) xml 2.0:<jsp:attribute>设置标签属性,<jsp:body>:动态设置XML标签主体,<jsp:element>:动态设置xml标签;
(1)<jsp:include>的语法:有参数和无参数两种:<jsp:include page=”relative URL” flush=”true|false”>和
<jsp:include page=”relative URL” fluse=”true|false”>
<jsp:param name=”attributeName” value=”attributeValue”/>
<jsp:param…..
</jsp:include>
注意:include指令时编译时包含,对象为静态;include动作元素:是执行时包含,对象为静态和动态;
(2)forword动作元素:只有page属性,其他的与include动作元素的语法格式一致;forword动作元素用于在服务器端结束当前页面的执行,并从当前页面跳转到其他指定的页面。转向的页面可以使HTML/jsp/Servlet类;简单的说:用于重定向。<jsp:forword>应用于登录,进行权限验证的页面。当验证成功,它吧页面forword跳转到success.jsp.如果不成功,它把页面forwor.d.jsp.重定向login.jsp页面重新进行验证。
(3)<jsp:param>元素用于向Jsp程序传递参数,由程序取得参数值,使用时必须要设置其name属性表示专递参数的名称,并通过value属性来设置该参数的值。设置元素的属性必须加上双引号” “.在jsp程序中通过内置对象request.getParameter(“name”);获得相应的参数值。
(4)<jsp:useBean>用来加载页面中使用的JavaBean。语法格式为:<jsp:useBean id=”beanInstanceName” scope=”page|request|session|application” class=”package.class”></useBean>.注意:id指定javaBean的实例变量的名称,scope指定该Bean变量的有效范围,page是指当前页面内有效,request是指任何执行相同请求的jsp文件中使用Bean,直到页面执行完毕。Session指从创建Bean开始,在相同session下的jsp页面可以使用Bean;application在相同application的jsp页面中使用Bean..
a)useBean的属性和方法:id命名引用该Bean的变量。注意:如果能够找到id和scope相同的Bean实例,该动作将使用已有实例不再创建实例。Scope设置Bean实例的有效性,class指定Bean的完整报名。type指引用该对象的变量类型。它必须是Bean类的名字、超类名字、该类所实现的接口名字之一.beanName是Bean的名字。如果提供了type和beanName,可以省略class属性。
(5)<jsp:serProperty>用于设置Bean的属性值。语法格式:<jsp:setProperty name=”beanInstanceName”{ property=”*”| property=”propertyName[param=”parameterName”]| Property=”propertyName” value=”{String|<%+expression%>}”}/>该动作用来设置已经实例化的Bean对象的属性。其语法格式:1.在jsp:useBean元素外面或后面使用jsp:setProperty ,此时不管现在使用Bean还是创建Bean实例,都要执行jsp:setProperty.。格式为:<jsp:useBean id=”myBean”…/><jsp:setProperty name=”myBean” property=”someProperty”…/>
2.只有新建Bean实例才会执行jsp:setProperty; 格式:<jsp:useBean id=”myBean”…/><jsp:setProperty name=”myBean” property=”someProperty”…/></jsp:useBean>
Jsp:setProperty属性和方法:name指定是那个Bean,(必须),property:该属性是必须的,表示要设置的哪个属性。如果property的值为*表示所有名字和Bean属性名字匹配的请求都将被传递给相应属性的set方法。value该属性可选的,指定Bean属性的值,string.valueOf方法转换为各类的数据类型,注意:value和param不能同时使用。Param属性可选的,指定哪个参数作为Bean的值,如果当前没有请求参数,则什么也不做,系统不会把null值传递个Bean属性的set方法。当Bean属性和Request参数的名字不同,需要指定property和param.
(6)jsp:getProperty用来获取Bean的属性值,在页面中显示。格式为:<jsp:getProperty name=”beanInstanceName” property=”propertyName”/>注意在使用jsp:getProperty前,必须要由jsp:useBean所创建的对象。不能使用该动作来检索一个已经被索引的属性。
注意:表单中的数据元素name一定要与JavaBean类的中的属性名一致。
(7)<jsp:plugin>操作元素的功能用于从Jsp页面中加载Java Applet 或JavaBean程序组件与HTML的<Applet>.<Object>标签类似。使用语法:<jsp: plugin type=”bean|applet” code=”classFileName” codebase=”classFileDirectoryName” name=”instanceName”
align=”left|right|top|middle|bottom” width=”” height=”” hspace=”horizontalSpace”vspace=”vericalSpace”archive=”archiveURL”><jsp:params<jsp:param name=”propertyName” value=”propertyValue”/></jsp:params><jsp:fallback>text message</jsp:fallback></jsp:plugin>.
Jsp:plugin元素的属性:type加载java程序的类型,code加载 java程序编译后的类型名称(*.class),codebase:编译后java程序类所在的目录。name:用来对加载Java Applet或Bean程序设置一个可以识别的名称。Hspace加载程序的显示区与其他网页内容的水平间隔。 <jsp:params>是表示要传递给加载的程序。
第二篇:linux下php、mysql、reids、gearman等基本环境搭建中遇到的问题总结
网卡配置
修改ONBOOT="no"中的no位yes,修改后为ONBOOT="yes"
添加下面配置项,其中的具体IP等配置需要根据实际情况修改
BOOTPROTO=static
IPADDR=192.168.1.113
NETMASK=255.255.255.0
GETEWAY=192.168.1.1
DNS1=192.168.0.1
1)使用终端输入 date 命令后出现乱码
进行下面操作
编辑/etc/sysconfig/i18n,修改为如下内容:
LANG="zh_CN.GB2312″
SUPPORTED="zh_CN.UTF-8:zh_CN:zh"
SYSFONT="latarcyrheb-sun16"
修改完成后,推出终端重新登录
2)没有wget (下载工具,系统必须可以接入网络)
yum install wget
3)没有make (安装程序,系统必须可以接入网络)
运行yum install make
4)安装上传下载工具(rz/sz)
通过wget http://freeware.sgi.com/source/rzsz/rzsz-3.48.tar.gz 下载
解压:tar zxvf rzsz-3.48.tar.gz
运行:make posix
运行make posix时报错
[root@localhost src]# make posix
cc -O -DPOSIX -DMD=2 rz.c -o rz
make: cc:命令未找到
make: *** [posix] 错误 127
原因是没有安装gcc,运行下面命令(我只运行了前两个就可以用了,第三个命令没有试) yum install g++* -y
yum install gcc* -y
yum install glibc* -y
gcc安装完成后继续运行make posix 应该就可以安装完成了
复制rz/sz到bin目录下,命令:cp rz sz /usr/bin/
5)安装mysql时运行
cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr/local/webserver/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_SSL=bundled \
-DWITH_READLINE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1
命令时出现下方错误信息
-- Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)
CMake Error at cmake/readline.cmake:82 (MESSAGE):
Curses library not found. Please install appropriate package,
remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel. Call Stack (most recent call first):
cmake/readline.cmake:126 (FIND_CURSES)
cmake/readline.cmake:216 (MYSQL_USE_BUNDLED_LIBEDIT)
CMakeLists.txt:250 (MYSQL_CHECK_READLINE)
执行下面命令,
运行安装:yum install ncurses-devel
运行安装:yum install bison
删除文件:rm CMakeCache.txt
启动mysql是报错(mysql安装过程中不需要配置开机启动)
ln -s /var/lib/mysql /mysql .sock /tmp/mysql .sock (运行后无效果)
把/usr/local/webserver/mysql/support-files/目录下的my-huge.cnf配置文件复制到etc目录下
之后使用/bin/sh /usr/local/webserver/mysql/bin/mysqld_safe --datadir=/data1/mysql/data --pid-file=/data1/mysql/data/bogon.pid启动或者使用/etc/init.d/mysqld start启动
安装php过程中
提示:configure: error: xml2-config not found. Please check your libxml2 installation. 运行:yum install libxml2
yum install libxml2 –devel -y
提示:configure: error: Cannot find OpenSSL's <evp.h>
运行:yum install openssl openssl-devel
提示:configure: error: Please reinstall the libcurl distribution -
easy.h should be in <curl-dir>/include/curl/
运行:yum install curl curl-devel
提示:configure: error: Cannot find ldap.h
运行:yum install openldap-devel
提示:configure: error: Cannot find ldap libraries in /usr/lib.
运行:cp -frp /usr/lib64/libldap* /usr/lib/
提示:configure: error: Directory /usr/local/webserver/freetds is not a FreeTDS installation directory
运行:在/usr/local/webserver/目录下安装一个freetds 下载地址:http://ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz
$ tar zxvf freetds-stable.tgz(解压)
$ ./configure --prefix=/usr/local/webserver/freetds --with-tdsver=8.0 --enable-msdblib
$ make
$ make install
/usr/local/webserver/php/sbin/php-fpm启动php错误解决:
ALERT: [pool www] pm.min_spare_servers(0) must be a positive value
编辑php-fpm.conf找到pm.min_spare_servers 去除;号,注意非注释内容pm.min_spare_servers
ALERT: [pool www] pm.max_spare_servers(0) must be a positive value
编辑php-fpm.conf找到pm.max_spare_servers 去除;号,同样非注释内容pm.max_spare_servers
WARNING: [pool www] pm.start_servers is not set. It's been set to 20.
编辑php-fpm.conf找到pm.start_servers 去除;号,同样非注释内容pm.start_servers ERROR: bind() for address '127.0.0.1:9000' failed: Address already in use (98)
# netstat -ntlpps -ef|grep php查看进程,有N多进程
nobody 26152 26151 0 15:45 ? 00:00:00 php-fpm: pool www
nobody 26153 26151 0 15:45 ? 00:00:00 php-fpm: pool www
nobody 26154 26151 0 15:45 ? 00:00:00 php-fpm: pool www
nobody 26155 26151 0 15:45 ? 00:00:00 php-fpm: pool www
...........................
#killall php-fpm 结束所有php-fpm进程
再启动php-fpm
#/usr/local/php/sbin/php-fpm
成功
运行:./configure --prefix=/usr/local/webserver/Gearmand
报错:configure: error: Unable to find libevent
安装:gearman-1.0.2
运行:./configure --with-php-config=/usr/local/webserver/php/bin/php-config --with-gearman=/usr/local/webserver/Gearmand
报错:configure: error: Please install libgearman
运行:yum install libgearman-devel.i686 libgearman.i686
报错:configure: error: cannot find Boost headers version >= 1.39.0
运行:将boost安装目录中 lib/ 下的所有内容copy到/usr/lib 和 /usr/lib64下,同时 将 boost安装目录中 include/boost 软链到 /usr/include 中:
cd /usr/local/boost-1.47.0/lib
cp -rf * /usr/lib/;
cp -rf * /usr/lib64/;
ln -s /usr/local/boost-1.47.0/include/boost /usr/include/boost
报错:configure: error: cannot find the flags to link with Boost program_options
运行:ln -s /usr/local/boost/include/boost/ /usr/local/include/boost
ln -s /usr/local/boost/lib/libboost_program_options.so /usr/lib/libboost_program_options.so
报错:configure: error: cannot find the flags to link with Boost thread
运行:./configure --prefix=/usr/local/webservice/gearman --with-boost=/usr/local/webservice/boost/
(给手动指定boost库地址)
重新configure 后,出现别的错误:fatal error: uuid/uuid.h: No such file or directory
这是因为没有uuid库和头文件,需要安装e2fsprogs,试过yum命令安装,问题没解决,需要从源码编译
wget http://downloads.sourceforge.net/e2fsprogs/e2fsprogs-1.41.14.tar.gz
tar xvzf e2fsprogs-1.41.14.tar.gz
进入e2fsprogs-1.41.14目录后执行
/configure --prefix=/usr/local/e2fsprogs
make
make install
然后把uuid目录拷过去
cp -r lib/uuid/ /usr/include/
再次configure ,错误消失,于是执行 make
又报错:
libgearman/.libs/libgearman.so: undefined reference to `uuid_generate'
libgearman/.libs/libgearman.so: undefined reference to `uuid_unparse' collect2: ld returned 1 exit status
问题在网上找到了解决方法,就是重新编译e2fsprogs并加入参数
cd e2fsprogs-1.41.14
./configure --enable-elf-shlibs
make
make install
cp -rf lib/libuuid.so* /usr/lib
查看Gearman所有软件包的安装情况
运行:ldd /usr/local/sbin/gearmand