真人娱乐javaw为什么会占用tomcat的8080端口?

( 真人娱乐 )

javaw为什么会占用tomcat的8080端口?
《《《《《《《《《《《《《《《《《《《《《
我是用myeclipse开发,有时候会突然断电,按理说重新开机的时候tomcat已经关闭了,为什么进程还显示javaw占用了tomcat的8080端口?
或者有时候关掉tomcat,再重启的时候也会显示8080被占用?

针对你的问题可能是重启的时候没有彻底kill掉程序,
端口号可以在tomcat中的配置文件 server.xml中配置,8080端口也可以被任何程序占用,只是tomcat中默认是8080罢了

任何软件都可以占用8080端口,并不是tomcat特有的。
你的javaw是什么程序启动的?

tomcat运行状态时,windows操作系统下任务管理器可以看到是有一个javaw进程在跑的,把这个javaw杀掉后tomcat就停止了。
所以,你懂的。

补充一下有时候关掉tomcat,再重启的时候也会显示8080被占用?

用myeclipse开发的时候,把正在运行tomcat的myeclipse关闭了,其实关闭的只是用于输出tomcat日志的控制台,实际的tomcat程序并没有被关闭(javaw还在)。
好久没用myeclipse了,不知道说的有没有道理。

不是javaw占用tomcat的8080端口,是tomcat启动jvm使用javaw进程占用8080端口

(看完/读完)这篇文章有何感想! 真人娱乐的分享…

真人亚洲娱乐大中型项目使用hibernate的最佳实践?

( 真人亚洲娱乐 )

一直以来都是在做小项目,特别想知道在大中型项目中hibernate使用的一些最佳实践。

  1. 数据库是如何建设的?直接写sql语句还是使用powerdesigner之类的工具先建模然后生成?

  2. 使用hbm.xml文件配置映射还是使用annotation实现关系映射,为什么?

  3. 在大中型项目中还有那些常识性的最佳实践?

个人经历的大型项目都去hibernate,直接用mybatis的…

(看完/读完)这篇文章有何感想! 真人亚洲娱乐的分享…

真人娱乐mule webservice问题

( 真人娱乐 )

用mule开发esb,但是想用免费的社区版,免费的社区版没有datamapping组件功能,所以在消息转换成soap对象给webservice消费出现障碍,这个ws消费者是接受的对象是一个mule自定义的对象,我必须来组装这个对象才可以调用这个组件吗?获取有谁有过其他的解决方案,不吝啬的分享一下。非常感谢!

用xslt解决了

(看完/读完)这篇文章有何感想! 真人娱乐的分享…

真人网上娱乐如图,mysql中为什么会有这么多编码?可以修改吗?分别是什么意思呀?

( 真人网上娱乐 )

mysql的character_set_server 修改不了,从5.6版本之后就没有MySQLInstanceConfig.exe了?
通过SET character_set_server = utf8 ;这种方式,重启后就又变回了latin。
更改my.ini文件,也没有效果。

编码是为了适应语言的多样性。可以修改。含义如下
character_set_client:客户端发送过来文字的字符集
character_set_connection:用于连接的字符集
character_set_server:服务器的字符集
character_set_database:数据库字符集
character_set_results:发送给客户端的结果所使用的字符集

为什么有那么多编码?就像为什么有那么多国家,那么多语言,你的那么多编码可以理解为不同语言在计算机中表现的不同形式;

可以修改吗? 可以修改,至于选择那种就看你的业务需求是对于那个国家的语言。

分别什么意思? 【参考资料

可以修改是什么意思呢。只能说可以在里面选一个。
编码多是正常的,因为有那么多国家,还有那么多电脑系统。
常用的记住就好,这块没什么好研究的。只要传输数据与显示不乱码就好

(看完/读完)这篇文章有何感想! 真人网上娱乐的分享…

真人亚洲娱乐intelliJ idea中修改数据库字段类型与实体类字段类型的映射关系?

( 真人亚洲娱乐 )

mysql 、intelliJ idea15

从数据库生成带有注解的bean时,idea将数据库中datetime类型的字段映射成了java.lang.Object类型(如下图所示),请问是否可以修改idea中数据库类型和java类型的映射关系?

