Java.docx

上传人:b****4 文档编号:27486277 上传时间:2023-07-02 格式:DOCX 页数:33 大小:666.62KB
下载 相关 举报
Java.docx_第1页
第1页 / 共33页
Java.docx_第2页
第2页 / 共33页
Java.docx_第3页
第3页 / 共33页
Java.docx_第4页
第4页 / 共33页
Java.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

Java.docx

《Java.docx》由会员分享,可在线阅读,更多相关《Java.docx(33页珍藏版)》请在冰豆网上搜索。

Java.docx

Java

一、Java部分:

Jstl:

<%@taglibprefix="c"uri="

1、页面分割字段:

‘$fn{fn:

substring(字段,开始位置,fn:

indexof(字段,’分隔符’))}’

2、Js中获取style的属性时例如:

Background-color区分大小写backgroundColor

3、重定向与转发的区别:

重定向(Redirect):

浏览器地址会变,目的任意,

转发(forward):

同一个应用的内部组件才能用转发,可以共享request对象,效率高

4、解析xml

1.解析xml:

bytexmlByte[]转换成map集合

4.1、DOM解析:

xmlversion="1.0"encoding="ISO-8859-1"?

>

HarryPotter

JK.Rowling

2005

29.99

EverydayItalian

GiadaDeLaurentiis

2005

30.00

LearningXML

ErikT.Ray

2003

39.95

XQueryKickStart

JamesMcGovern

PerBothner

KurtCagle

JamesLinn

VaidyanathanNagarajan

2003

49.99

新建Java类,解析如下:

packagecom.example.xml.dom;

importjava.io.File;

importjavax.xml.parsers.DocumentBuilder;

importjavax.xml.parsers.DocumentBuilderFactory;

importorg.w3c.dom.Document;

importorg.w3c.dom.Element;

importorg.w3c.dom.NodeList;

publicclassDomTest1

{

publicstaticvoidmain(String[]args)throwsException

{

//step1:

获得DOM解析器工厂

//工厂的作用是创建具体的解析器

DocumentBuilderFactorydbf=DocumentBuilderFactory.newInstance();

//step2:

获得具体的dom解析器

DocumentBuilderdb=dbf.newDocumentBuilder();

//step3:

解析一个xml文档,获得Document对象(根节点)

//此文档放在项目目录下即可

Documentdocument=db.parse(newFile("books.xml"));

//根据标签名访问节点

NodeListlist=document.getElementsByTagName("book");

System.out.println("listlength:

"+list.getLength());

//遍历每一个节点

for(inti=0;i

{

System.out.println("----------------------");

//获得元素,将节点强制转换为元素

Elementelement=(Element)list.item(i);

//此时element就是一个具体的元素

//获取子元素:

子元素title只有一个节点,之后通过getNodeValue方法获取节点的值

Stringcontent0=element.getElementsByTagName("title").item(0)

.getNodeValue();

System.out.println(content0);//此处打印出为null

//因为节点getNodeValue的值永远为null

//解决方法:

加上getFirstChild()

Stringcontent=element.getElementsByTagName("title").item(0)

.getFirstChild().getNodeValue();

System.out.println("title:

"+content);//此处打印出书名

//后面类似处理即可:

content=element.getElementsByTagName("author").item(0)

.getFirstChild().getNodeValue();

System.out.println("author:

"+content);

content=element.getElementsByTagName("year").item(0)

.getFirstChild().getNodeValue();

System.out.println("year:

"+content);

content=element.getElementsByTagName("price").item(0)

.getFirstChild().getNodeValue();

System.out.println("price:

"+content);

}

}

}

4.2、sax解析

Xml:

xmlversion="1.0"encoding="UTF-8"?

>

   

       zhangsan

       man

   

   

       lisi

       women

   

Java部分:

importjavax.xml.parsers.SAXParser;

importjavax.xml.parsers.SAXParserFactory;

importorg.xml.sax.Attributes;  

importorg.xml.sax.helpers.DefaultHandler;

publicclassSAXParserTestextendsDefaultHandler{

   publicSAXParserTest(){

       super();

   } 

   publicvoidstartElement(Stringuri,StringlocalName,StringqName,Attributesattr){  

      if(attr.getLength()>0){  

          for(inti=0;i

              System.out.println(attr.getQName(i)+"="+attr.getValue(i));  

          }  

      }  

   }  

   publicstaticvoidmain(String[]args){  

       try{    

         //实例化用于分析的工厂

           SAXParserFactoryfactory=SAXParserFactory.newInstance();

          //实例化分析类

           SAXParserparser=factory.newSAXParser();

           SAXParserTesthandler=newSAXParserTest();  

           parser.parse("example.xml",handler);  

          }catch(Exceptione){  

           System.out.println(e.toString());  

       }  

   }  

 }

二、获取元素块名字属性值

xmlversion="1.0"?

>

xml-stylesheettype="text/xsl"?

>

 search.response.default.numrows

 10

 

 Thedefaultnumberofrowstoreturnifnoneisspecified.

 

 

 searcher.response.maxage

 86400

 

 Themaxageofaresponseinseconds.Usedincachingheaders.

 

Java部分:

importjavax.xml.parsers.SAXParser;

importjavax.xml.parsers.SAXParserFactory;

importorg.xml.sax.Attributes;  

importorg.xml.sax.helpers.DefaultHandler;

importorg.xml.sax.SAXException;

importjava.util.Properties;

publicclassSAXParserTest2extendsDefaultHandler{

   privatePropertiesprops;  //用于存放名字属性对(key-value)

   privateStringcurrentName;//当前扫描到的键值

   privateStringBuffercurrentValue=newStringBuffer();  //当前名字对应的值

   privateStringName,Value;//键值对

   publicSAXParserTest2(){

       super();

       this.props=newProperties();

   } 

    

   publicvoidstartElement(Stringuri,StringlocalName,StringqName,Attributesattr){  

       currentValue.delete(0,currentValue.length());

       this.currentName=qName;

   }

     

 //碰到节点开始和结束之间的字符***

   publicvoidcharacters(char[]ch,intstart,intlength)throwsSAXException{

       currentValue.append(ch,start,length);

   }

   //碰到节点结束  

   publicvoidendElement(Stringuri,StringlocalName,StringqName){  

       Stringname=currentName,value=currentValue.toString().trim();

       if(name!

=""&&value!

="")

           System.out.println(name+"="+value);

       if(name=="name")

           Name=value;

       if(name=="value")

           Value=value;

       if(qName=="property")

              props.put(Name,Value);

       

       this.currentName="";

       currentValue.delete(0,currentValue.length());

   }  

    publicStringgetElementValue(StringelementName){

       //elementValue:

对应于elementName的节点的属性值

       StringelementValue=null;

       elementValue=props.getProperty(elementName);

       returnelementValue;

   }

   publicstaticvoidmain(String[]args)   {  

       try{  

           SAXParserFactoryfactory=SAXParserFactory.newInstance();

           SAXParserparser=factory.newSAXParser();

           SAXParserTest2handler=newSAXParserTest2();  

       parser.parse("nutch-default.xml",handler);                     System.out.println(handler.getElementValue("searcher.response.maxage"));

          }catch(Exceptione){  

           System.out.println(e.toString());  

       } 

   } 

}

1.2、servlet

Servlet生命周期

Servlet运行在Servlet容器中,其生命周期由容器来管理。

Servlet的生命周期通过javax.servlet.Servlet接口中的init()、service()和destroy()方法来表示。

Servlet的生命周期包含了下面4个阶段:

(1)加载和实例化

Servlet容器负责加载和实例化Servlet。

当Servlet容器启动时,或者在容器检测到需要这个Servlet来响应第一个请求时,创建Servlet实例。

当Servlet容器启动后,它必须要知道所需的Servlet类在什么位置,Servlet容器可以从本地文件系统、远程文件系统或者其他的网络服务中通过类加载器加载Servlet类,成功加载后,容器创建Servlet的实例。

因为容器是通过Java的反射API来创建Servlet实例,调用的是Servlet的默认构造方法(即不带参数的构造方法),所以我们在编写Servlet类的时候,不应该提供带参数的构造方法。

(2)初始化

在Servlet实例化之后,容器将调用Servlet的init()方法初始化这个对象。

初始化的目的是为了让Servlet对象在处理客户端请求前完成一些初始化的工作,如建立数据库的连接,获取配置信息等。

对于每一个Servlet实例,init()方法只被调用一次。

在初始化期间,Servlet实例可以使用容器为它准备的ServletConfig对象从Web应用程序的配置信息(在web.xml中配置)中获取初始化的参数信息。

在初始化期间,如果发生错误,Servlet实例可以抛出ServletException异常或者UnavailableException异常来通知容器。

ServletException异常用于指明一般的初始化失败,例如没有找到初始化参数;而UnavailableException异常用于通知容器该Servlet实例不可用。

例如,数据库服务器没有启动,数据库连接无法建立,Servlet就可以抛出UnavailableException异常向容器指出它暂时或永久不可用。

(3)请求处理

Servlet容器调用Servlet的service()方法对请求进行处理。

要注意的是,在service()方法调用之前,init()方法必须成功执行。

在service()方法中,Servlet实例通过ServletRequest对象得到客户端的相关信息和请求信息,在对请求进行处理后,调用ServletResponse对象的方法设置响应信息。

在service()方法执行期间,如果发生错误,Servlet实例可以抛出ServletException异常或者UnavailableException异常。

如果UnavailableException异常指示了该实例永久不可用,Servlet容器将调用实例的destroy()方法,释放该实例。

此后对该实例的任何请求,都将收到容器发送的HTTP404(请求的资源不可用)响应。

如果UnavailableException异常指示了该实例暂时不可用,那么在暂时不可用的时间段内,对该实例的任何请求,都将收到容器发送的HTTP503(服务器暂时忙,不能处理请求)响应。

(4)服务终止

当容器检测到一个Servlet实例应该从服务中被移除的时候,容器就会调用实例的destroy()方法,以便让该实例可以释放它所使用的资源,保存数据到持久存储设备中。

当需要释放内存或者容器关闭时,容器就会调用Servlet实例的destroy()方法。

在destroy()方法调用之后,容器会释放这个Servlet实例,该实例随后会被Java的垃圾收集器所回收。

如果再次需要这个Servlet处理请求,Servlet容器会创建一个新的Servlet实例。

在整个Servlet的生命周期过程中,创建Servlet实例、调用实例的init()和destroy()方法都只进行一次,当初始化完成后,Servlet容器会将该实例保存在内存中,通过调用它的service()方法,为接收到的请求服务。

下面给出Servlet整个生命周期过程的UML序列图,如图2-16所示。

如果需要让Servlet容器在启动时即加载Servlet,可以在web.xml文件中配置元素

例如:

实例1:

编写servlet文件HelloServlet.java文件

配置web.xml文件:

在web.xml中的之间加入配置文件

说明:

其中,

标记表示Servelt类的名称,该名称可以自由命名,实际上,该名称是类的实例化对象,在这里最好与类名保持一致。

而且,上下两个要保持一致。

表示servlet类的位置,例如该类在test包中

表示在访问这个servlet的网时候,在浏览器中输入的名称,该名称可以改变,但要注意名称的格式。

在浏览器中输入地址访问

目录结构:

 

实例2:

通过表单向servlet传递数据

首先,创建servlet文件LoginServlet.java

创建LoginServlet.jsp文件

配置web.xml文件(红色小方框中的属性要爆出一致)

访问servlet,点击提交

输入正确的信息,再次访问

实例3:

通过超链接访问servlet

首先创建servlet,DoRequest.java\

创建link.jsp文件,添加超链接,访问servlet

配置web.xml文件

浏览器访问servlet

点击超链接

1.3、ajax

Ajax举例:

var options ={   

                    url:

'xxxx.action',   

                    type:

'post',                    

                    data:

null,

                      success:

function(data){

                        if(data.statusCode=="OK") {  

         

                           

                    }else{

                    } 

                    }   

                 };

               var form =$("form[name=form1]");//form1:

表单ID  在表单界面只用这一个表单ID

               

              form.ajaxSubmit(options); 

1.4、get与post方式的区别

1、GET请求,请求的数据会附加在URL之后,以?

分割URL和传输数据,多个参数用&连接

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1