为了账号安全,请及时绑定邮箱和手机立即绑定
  • 重写hashCode()方法和equals()方法,即重写它的判断规则 相同的字符串,它的hashcode()也是相同的。 hashCode是jdk根据对象的地址或者字符串或者数字算出来的int类型的数值 HashSet首先会调用Object的hashCode方法判hashCode是否已经存在,如不存在则直接插入元素; 如果已存在则调用Object对象的equals方法判断是否返回true, 如果为true则说明元素已经存在,如为false则插入元素。 总的来说,Java中的集合(Collection)有两类,一类是List,再有一类是Set。 前者集合内的元素是有序的,元素可以重复;后者元素无序,但元素不可重复。 那么这里就有一个比较严重的问题了:要想保证元素不重复,可两个元素是否重复应该依据什么来判断呢? 这就是Object.equals方法了。但是,如果每增加一个元素就检查一次,那么当元素很多时,后添加到集合中的元素比较的次数就非常多了。 也就是说,如果集合中现在已经有1000个元素,那么第1001个元素加入集合时,它就要调用1000次equals方法。这显然会大大降低效率。 于是,Java采用了哈希表的原理。哈希(Hash)实际上是个人名,由于他提出一哈希算法的概念,所以就以他的名字命名了。 哈希算法也称为散列算法,是将数据依特定算法直接指定到一个地址上。初学者可以这样理解,hashCode方法实际上返回的就是对象存储的物理地址(实际可能并不是)。 这样一来,当集合要添加新的元素时,先调用这个元素的hashCode方法,就一下子能定位到它应该放置的物理位置上。 如果这个位置上没有元素,它就可以直接存储在这个位置上,不用再进行任何比较了;如果这个位置上已经有元素了, 就调用它的equals方法与新元素进行比较,相同的话就不存了,不相同就散列其它的地址。 所以这里存在一个冲突解决的问题。这样一来实际调用equals方法的次数就大大降低了,几乎只需要一两次。 所以,Java对于eqauls方法和hashCode方法是这样规定的: 1、如果两个对象相同,那么它们的hashCode值一定要相同; 2、如果两个对象的hashCode相同,它们并不一定相同(上面说的对象相同指的是用eqauls方法比较。)
    查看全部
  • Map集合中遍历的方法 Set keys=map.keySet();//获得键的集合 Iterator<Item> it=keys.iterator();//获得迭代器对象遍历存放在Set集合中的值. while(it.hasNext()){ xxx i=it.next();//循环获取key值 xxx p=map.get(i);//通过key获取value } 也可以 Set<Map.Entry<,>> items=map.entrySet();返回键值对存储在Set中.Set集合中都是Map中的键值对. for(Map.Entry<,> obj:items){ System.out.println(obj); }//通过循环遍历输出. 如果Map集中的key或者value是类类型。则一般要重写该类类型的toString()方法,因为直接输出一个对象.会调用该类的toString()方法.不重写toString(),直接输出对象会显示这个对象所对应类的完整名字,与该对象的地址.
    查看全部
    0 采集 收起 来源:测试购物车类

    2018-03-22

  • Model1是JSP+javabean.用户提交的请求直接传给JSP页面处理,由javabean负责业务逻辑处理与访问数据库.已经初步体现出分层的思想.JSP界面层,JAVAbean业务逻辑层.数据库层.最简单三层结构. JAVAWeb的Model2开发模型就是MVC思想的体现. Model2=JAVAbean+Servlet+JSP javabena充当模型层,Servlet充当控制层,JSP充当视图层. 步骤: 1.首先由JSP页面给我们控制层Servlet提交一个请求. 2.由控制层Servlet去实例化一个模型层的对象或者来调用模型层的一些功能. 3.由模型层来访问数据库层,来读取或操作数据库. 4.把从模型层访问数据库得到的结果反馈给控制层Servlet 5.Servlet控制层得到这个结果之后,会根据这个结果来相对应的给用户呈现不同的页面.也就是会跳转不同的JSP页面.给用户作出响应.
    查看全部
    0 采集 收起 来源:Model2模型介绍

    2015-12-24

  • MVC设计思想应用在web工程. 其中Javabean充当模型层,Servlet冲当控制层,JSP页面充当视图层. 当浏览器发出请求,然后被Servlet控制层接收,Servlet再去实例化javabean模型层的对象或者调用其一些方法.通过javabean调用数据库层.由javabean模型层访问数据库得到的结果返回给Servlet控制层,控制层再选择合适的视图给用户呈现.最终给用户一个响应.
    查看全部
    0 采集 收起 来源:MVC模型介绍

    2015-12-24

  • 获取Servlet初始化参数中,getInitParameter("")是ServletConfig接口中的方法.
    查看全部
    0 采集 收起 来源:练习题

    2018-03-22

  • Servlet获取初始化参数 在web.xml中配置Servlet时,可以配置一些初始化参数.而在Servlet中可以通过ServletConfig接口提供的方法来取得这些参数. 在web.xml配置初始化参数的方法是通过<init-param></init-param>标签来配置.其中这个标签下还有<param-name>与<param-value>子标签.分别对应参数的名字与参数的值.多个初始化参数则多个<init-param>标签. 初始化参数就是在项目的web.xml文件中通过标签来设置参数名与参数值.当发布项目时,就会把项目的web.xml文件读取到Tomcat的Web容器里.当启动服务器,便会自动加载web.xml中的配置信息.即web.xml是在服务器(如Tomcat,Weblogic)启动时加载的.因此初始化参数在服务器启动就会生效. 在Servlet的初始化方法中.通过this.getInitParameter("");方法通过参数名获取初始化参数的参数值.返回字符串类型.可以在Servlet中定义成员变量来接收这个值.定义为私有公有都行.定义为成员变量以便在其他方法中可以访问到. 最后可以在doGet()或者doPost()方法中把得到的初始化参数值输出到浏览器.(因为定义为成员变量便可输出)
    查看全部
  • Servlet与九大内置对象
    查看全部
  • 在下列时刻Servlet容器装载Servlet<br> 1.在web.xml文件中的<Servlet></Servlet>之间添加如下代码:<br> <loadon-startup>1</load-startup> 数字越小表示优先级别越高 2.在Servlet容器启动后,客户首次向Servlet发送请求 3.Servlet类文件被更新后,重新装载Servlet
    查看全部
  • Servlet生命周期
    查看全部
  • Servlet执行流程
    查看全部
  • “~/”:表示虚拟目录下的一个目录。 “/”:表示根目录 “//”:绝对路径 “.”:文件名分割符 “..”:上一级目录 “#”文件路径号 "\":文件显示分割符 “?”文件通配符 当通过超链接或表单用相对路径访问服务器的时候,路径上第一个/表示服务器的根目录.并不是项目的根目录. 通过内置成员变量path实现绝对路径访问,如href="<%=path%>/servlet/TestServlet"。path可以表示项目的根目录. 表单中action的URL地址写法,与超链接方式完全相同. 在web.xml的<servlet-mapping>标签下的<url-pattern></url-pattern>中,URL地址必须以斜线开头,这里/ 表示项目的根目录. 详细可以点开Tomcat目录下的webapps查看路径. index.jsp是在项目的根目录下的.而Servlet类是在项目根目录/包名/类名 如果在Servlet中通过重定向跳转到别的jsp页面时,路径只能用request.getContextPath();获取到jsp文件的根目录再加上"/xxx.jsp". 如果在Servlet中通过请求转发跳转到别的jsp页面时,路径只能用"/index.jsp".第一个/代表跟根目录的意思.不能用request.getContextPath();方法. response.sendRedirect(request.getContextPath()+"/xxx.jsp"); request.getRequestDispatcher("/loginsuccess.jsp").forward(request, response); 请求重定向与请求转发的URL地址写法是不一样的.
    查看全部
    0 采集 收起 来源:Servlet路径跳转

    2018-03-22

  • HttpServlet类扩展了GenericServlet类,实现了GenericServlet类的抽象方法sevrvice( ) 我们自己编写的Servlet继承了HttpServlet类,一般只需覆盖doPost或者doGet方法,不必覆盖sevrvice( )方法.因为一个sevrvice( )方法会调用doPost或者doGet方法 HttpServlet类有两个sevrvice( )方法 如下: void service(ServletRequest req, ServletResponse res) protected void service(HttpServletRequest req, HttpServletResponse resp) 其中只有void service(ServletRequest req,ServletResponse response)方法是由tomcat自动调用,它将接收的客户端请求转交给HttpServlet中的另一个protected void service(HttpServletRequest req,HttpServletResponse res)方法,此保护类型的service方法再把将请求分发给doPost()、doGet()方法进行下一步处理。
    查看全部
    0 采集 收起 来源:练习题

    2015-12-22

  • 使用上下文路径
    查看全部
    0 采集 收起 来源:Servlet路径跳转

    2015-12-22

  • 添加相同商品,当不是第一次添加时,累加前面已有的数据
    查看全部
  • 不能添加相同的数据,equals的判断规则
    查看全部

举报

0/150
提交
取消
课程须知
作为JSP课程的延续,希望小伙伴们学习本门课程前先完成《JAVA遇见HTML——JSP篇》课程的学习。为了更好的完成课程的阶段项目,JDBC的知识也是必备的。
老师告诉你能学到什么?
学习完本门课程,可以学习到以下内容: 1、掌握Servlet的结构和执行流程 2、掌握Servlet的生命周期 3、掌握Servlet在项目中的应用 4、使用MVC架构进行项目开发

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!