jsp技术

第一部分 jsp技术

一:在server.xml中配置<Context/>元素部署web应用?

 

二:Jsp指令:定义jsp页面相关信息,优先等级高

15个

page,language,session,info,import,contentType,pageEncoding,autoFlush,isErrorPage,errorPage,buffer,out,isELIgnored

;include:在使用include 指令的时候被包含的文件不要使用html便签,在使用include 指令时候应该不要重复变量,先导入到相关jsp页面中,然后会被服务器编译执行,只能添加静态的页面,相当于合二为一

,taglib:自定义标签)

                                                                                                                                                                   

三:EL表达式:(ExpressionLanguage)

 

四:9*9乘法表:

 

五:jsp动作标签,是在请求处理阶段按照出现的先后顺序执行的。

1.<jsp:include page=”url”flush=”flase|true”/>:可以包含静态和动态的页面,flush:设置是否刷新缓存区,两个文件相互独立,被包含的页面会对包含他的页面中请求对象做处理,将处理结果作为当前页面的包含内容,然后一起发送到服务器端,两者相互独立。

        

                                                                                                                        

2.<jsp:forwardpage=”url”/>:

 

3.html中:<td colapsn=””></td>:colspan:规定 单元格可以横跨的列数

4.<jsp:param name=” username”value=”” /> 可以为其它标签传递参数,在其它页面得到参数的值可以使用,request.getParameter(“username”);

 

六:class.forName();

Class.forName(xxx.xx.xx) 返回的是一个类

1.在java里面任何class都要装载在虚拟机上才能运行。这句话就是装载类用的(和new 不一样,要分清楚)。
A a = (A)Class.forName("pacage.A").newInstance();
这和
A a = new A();
是一样的效果。

2.jvm会执行静态代码段,静态代码是和class绑定的,class装载成功就表示执行了你的静态代码了。而且以后不会再走这段静态代码了。

Class.forName(xxx.xx.xx) 返回的是一个类
Class.forName(xxx.xx.xx);的作用是要求JVM查找并加载指定的类,也就是说JVM会执行该类的静态代码段

3.动态加载和创建Class 对象,比如想根据用户输入的字符串来创建对象
String str = 用户输入的字符串
Class t = Class.forName(str);
t.newInstance();

 在初始化一个类,生成一个实例的时候,newInstance()方法和new关键字除了一个是方法,一个是关键字外,最主要的区别在于创建对象的方式不一样,前者是使用类加载机制,后者是创建一个新类。这主要考虑到软件的可伸缩、可扩展和可重用等软件设计思想。

4.Java中工厂模式经常使用newInstance()方法来创建对象

例如:
class c = Class.forName(“Example”);
factory = (ExampleInterface)c.newInstance();

其中ExampleInterface是Example的接口,可以写成如下形式:
String className = "Example";
class c = Class.forName(className);
factory = (ExampleInterface)c.newInstance();

进一步可以写成如下形式:
String className = readfromXMlConfig;//从xml 配置文件中获得字符串
class c = Class.forName(className);
factory = (ExampleInterface)c.newInstance();

上面代码已经不存在Example的类名称,它的优点是,无论Example类怎么变化,上述代码不变,甚至可以更换Example的兄弟类Example2 , Example3 , Example4……,只要他们继承ExampleInterface就可以。

5.从JVM的角度看,我们使用关键字new创建一个类的时候,这个类可以没有被加载。但是使用newInstance()方法的时候,就必须保证:1、这个类已经加载;2、这个类已经连接了。而完成上面两个步骤的正是Class的静态方法forName()所完成的,这个静态方法调用了启动类加载器,即加载java API的那个加载器。

6.newInstance()实际上是把new这个方式分解为两步,即首先调用Class加载方法加载某个类,然后实例化。 这样分步的好处是显而易见的。我们可以在调用class的静态加载方法forName时获得更好的灵活性,提供给了一种降耦的手段。

7.最简单的描述来区分new关键字和newInstance()方法的区别:
newInstance: 弱类型。低效率。只能调用无参构造。
new: 强类型。相对高效。能调用任何public构造。

七:获取请求客户端信息的方法:(10个方法)

1.      使用request.setAttribute();可以设置新的属性,但作用域只在一次请求中

2.      Cookie:小段文本信息,可以标识用户身份,记录用户名和密码,跟踪重复用户。在服务器端生成发送给浏览器。主要用于存储一些不太重要的数据。

问题八:response(常用7大方法)

setHeader(name,value):设置http头文件

e.g.

response.setHeader(“refresh”,”5”);浏览器5秒刷新一次

response.setheader(“refresh”,”2;URL=welcome.jsp”);两秒后自动跳转到指定页面

服务器要输出信息时不会直接写到浏览器,而是先写到缓冲区,类外:(1)jsp页面输出信息全部写入缓冲区,(2)缓冲区已经满(3)jsp页面调用flushbuffer()或者out对象的flush()方法。

八:session对象

1.      服务器给每一个用户都创建一个session对象,用于保存用户信息和追踪用户。

2.      使用Map来保存数据,可以保存对象和字符串之类的数据。

3.      在使用getAttribute获取session中保存的信息时,需要保证设置session的界面被请求过,而且没有中断过,使用该方法才可有用。

 

九:application对象

1.      功能类似于session对象,但是保存信息周期更加长,在整个应用程序中都起作用。

2.      访问应用程序初始化参数:

十:out

1.      clear清楚缓冲区数据,如果内容提交了,会报IO异常错误,而使用clearBuffer清除缓冲区数据不会。

2.      intcount =(Integer.parseInt(application.getAttribute("count").toString()));

解释:application.getAttribute()返回值是Object类型,将object转化为string类型的数据,使用Integer.parseInt重新构造一个integer对象。

int mycount =(Integer.valueOf(application.getAttribute("count").toString()).intValue());

返回一个整数对象的值。

 

十一:其它内置对象

1.      pageContextt:获取任何范围内的参数,包括request,response,session,application,out等的对象。

2.      config:获取服务器配置信息。

3.      page:应答或者请求,类似java中的this指针。

4.      exception:异常处理对象。在使用时需要在jsp的page指令中设置isErrorPage=”true”的条件。

十二:

1.onKeyDown=”javastrap代码”,按下键盘时出发该事件,使用event.keyCode取回键盘输入的数据.

2.ondragstart=”javastrap代码”在哦、用户拖动元素时触发。

3. cellpadding 属性规定单元边沿与其内容之间的空白

4. cellspacing 属性规定单元格之间的空间

5. valign 属性规定单元格中内容的垂直排列方式

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值