JSP基础

来源:互联网 发布:网易股票分时数据 编辑:程序博客网 时间:2024/05/01 11:15

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页面

适用场景:一般用于用户登陆的时候,根据角色转发到相应的模块。

参考网站:jsp中redirect和forward的区别

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也是对象。
参考网站:百度知道



0 0
原创粉丝点击