(看完/读完)这篇文章有何感想! 真人亚洲娱乐的分享…

真人网上娱乐jsp实现登陆,字符串问题

( 真人网上娱乐 )

本人想实现登陆功能,并检验用户密码是否正确。用户名和密码都为数字或字母时可以登陆,但当用户名为数字和字母的组合,密码为数字时,报空指针异常,相关代码如下
(这是一个论坛的登陆,登陆成功后跳转到消息界面)

表单代码

 <form action ="loginCheck.jsp" method ="post">
  
  <table >
  <tr>
  <td>用户名</td>
  <td><input type = "text" name = "username" /></td>
  
  </tr>
   <tr>
  <td>密&nbsp码&nbsp</td>
  <td> <input type = "password" name = "password" /></td>
  
  
  </table>
  
  <input type = "submit" value = "登陆"/>
   <a href = "register.jsp">  <input type = "button" value = "注册"/>  </a>
  
  
  
  </form>

JSP代码

  <%
    String username = (String)request.getParameter("username");
    String password = (String)request.getParameter("password");

    User user = DAOFactory.getUserDAOInstance().findByName(username);

    try{
   if(password.equals(user.getPassword())){
    out.print("success");
    session.setAttribute("username", username);
    response.sendRedirect("forum.jsp");
    }else{
    out.print("error");
    out.print(user.getPassword());//测试使用
    }   
    }catch(Exception e){
    e.printStackTrace();
    }
 
     %>
  1. 贴上报错信息

java.lang.NullPointerException
    at org.apache.jsp.loginCheck_jsp._jspService(loginCheck_jsp.java:105)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:439)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)

    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
    at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2522)
    at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2511)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Unknown Source)

是不是因为没找到user,所以为空?

错误信息上有代码行数啊,空指针

首先你两个都是String类型,所以不存在数字与字母组合就有空指针。从你的代码中没看到dao的实现,不好说,可能是数据库中没有查到有username的值,给了个空。你的判断也不是很严谨,如果不填密码这些也会出现空指针异常

试试password!=null

(看完/读完)这篇文章有何感想! 真人网上娱乐的分享…

真人娱乐jsencrypt 加密怎么用Python 的rsa库实现。

( 真人娱乐 )

  1. 列表项目

var encrypt = new JSEncrypt();

        encrypt.setPublicKey('MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCp0wHYbg/NOPO3nzMD3dndwS0MccuMeXCHgVlGOoYyFwLdS24Im2e7YyhB0wrUsyYf0/nhzCzBK8ZC9eCWqd0aHbdgOQT6CuFQBMjbyGYvlVYU2ZP7kG9Ft6YV6oc9ambuO7nPZh+bvXH0zDKfi02prknrScAKC0XhadTHT3Al0QIDAQAB');
        var encrypted_input1 = encrypt.encrypt($('#input1').val());
        var encrypted_input2 = encrypt.encrypt($('#input2').val());
        var ajax_data = {
            input1: encrypted_input1,
            input2: encrypted_input2,
            remember: $('#remember_me').prop('checked')
        };

(看完/读完)这篇文章有何感想! 真人娱乐的分享…

真人娱乐SpringMVC中RequestMapping是如何区分PathVariable中的参数和URL的

( 真人娱乐 )

例如
user/{userId}

user/list
假设{userId}类型为String
那么SpringMVC是如何区分这两个url进行匹配的

先精确匹配user/list
再匹配user/{userId}

(看完/读完)这篇文章有何感想! 真人娱乐的分享…

真人亚洲娱乐java中连接mysql时添加Class.forName(“com.mysql.jdbc.Driver”)的作用?

( 真人亚洲娱乐 )

java连接mysql数据库时总是报错:

try {
       connection = DriverManager.getConnection(url, username, password);
} catch (Exception e) {
       e.printStackTrace();
}

错误信息是:java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306

但加上Class.forName(“com.mysql.jdbc.Driver”)后就能正常运行:

try {
       Class.forName("com.mysql.jdbc.Driver");
       connection = DriverManager.getConnection(url, username, password);
} catch (Exception e) {
       e.printStackTrace();
}

Class.forName(“com.mysql.jdbc.Driver”)的作用是什么?

这个问题翻一下两个类的源码就可以很清楚的了解了。
不过首先你的明白Class.forName()的作用,这个是用来加载指定类的。
为什么需要手动去加载呢?正常情况下对于一个Java程序来说我们不需要去管某个类的加载,只需要在用来的时候import进去即可,但是对于JDBC的设计是不一样的,你可以从你的数据库连接代码中发现,DriverManage在决定使用哪个驱动的时候并不是由开发者指定的,而是通过遍历所有已注册的驱动来尝试获取连接,成功就返回,失败就next,所以代码中并没有显示的指定驱动,这一点可以从DriverManage的源码中可以看到。

for(DriverInfo aDriver : registeredDrivers) {
    // If the caller does not have permission to load the driver then
    // skip it.
    if(isDriverAllowed(aDriver.driver, callerCL)) {
        try {
            println("    trying " + aDriver.driver.getClass().getName());
            Connection con = aDriver.driver.connect(url, info);
            if (con != null) {
                // Success!
                println("getConnection returning " + aDriver.driver.getClass().getName());
                return (con);
            }
        } catch (SQLException ex) {
            if (reason == null) {
                reason = ex;
            }
        }
    } else {
        println("    skipping: " + aDriver.getClass().getName());
    }
}

这个类基本可以明白JDBC是如何获取连接的,问题是registeredDrivers是怎么来的,从DriverManager的源码中只能够发现一个registerDriver方法可以往registeredDrivers中注册驱动,所以自然是由驱动类自行将自己注册到registeredDrivers中,这一点可以通过查看com.mysql.jdbc.Driver类源码得到证实。

    //
    // Register ourselves with the DriverManager
    //
    static {
        try {
            java.sql.DriverManager.registerDriver(new Driver());
        } catch (SQLException E) {
            throw new RuntimeException("Can't register driver!");
        }
    }

这个是jdbc.Driver的一段static代码,这段代码在类加载时会自动执行,所以就把自己注册到DriverManage的registerDriver中了,这样整个流程就全部通了。


综上,不懂得问题翻翻代码就清楚了,多动手。

加载驱动用的。forName方法的参数是一个类的包名加类名,这个类在MySQL驱动的jar包里可以找到

class.forName(“com.mysql.jdbc.Driver”)会在classpath中查找并加载这个类。一旦com.mysql.jdbc.Driver被加载并连接后,就自动执行static静态代码块,这时就可以做一些初始化的工作了,最主要的作用就是执行java.sql.DriverManager.registerDriver()来注册驱动。如果没有class.forName这一步,就会报找不到合适的驱动程序。

知道是加载哪一个类

通过反射机制加载数据库驱动类。
不然谁知道你链接的是哪个数据库啊。。。

(看完/读完)这篇文章有何感想! 真人亚洲娱乐的分享…

真人娱乐JAVA方法抽取.

( 真人娱乐 )

变的只有红色框的地方,其他的每次都是一样的,想知道有什么方法把其他地方抽取出来.
红色框的地方需要调用业务层不同的方法.我自己也试了一下,都不能很好的抽取出来,红色的地方感觉粘性太强,但是每次都只是这里不变,各位大神有办法吗?

抽取个接口

interface CommonService{
   Page execute(Page page,String userInfoId,Map<String,String> params);
}

然后抽取共用的方法

UIPageResponse getResponse(UIPage page,Map<String,String> params,CommonService service){
   String userInfoId = LoginInfoManage.getAdminUser().getUserInfoId();
   ...
   try{
      _page = service.execute(page,userInfoId,params);
   }catch(Exception e){
       e.printStackTrace();
   }
   ...
   return uiPageResponse;
}

最后调用

  return getResponse(page,params,new CommonService(){
       Page execute(Page page,String userInfoId,Map<String,String> params){
            return servcusTomerService.getFridend(_page,userInfoId,params);
       }
  })

(看完/读完)这篇文章有何感想! 真人娱乐的分享…

真人娱乐【Java】条件查询,提交表单,无刷新查询数据,除了返回json,再拼接table,感觉拼接太麻烦,还有其他方式实现无刷新么。

( 真人娱乐 )

之前C# mvc有个分布视图,不用拼接,感觉挺方便的,java的就没有这玩意。。

如果是很简单的模型,不用搞那么复杂,过度设计不好
这个看前端了,可以这部分采用前后分离的方法,使用前端模板技术。
淘宝的kissy template,腾讯的artTemplate,百度的baiduTemplate等

前端可以用模板技术,就省得拼接了,直接替换。

有很多前端技术,例如easyui的datagrid之类的

(看完/读完)这篇文章有何感想! 真人娱乐的分享…

真人网上娱乐什么时候,哪些场景使用Error和Exception机制来处理代码?

( 真人网上娱乐 )

什么时候使用Error和Exception机制来处理代码?(正在学习PHP7)
有哪些场景用到Error和Exception?

有没有一些这方面的指南和规范,经验和建议?

各种编程语言中的「错误/异常处理」有哪些成熟的,优雅的或是热门的机制/思想?

(看完/读完)这篇文章有何感想! 真人网上娱乐的分享…

真人亚洲娱乐Java真数组

( 真人亚洲娱乐 )

摘自百科上的一句话
程序设计语言中,数组元素在内存中是一个接着一个线性存放的,通过第一个元素就能访问随后的元素,这样的数组称之为”真数组”。

实现了真数组为Java语言健壮性的特点之一。

问题有两个:
1.”真数组”的概念是否如上所说,那么对应的”伪数组”如何表达?
2.”真数组”是Java语言健壮性的特点体现在哪?

提供一篇博客解释js中的伪数组
js的伪数组
我的理解:
ADT(abstract data type)数据抽象类型:一个数据模型及定义在该模型上的一组运算。
数组是一种抽象的数据类型,Java中数组是对象,它所包含的数据在内存中是连续排列的,并且你可以对数组进行一系列的操作。

关于边界检查

来自维基百科
边界检查在程序设计中是指在使用某一个变量前,用来检查该变量是否处在一个特定范围之内的过程。最常见的是数组的下标检查,来防止下标超出数组的范围而覆盖其他的数据。
若是边界检查未能发现错误,最常见的结果是程序出现异常并终止运行,但也可能出现其他的现象。
由于每次都进行边界检查非常耗时,而且有些代码是不可能产生越界的问题的,所以这个操作并不总是需要被执行。一些现代的编译器中有被称为选择性边界检查的技术可以略去一些常见的不需要的边界检查来提高程序的性能

所以C/C++中不检查数组越界应该是为了提高效率。

Java中存在对数组下标的检查,如果数组越界将会抛出异ArrayIndexOutOfBoundsException,数组越界会对内存中其他的数据产生覆盖,造成程序崩溃,这样提高了程序的健壮性。


写的有点乱,有错误指出希望大家指出来,谢谢大家的回答。
总感觉还是有问题!


2016年2月17日12:28:45 修改
数组定义(维基百科)

数组概念有双重含义,一是数据类型,二是实体(entity)。

C/C++标准中的数组
C语言标准中规定,一个数组类型描述了连续分配的非空的具有特定元素对象类型的对象集合。>这些元素对象的类型称为元素类型(element type)。数组类型由元素类型与元素的数目确定。

Java中的数组与C/C++并无区别,至于ArrayList底层也是通过数组实现的。

数组特性(维基百科)

数组设计之初是在形式上依赖内存分配而成的,所以必须在使用前预先请求空间。这使得数组有>以下特性:

请求空间以后大小固定,不能再改变(数据溢出问题);
在内存中有空间连续性的表现,中间不会存在其他程序需要调用的数据,为此数组的专用内存空>间;
在旧式编程语言中(如有中阶语言之称的C),程序不会对数组的操作做下界判断,也就有潜在>的越界操作的风险(比如会把数据写在运行中程序需要调用的核心部分的内存上)。

根据以上总结:
真数组:

  1. 在内存中连续分配。

  2. 数组所存在的内存空间为数组专用,避免了数据被覆盖的问题

  3. 数组内存放的类型是确定的,唯一的。

int[] array = {1,2}//int型数组

伪数组具体看首行的博客,这里把里面的一个例子贴出来

var arr = {
  '0' : '000',
  '1' : '111',
  '2' : '222',
  'length' : 3,
  'name' : 'an object looks like array',
  'type' : 'object'
}

个人理解:Java中的数组中的数据是连续存储在一块内存中的,所以可以通过下标(即偏移量)的方式访问;假数组,例如Python里面的list,访问方式同Java的数组一样,但是他在内存中并非连续。

至于体现健壮性,自己悟吧,我也不知道什么是健壮性

我就举一个“伪数组”的例子:

JavaScript的数组

JavaScript的数组,类似于一个key为数字的哈希表。

第一次听说真数组,不过听过为伪数组,就像是前面同学说的,JavaScript的数组就是典型的伪数组。不过非要说真数组的话,你看的那个百科里的解释应该也算对。

但是说到数组,还有一个多维数组,它在不同的语言里实现也不一样,比如在C++里面,多维数组在内存里是连续的,但是在java里,多维数组的每一维在内存里很可能不是连续的。所以这个了解了就好,没有必要细究。

关于健壮性,没啥感觉。。。

(看完/读完)这篇文章有何感想! 真人亚洲娱乐的分享…

真人亚洲娱乐求推荐分布式方案

( 真人亚洲娱乐 )

网站和APP dao和service层都一样,只是controller层不一样。
求推荐分布式技术解决方案;
我知道的有
1、jdk自带的 RMI, 麻烦的就是要写接口和bean生成jar包给客户端再调用
2、用rest http相当于再写一个接口,所有接口都需要修改也有点麻烦,

有其他更好的方案么?或者框架?

可以看看facebook的thrift 或者淘宝的dubbo,当然跟rmi也差不多。
如果不非得追求分布式,最简单的是把service单独作为jar包提供给不同的web项目。

其实无论怎么做 controller 里面都只要做验证参数 组合/封装结果这些操作就够了

(看完/读完)这篇文章有何感想! 真人亚洲娱乐的分享…

真人亚洲娱乐mimeLimit 限定用户上传的文件类型 无效

( 真人亚洲娱乐 )

StringMap putPolicy=new StringMap().put(“mimeLimit”, “image/*”).put(“returnBody”, returnBody);
配置了限制只能为图片类型,但是文本文档一样可以上传

put方法中,指定文件mineType是指什么?

(看完/读完)这篇文章有何感想! 真人亚洲娱乐的分享…

真人娱乐java的字面量的内存是不可变的麽?

( 真人娱乐 )

譬如 

String foo= "a";
String bar= "a";

那么,在上面的这个栗子中,两个”a”本身是统一份内存空间麽?

如果String foo="a" + "b"
如果String bar="ab"

这里是否存在运算,先计算出”a”+”b”的字面量(“ab”),初始化”ab“ 后,接下来的任何

String x="ab",都是对之前”ab”的字面量的引用持有呢?


Update
String foo="a" + "b" 这条语句,假设在之前没有”a”和”b“的init.那么在这里创建了
”a“,”b”,”ab”呢
还是只创建了”ab”呢?

  1. String foo = "a"; String bar = "a";这两个是一份内存空间,都在字符串常量池

  2. String foo="a" + "b",String bar="ab";这两个也是,"a" + "b"在编译期就会被优化为"ab"

  3. String foo="a" + "b"只创建了“ab”,同上

是的,之前定义了String bar=”ab”,后面再定义String x=”ab”,此时bar和x都指向同一个对象。
除非你使用new String(“ab”)。

对于这个问题:
String foo=”a” + “b” 这条语句,假设在之前没有”a”和”b“的init.那么在这里创建了
”a“,”b”,”ab”呢
还是只创建了”ab”呢?
答案肯定是创建了3个字符串对象,”a”,”b”,”ab”。所以频繁的进行字符串拼接操作会浪费内存,需要使用StringBuffer或者StringBuilder来进行拼接操作。

(看完/读完)这篇文章有何感想! 真人娱乐的分享…