1.声明变量和方法。
<%! %>:
用于声明共享变量,所有用户共享这些变量,每个用户的修改都会影响其他用户。
用这里声明的方法修改数据时,应加上synchronized关键词实现同步锁定,防止同时修改变量。
释放时间:这种变量只有当服务器关闭时才会释放。
使用示例:可用于计算网页的访问次数。
<% %>:
用于声明个人变量,每个用户都有自己的变量。
释放时间:程序执行完自动释放。
注意:尽量少用上述方式声明变量和方法,尽量在JavaBean中操作,将静态页面和动态页面分离。
2.JSP表达式
<%= %> :将表达式的值作为HTML的内容直接输出到浏览器窗口中。
3.JSP注释
HTML注释:
<!-- --> : Web服务器不会将其作为程序代码进行解释,直接将其发送给浏览器。查看源文件可以看到。
jsp注释:
<%-- --%>:Web服务器直接将其忽略掉,用浏览器查看源代码时不会看到。
//
/* */ :
/** */ :
4. 指令标签 <%@ %>
4.1 page : <%@ page %>
用途:设置当前JSP文件及其后一个或多个JSP文件的全局属性。
该指令在JSP文件中的最佳位置:
JSP文件的顶部,即JSP文件的第一句就应该是 <%@ page %>指令。
4.2 include :<%@ include %>
用途:包含一个文本或代码的文件。
只有一个file属性,即<%@ include file="xxx" %>,xxx是URL的一部分,不包含协议、端口号和域名,路径是相对于JSP文件而言的。
包含方式:
a.若file是JSP文件,将file编译完后的结果插入到include 指令所在的位置。
b.若file是HTML或文本文件,则直接将原内容插入到include 指令所在的位置。
与jsp:include指令的区别:
@include :当JSP文件被转换成Servlet的时候插入辅页面,即导入后,再将主JSP文件转换成Servlet,所以是静态导入。
jsp:include:当辅页面被请求时才插入辅页面,所以是动态导入。
该指令的使用时机:
导入的文件改动不频繁时,适合使用该方式。若较频繁,应使用jsp:include动作。
注意:
a.被包含的文件中不能含有HTML、body等标签,即应注意两文件中的内容不要发生冲突。
4.3 jsp:forward 转向执行page属性指定的JSP页面
适用场景:一般用于用户登陆的时候,根据角色转发到相应的模块。
eg:
<jsp:forward page = " " >
<jsp:param value="<%= %>" name=" " >
</jsp:forward>
4.4 jsp:uesBean 载入一个将在页面中使用的JavaBean。
4.4.1什么是JavaBean?
虽然可以把大段的Java代码放在脚本中,但是绝大多数Java代码是可以重复使用的,这样的代码就可以作为名为JavaBean的组件。
例如,一个人就是一个JavaBean,他的名字、身份证号码、住址就是其属性。
4.4.2 usesBean标签如何使用?
<jsp:usesBean id="name" class="package.class" scope = "page|session|application"/>
作用:创建一个class属性指定的类的实例,该实例的名字为name(id属性的值)。
参数解释:
id —— 类的实例的名称
class —— 告诉网页从何处查找Bean,即它的Java类别名是什么。
scope —— 设置Bean实例的存活时间(生命周期)。
辅助标签:
获取属性值:<jsp:getProperty id=" " property=" ">
id —— 实例的名称
property —— 属性名称
改变(修改属性的值,注意:不能添加新属性,属性的名字和个数是在Bean的Java类中就编写好的)属性:
属性值从一个参数获得:<jsp:setProperty id=" " property=" " value=" ">
value —— 属性的值
属性值从一个表获得:<jsp:setProperty id=" " property=" * ">
value —— 属性的值
创建的.java文件应该放在哪里?
像以往用eclipse创建java工程那样即可,并没有任何变化。(教程中可能会说,手动编译.java文件成.class文件,然后将字节码文件(即.class)放到WEB_INF中的classes目录中,其实并没有必要)
1.创建.java文件,如下:
2.重启服务器。这时会自动编译.java文件,并自动将生成的字节码文件放到WEB-INF的classes下。如下:
3.若出现错误,例如:xxx cannot be resolved.即找不到xxx。就clean一下:project——>clean,再重启一遍服务器。
这样就完成了。
=====================================================================================
5.js判断一个对象是否为空
1、if (typeOf(x) == "undefined")
2、if (typeOf(x) != "object")
3、if(!x)
参考网址: 网易博客
6 request.getParameter() 和 request.getAttribute()的区别
HttpServletRequest类既有getAttribute()方法,也由getParameter()方法,这两个方法有以下区别: (1)HttpServletRequest类有setAttribute()方法,而没有setParameter()方法 (2)当两个Web组件之间为链接关系时,被链接的组件通过getParameter()方法来获得请求参数,例如假定welcome.jsp和authenticate.jsp之间为链接关系,welcome.jsp中有以下代码: <a href="authenticate.jsp?username=weiqin"authenticate.jsp </a或者:<form name="form1" method="post" action="authenticate.jsp" 请输入用户姓名:<input type="text" name="username" <input type="submit" name="Submit" value="提交"</form在authenticate.jsp中通过request.getParameter("username")方法来获得请求参数username: <% String username=request.getParameter("username"); % (3)当两个Web组件之间为转发关系时,转发目标组件通过getAttribute()方法来和转发源组件共享request范围内的数据。假定authenticate.jsp和hello.jsp之间为转发关系。authenticate.jsp希望向hello.jsp传递当前的用户名字,如何传递这一数据呢?先在authenticate.jsp中调用setAttribute()方法:<%String username=request.getParameter("username"); request.setAttribute("username",username);%<jsp:forward page="hello.jsp" / 在hello.jsp中通过getAttribute()方法获得用户名字: <% String username=(String)request.getAttribute("username"); % Hello: <%=username % 从更深的层次考虑,request.getParameter()方法传递的数据,会从Web客户端传到Web服务器端,代表HTTP请求数据。request.getParameter()方法返回String类型的数据。 request.setAttribute()和getAttribute()方法传递的数据只会存在于Web容器内部,在具有转发关系的Web组件之间共享。这两个方法能够设置Object类型的共享数据。 request.getAttribute()方法返回request范围内存在的对象,而request.getParameter()方法是获取http提交过来的数据。 一般是string型用request.getParameter 对象的引用用request.getAttribute 当然啦,String也是对象。参考网站: 百度知道