您的位置:首页

2015年创业中遇到的技术问题:21-30

2017-07-21 21:39 369 查看
21.高速清空表中的数据。


有个ip库的表。数据量几十万。想在开发阶段,清空。通过mysql-front和mysql控制台。都删除失败。反应很慢。还有诸如lock失败的错误。
解决的方法:复制表的创建结构,比方CREATE TABLE `ip_info` ( `ipbegin` varchar(20) DEFAULT NULL, `ipend` varchar(20) DEFAULT NULL, `zone` varchar(50) DEFAULT NULL, `company` varchar(200) DEFAULT NULL, `ipbeginInt` bigint(20) DEFAULT NULL, `ipendInt` bigint(20) DEFAULT NULL, `province` varchar(50) DEFAULT NULL, KEY `ipbegin_int` (`ipbeginInt`), KEY `ipend_int` (`ipendInt`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
直接删除这个表,drop table ip_info。很迅速。然后再又一次建立这个表。运行上面的“create table ip_info”语句。
22.Putty设置默认用户和默认编码。每次登录,都须要输入username,烦死了。

输入password,还能够理解。每次打开文件,都是乱码,还得手动在transaction下,改动编码为“utf-8”,烦死了。
解决的方法: putty是个很好的连接linux的client工具。可是用putty时,时常出现乱码问题,这时候须要在Translation中设置一下。 可是每次连接都要设就很麻烦了。这时候,能够在保存session的时候,先设好,以后从保存list中进入。这样就不须要手动设编码了。 默认username。也是这样,Connection-Data-Auto login username。

參考资料:http://blog.csdn.net/dawnming/article/details/7076637(仅仅有设置编码是參考的这个,发现和设置默认username是一个道理,之前在别处看到过设置默认username)
23.Windows下的bat和Linux上的sh。在Linux上运行命令的时候,按tab提示 catalish. 会卡住,由于有2个选项“catalish.sh”和“catalish.bat”。

比較好的办法是,把Linux上的“catalish.bat”删掉,把Windows上的“catalish.sh”删掉。startup.bat,shutdown.bat,catalish.bat等“*.bat”都干掉。
24.Linux下的Tomcat的catalish配置JVM參数。在第235行,加相似的配置: JAVA_OPTS="$JAVA_OPTS -Dp2p.config_path=/var/tomcat/config/ -Dlog4jOutputPath=/var/tomcat/logs -Xms256m -Xmx1024m -XX:PermSize=128M -XX:MaxPermSize=256m"
在这个几行凝视的以下。

# Uncomment the following line to make the umask available when using the233 # org.apache.catalina.security.SecurityListener234 #JAVA_OPTS="$JAVA_OPTS -Dorg.apache.catalina.security.SecurityListener.UMASK=`umask`"
尝试放在前一行,貌似不行呀。
25.跨域一点问题。

项目中解决Less的訪问,大致了解了下,不想用Less。所以也不须要配置乱七八糟的Filter。

做个记录,今后说不定用得上。
CORS介绍
它在维基百科上的定义是:跨域资源共享(CORS )是一种网络浏览器的技术规范,它为Webserver定义了一种方式,同意网页从不同的域訪问其资源。

而这样的訪问是被同源策略所禁止的。

CORS系统定义了一种浏览器和server交互的方式来确定是否同意跨域请求。

它是一个妥协,有更大的灵活性,但比起简单地同意全部这些的要求来说更加安全。
而W3C的官方文档眼下还是工作草案。可是正在朝着W3C推荐的方向前进。
简言之,CORS就是为了让AJAX能够实现可控的跨域訪问而生的。

<filter> <filter-name>CORS</filter-name> <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class> <init-param> <param-name>cors.allowOrigin</param-name> <param-value>*</param-value> </init-param> <init-param> <param-name>cors.supportedMethods</param-name> <param-value>GET, POST, HEAD, PUT, DELETE</param-value> </init-param> <init-param> <param-name>cors.supportedHeaders</param-name> <param-value>Accept, Origin, X-Requested-With, Content-Type, Last-Modified</param-value> </init-param> <init-param> <param-name>cors.exposedHeaders</param-name> <param-value>Set-Cookie</param-value> </init-param> <init-param> <param-name>cors.supportsCredentials</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>CORS</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> 网上找了个相似的资料:http://www.verydemo.com/demo_c199_i15317.html26.MySQL 按指定字段自己定义列表排序
SELECT * FROM bank ORDER BY FIELD(`id`,20, 22, 21) desc,id desc,FIELD('status',21,1)
要注意的是, FIELD 后面是没有空格的.因此, 完整的 SQL 为:SELECT * FROM `MyTable` WHERE `id` IN (1, 7, 3, 5) ORDER BY FIELD(`id`, 5, 3, 7, 1)常见应用 SELECT * FROM `MyTable` WHERE `name` IN ('张三', '李四', '王五', '孙六') ORDER BY FIELD(`name`, '李四', '孙六', '张三', '王五')
參考资料:http://blog.csdn.net/aidenliu/article/details/7554860
27.Jquery选择器语法。 $("#"+parentId+">a :first").addClass("tab-high"); 超链接a后。不应该有空格。

28.SiteMesh就是一个废材。

感觉没啥多大用处,不灵活。

直接用include更好。
29.依据參数类型,运行不同的构造函数,感觉easy出错。

/** * 分 */ public Money(Long cent) { this.cent = cent; }
/** * 元 */ public Money(Double amount) { if (amount != null) { Double d = DoubleUtil.mul(amount, 100); this.cent = d.longValue(); } } 可能存在这样的需求,前端要求元必须是整数Integer,后端用Integer接收,再构造。就出错了。 30.SpringMVC拦截404。

第1种方式:Tomcat直接处理web.xml<error-page> <error-code>404</error-code> <location>/error/404.htm</location> </error-page> 这样的仅仅能展示纯静态的页面,很不灵活。
第2种方式:利用Spring MVC的最精确匹配@Controllerpublic class UrlNotFoundController { @RequestMapping("*") public String test404(){ //TODO return "404Page"; }}
在网上找到这样的方法,利用SpringMVC的精确匹配,从而在其他Controller找不到相应请求的时候。来处理404。

可是,这样的方式也有问题。仅仅能拦截一部分。
比方,假设有这个一个Controller@Controller("/home")public class HomeController{@RequestMapping("a") public String a(){ // }}
直接訪问: http://localhost:8080/b.html,会被UrlNotFoundController处理。可是http://localhost:8080/home/b.html,就不会被UrlNotFoundController处理。
这说明,通过精准匹配也是有局限性的。

第3种方式:自己定义org.springframework.web.servlet.DispatcherServlet,重载noHandlerFound方法。<servlet> <servlet-name>theDispatcher</servlet-name> <servlet-class>base.web.MyDispatchServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring/spring-mvc-servlet.xml</param-value> </init-param> <init-param> <param-name>fileNotFondUrl</param-name> <param-value>/error/404</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>theDispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> public class MyDispatchServlet extends DispatcherServlet {
private static final long serialVersionUID = 1L;
private static final UrlPathHelper urlPathHelper = new UrlPathHelper(); private String fileNotFondUrl = "/error/404.html"; public void noHandlerFound(HttpServletRequest request, HttpServletResponse response) throws Exception { if (pageNotFoundLogger.isWarnEnabled()) { String requestUri = urlPathHelper.getRequestUri(request); pageNotFoundLogger.warn("No mapping found for HTTP request with URI [" + requestUri + "] in DispatcherServlet with name '" + getServletName() + "'"); } response.sendRedirect(request.getContextPath() + fileNotFondUrl); }
public String getFileNotFondUrl() { return fileNotFondUrl; }
public void setFileNotFondUrl(String fileNotFondUrl) { this.fileNotFondUrl = fileNotFondUrl; } }
默认的DispatchServlet的noHandlerFound方法。 protected void noHandlerFound(HttpServletRequest request, HttpServletResponse response) throws Exception { if (pageNotFoundLogger.isWarnEnabled()) { String requestUri = urlPathHelper.getRequestUri(request); pageNotFoundLogger.warn("No mapping found for HTTP request with URI [" + requestUri + "] in DispatcherServlet with name '" + getServletName() + "'"); } response.sendError(HttpServletResponse.SC_NOT_FOUND); }直接返回HTTP404。
特别须要说明的是: 自己定义之后。不能再使用 <!-- <mvc:default-servlet-handler /> --> 通常情况下。使用这个配置。能够让SpringMVC相应js、css等静态页面,在合适的路径,自己主动去找。

凝视之后,就仅仅能手动响应静态资源等请求了。 2种方式: 第1种:Tomcat处理。 配置 <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>/static/*</url-pattern> </servlet-mapping> 第2种:SpringMVC处理 <mvc:resources mapping="/kindeditor/upload/image/**" location="file:${kindeditorImagePath}/kindeditor/upload/image/**" /> 假设使用了“<mvc:default-servlet-handler />” // Determine handler for the current request. mappedHandler = getHandler(processedRequest, false); if (mappedHandler == null || mappedHandler.getHandler() == null) { noHandlerFound(processedRequest, response); return; } DispatchServlet上述代码的mappedHandler就不为空了。因此无法进入noHandlerFound方法。 參考资料:http://blog.csdn.net/u012345283/article/details/39718245
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: