- 博客(123)
- 收藏
- 关注
原创 jsp有哪些内置对象?作用分别是什么? 分别有什么方法?
它是用于方便存取各种范围的名字空间、servlet相关的对象的API,并且包装了通用的servlet相关功能的方法。它包含了有关浏览器请求的信息,并且提供了几个用于获取cookie, header, 和session数据的有用的方法。session表示一个请求的javax.servlet.http.HttpSession对象。该对象用于存取servlet实例的初始化参数。out对象是javax.jsp.JspWriter的一个实例,并提供了几个方法使你能用于向浏览器回送输出结果。page JSP网页本身。
2023-06-07 08:45:30
245
原创 SERVLET API中forward() 与redirect()的区别?
前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,前者更加高效,在前者可以满足需要时,尽量使用forward()方法,并且,这样也有助于隐藏实际的链接。在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用。sendRedirect()方法。
2023-06-07 08:44:30
191
原创 说一说Servlet的生命周期?
web容器加载servlet,生命周期开始。通过调用servlet的init()方法进行servlet的初始化。通过调用service()方法实现,根据请求的不同调用不同的do***()方法。结束服务,web容器调用servlet的destroy()方法。Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。
2023-06-07 08:43:58
200
原创 Request对象的主要方法:
getHeaders(String name):返回指定名字的request Header的所有值,结果是一个枚举的实例。getParameterNames():获得客户端传送给服务器端的所有参数的名字,结果是一个枚举的实例。getParameter(String name):获得客户端传送给服务器端的有name指定的参数值。getParametervalues(String name):获得有name指定的参数的所有值。getInputStream():返回请求的输入流,用于获得请求中的数据。
2023-06-07 08:43:25
142
原创 说出ArrayList,Vector, LinkedList的存储性能和特性
ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。
2023-05-18 08:59:13
118
1
原创 一些常用的类,包,接口
常用的接口:Remote List Map Document NodeList ,Servlet,HttpServletRequest,HttpServletResponse,Transaction(Hibernate)、Session(Hibernate),HttpSession。常用的包:java.lang java.io java.util java.sql ,javax.servlet,org.apache.strtuts.action,org.hibernate。
2023-05-18 08:55:55
107
原创 iBatis与Hibernate有什么不同?
Hibernate是一个全自动的orm映射工具,它可以自动生成sql语句,ibatis需要我们自己在xml配置文件中写sql语句,hibernate要比ibatis功能负责和强大很多。因为hibernate自动生成sql语句,我们无法控制该语句,我们就无法去写特定的高效率的sql。对于一些不太复杂的sql查询,hibernate可以很好帮我们完成,但是,对于特别复杂的查询,hibernate就很难适应了,这时候用ibatis就是不错的选择,因为ibatis还是由我们自己写sql语句。
2023-05-18 08:47:52
57
原创 Struts优缺点
但它的转化都是在Class级别,而且转化的类型是不可配置的。转到展示层时,需要配置forward,如果有十个展示层的jsp,需要配置十次struts,而且还不包括有时候目录、文件变更,需要重新修改forward,注意,每次修改配置之后,要求重新部署整个项目,而tomcate这样的服务器,还必须重新启动服务器。使系统的脉络更加清晰。对Action 执行前和后的处理. Struts处理Action的时候是基于class的hierarchies,很难在action处理前和后进行操作。5. 数据库链接池管理。
2023-05-18 08:46:44
108
原创 谈谈你对Hibernate的理解
2.为了在关机和内存空间不够的状况下,保持程序的运行状态,需要将内存中的对象状态保存到持久化设备和从持久化设备中恢复出对象的状态,通常都是保存到关系数据库来保存大量对象信息。从Java程序的运行功能上来讲,保存对象状态的功能相比系统运行的其他功能来说,应该是一个很不起眼的附属功能,java采用jdbc来实现这个功能,这个不起眼的功能却要编写大量的代码,而做的事情仅仅是保存对象和恢复对象,并且那些大量的jdbc代码并没有什么技术含量,基本上是采用一套例行公事的标准代码模板来编写,是一种苦活和重复性的工作。
2023-05-18 08:44:50
98
原创 你所知道的集合类都有哪些?主要方法?
我记住的一些思想就是List类会有get(intindex)这样的方法,map可以返回三个集合,一个是返回所有的key的集合,另外一个返回的是所有value的集合,再一个返回的key和value组合成的EntrySet。我记的不是方法名,而是思想,我知道它们都有增删改查的方法,但这些方法的具体名称,我记得不是很清楚,对于set,大概的方法是add,remove,contains;最常用的集合类是List和Map。对象的集合,map也有get方法,参数是key,返回值是key对应的value。
2023-05-18 08:36:50
76
原创 说出ArrayList,Vector,LinkedList的存储性能和特性
动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序。ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移。号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。
2023-05-17 19:49:40
70
原创 HashMap和Hashtable的区别
最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap就必须为之提供外同步。HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,在只有一个线程。二.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的。
2023-05-17 19:48:23
68
原创 线程的基本概念、线程的基本状态以及状态之间的关系
调用线程的start方法后线程进入就绪状态,线程调度系统将就绪状态的线程转为运行状态,遇到synchronized语句时,由运行状态转为阻塞,当synchronized获得锁。切换时间很快,给人的感觉是a,b在同时执行,好比大家在同一个办公室上网,只有一条链接到外部网线,其实,这条网线一会为a传数据,一会为b传数据,由于切。一个程序中可以有多条执行线索同时执行,一个线程就是程序中的一条执行线索,每个线程上都关联有要执行的代码,即可以有多段程序代码同时运行,每个程序至少。
2023-05-17 19:46:10
81
原创 当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?
4.如果其他方法是static,它用的同步锁是当前类的字节码,与非静态的方法不能同步,因为非静态的方法用的是this。3.如果其他个方法都加了synchronized关键字,并且内部没有调用wait,则不能。2.如果这个方法内部调用了wait,则可以进入其他synchronized方法。1.其他方法前是否加了synchronized关键字,如果没加,则能。
2023-05-17 19:45:32
728
原创 多线程有几种实现方法?同步有几种实现方法?
notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且不是按优先级。sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException异常。Allnotity():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让它们竞争。wait():使一个线程处于等待状态,并且释放所持有的对象的lock。
2023-05-17 19:42:57
116
原创 abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?
native方法表示该方法要用另外一种依赖平台的编程语言实现的,不存在着被子类实现的问题,所以,它也不能是抽象的,不能与abstract混用。是按java的要求来写的,我们这个c语言函数就可以与java对接上,java那边的对接方式就是定义出与我们这个c函数相对应的方法,java中对应的方法不需要写具体的代码,但需要在前面声明native。如果我们要用java调用别人写的c语言函数,我们是无法直接调用的,我们需要按照java的要求写一个c语言的函数,又我们的这个c语言函数去调用别人的c语言函数。
2023-05-17 19:42:11
71
原创 面向对象的特征有哪些?
有的成员变量,那么,画圆的方法必须分配给圆,它才能访问到圆心和半径这两个属性,人以后只是调用圆的画圆方法、表示给圆发给消息而已,画圆这个方法不应该分配在人这个对象上,这就是面。在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并可以加入若干新的内容,或修改原来的方法使之更适合。多态是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该。
2023-05-17 19:41:15
154
原创 Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
重写Override表示子类中的方法可以与父类中的某个方法的名称和参数完全相同,通过子类创建的实例对象调用这个方法时,将调用子类中的定义方法,这相当于把父类中定义的那个完全相同的。例如,不同的参数类型,不同的参数个数,不同的参数顺序(当然,同一方法内的几个参数类型必须不一样,例如可以是fun(int,float),子类覆盖父类的方法时,只能比父类抛出更少的异常,或者是抛出父类抛出的异常的子异常,因为子类可以解决父类的一些问题,不能比父。2、覆盖的方法的返回值必须和被覆盖的方法的返回一致;
2023-05-17 19:40:19
99
原创 Web.xml是什么?内部标签有哪些?
Web.xml是JavaWeb项目中的一个配置文件,主要用于配置首页、Filter、Listener、Servlet。web.xml是Web应用的Servlet标准的一部分,描述了如何在Servlet容器中部署Web应用程。设置访问站点项目名显示的欢迎页面,第一个不存在就显示第二个。用来设定web站台的环境参数,参数也可以xml文件。即加载各种配置文件。指定错误的页面,可以通过“异常类型”或“错误码”来指定错误处理页面。指明xml使用的是哪个模式文件(即xsd,就是描述xml的规范)是应用服务器的主入口。
2023-05-17 19:33:31
120
原创 String属于基本类型吗?String的常用API?
publicStringsubstring(intbeginIndex,intendIndex)根据开始和结束索引进行截取,得到新的。publicStringsubstring(intbeginIndex)从传入的索引处截取,截取到末尾,得到新的字符串。publicString[]split(Stringregex)根据传入的规则切割字符串,得到字符串数组返回。publicchar[]toCharArray():将当前字符串转换成字符数组返回。的旧值替换,得到新的字符串。字符串(包前不包后)
2023-05-17 19:31:15
47
原创 abstract class和interface有什么区别?
含有abstract修饰符的class即为抽象类,abstract 类不能创建的实例对象。含有abstract方法的类必须定义为abstract class,abstract class类中的方法不必是抽象的。如果的子类没有实现抽象父类中的所有抽象方法,那么子类也必须定义为abstract类型。接口(interface)可以说成是抽象类的一种特例,接口中的所有方法都必须是抽象的。接口中的方法定义默认为public abstract类型,接口中的成员变量类型默认为public static final。
2023-04-13 08:30:22
49
原创 在DAO中如何体现DAO设计模式?
解决方案二,对每个表的bean写构造函数,比如表一要查出field1,field2两个字段,那么有一个构造函数就是Bean(type1 filed1,type2 field2) ,然后在hql里面就可以直接生成这个bean了。解决方案一,按照Object[]数据取出数据,然后自己组bean。
2023-04-13 08:24:37
63
原创 说说struts1与struts2的区别
struts2是支持多种类型的视图;4.struts1的前端控制器是一个Servlet,名称为ActionServlet,struts2的前端控制器是一个filter,在struts2.0中叫FilterDispatcher,在struts2.1中叫StrutsPrepareAndExecuteFilter。struts2虽然基于这个框架,但是应用群众并多,相对不成熟,未知的风险和变化很多,开发人员相对不好招,使用它开发项目的风险系数更大,用人成本更高!1.都是MVC的WEB框架,
2023-04-13 08:20:11
64
原创 List和Map的区别
一个是存储单列数据的集合,另一个是存储键和值这样的双列数据的集合,List中存储的数据是有顺序,并且允许重复;Map中存储的数据是没有顺序的,其键是不能重复的,它的值是可以有重复的。
2023-04-13 08:12:24
49
原创 final, finally, finalize的区别
finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。JVM不保证此方法总被调用。final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。内部类要访问局部变量,局部变量必须定义成final类型,例如,一段代码……finally是异常处理语句结构的一部分,表示总是执行。
2023-04-13 08:06:40
49
原创 线程的基本概念、线程的基本状态以及状态之间的关系
一个程序中可以有多条执行线索同时执行,一个线程就是程序中的一条执行线索,每个线程上都关联有要执行的代码,即可以有多段程序代码同时运行,每个程序至少都有一个线程,即main方法执行的那个线程。如果只是一个cpu,它怎么能够同时执行多段程序呢?这是从宏观上来看的,cpu一会执行a线索,一会执行b线索,切换时间很快,给人的感觉是a,b在同时执行,好比大家在同一个办公室上网,只有一条链接到外部网线,其实,这条网线一会为a传数据,一会为b传数据,由于切换时间很短暂,所以,大家感觉都在同时上网。
2023-04-13 08:06:13
46
原创 多线程有几种实现方法?同步有几种实现方法?
notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且不是按优先级。sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException异常。Allnotity():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让它们竞争。wait():使一个线程处于等待状态,并且释放所持有的对象的lock。
2023-04-10 17:34:15
58
原创 面向对象的特征有哪些方面
只要记住让变量和访问这个变量的方法放在一起,将一个类中的成员变量全部定义成私有的,只有这个类自己的方法才可以访问到这些成员变量,这就基本上实现对象的封装,就很容易找出要分配到这个类上的方法了,就基本上算是会面向对象的编程了。是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。的目标就是要实现软件部件的“高内聚、低耦合”,
2023-04-10 17:32:37
56
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人