
前段时间自己做了一个简单的博客站,买了阿里云学生优惠价服务器,在上面搭了环境,将代码在上面跑起来了。用的是老掉牙的 java 三大框架,写的时候遇到很多问题,幸亏 v 站的前辈们悉心指导,终于将程序运行起来了。不过我感觉我懂的还是太少,我不太懂数据库的优化,也不知道该怎么优化程序,感觉写的代码太糙。现在拿上来,希望前辈们指出不足,也好给点建议,应该在哪方面更加的努力。另外希望前辈们给点建议,想学习一门脚本语言,比如 ruby 、 python 之类的,不知道有没有什么好的建议。
github 地址是 https://github.com/creatorYC/yechblog
博客站地址是 114.215.92.22
希望前辈们轻喷!我知道自己很小白。不胜感激
1 Kilerd 2015 年 12 月 28 日 连域名都不肯放一个么? |
3 10iii 2015 年 12 月 28 日 我觉得起码得有个域名。 |
4 billyu 2015 年 12 月 28 日 正好去瞅瞅 正在学习 javaweb |
5 dxk611 2015 年 12 月 28 日 看了一眼,地址在此 http://114.215.92.22:8080 开发环境下端口用 8080 ,生产环境下应该用 80 ,上 面地址端口换成 80 可访问。 确实很多功能都不完善,槽点太多,多努力,加油。 |
6 Hyponet 2015 年 12 月 28 日 看了代码,感觉代码风格不错,不过为啥 DAO 层的实现仓库里木有。 不过博客跑起来为什么怎么慢 233333. 我也是一学生狗,感觉模块划分有点怪怪的,总之感觉是个很不错的 CMS |
7 lwbjing 2015 年 12 月 28 日 <!-- 首页 --> 原则上一个页面只有一个 h1 标签... 标题加好链接... summary 部分可以多放点字眼,费不了几个字节的流量... 分享的弹层建议出现在鼠标操作的右方... logo 的链接用 /也不要用#,这不是浪费资源么... 页头没有声明编码... 首页最底下又出现一段 html 是什么 gui... nav 部分可以略微再往下调一点... ... 走了...工头喊搬砖了... |
8 pangtianyu 2015 年 12 月 28 日 http://1926716438 这样子好看一点…… |
13 Explorare 2015 年 12 月 28 日 简易去 Namesilo 买个 .com 的域名,用优惠码 HENCOLLE 8 USD/年。 另外建议部署 CloudFlare CDN ,自带 SSL 证书和 HTTP/2 ,简直好使,免费计划足够用。 |
14 gangsta 2015 年 12 月 28 日 via Smartisan T1 你这个 project 别人 100%是跑不起来的,因为它依赖了一个特定的 IDE ,而且没有使用任何构建技术,你在 gitignore 中的配置又忽略了.jar ,对于你目前的情况这实际就是忽略了依赖。 先去研究下 maven/gradle ,这样可以保证不管别人是用 eclipse 还是 jb 家的编辑器,甚至 vim/atom 这样的文本编辑器,构建和运行你的项目都是没有任何问题的。 |
15 Kilerd 2015 年 12 月 28 日 你的 Router 真的好难看好难看。 |
16 Hello1995 2015 年 12 月 28 日 既然你使用了 button 等 HTML 新属性,那总体的就应该这么写: ``` <!DOCTYPE html&t; <html lang="zh-cmn-Hans"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" cOntent="IE=edge, chrome=1"> <title>网站名称</title> </head> <body> 网站全部内容 </body> </html> ``` 那一段 css 可以写到 myStyle.css 里。 (强迫症表示: link 标签写法能统一一下吗?) js 建议丢到下面, html 标签用法明显错误。 (有错的请各位指教,谢谢) @pangtianyu http://0x72d75c16 这样不更酷? ![]() |
17 Hello1995 2015 年 12 月 28 日 更正 #16 : HTML5 新属性 |
18 Hello1995 2015 年 12 月 28 日 via Android 自言自语:刚才没用 gist ,没有缩进很难受… |
19 xuhaoyangx 2015 年 12 月 28 日 url 命名的比较奇特。 git 上传了一堆乱东西, build 就不用放上来了吧 用 maven 如何, ssh 我直接没怎么看,直接用 springmvc+mybatis 做了 |
20 flyshu 2015 年 12 月 28 日 菜单点什么都是博客精选 4 个字变色 |
23 creatorYC OP @xuhaoyangx 嗯,我不会构建项目,谢谢您的指点,我会学习一下项目构建的 |
27 ooTwToo 2015 年 12 月 28 日 文章内容还是不错的。 另外你可以了解一下 maven 这个工具! |
28 Martin9 2015 年 12 月 28 日 同学阿里云服务器买的多少钱,最近在犹豫是用阿里云还是香港的虚拟主机 |
30 creatorYC OP @Kilerd 因为把所有的请求都走了 Action 来判断有没有登录,所以是这样,我会研究一下怎么改的,谢谢指点 |
32 Marlon 2015 年 12 月 28 日 登陆界面把两个背景图片去掉会好看点。。。 |
33 wuhuaji 2015 年 12 月 28 日 挺好的啊,前端是自己写的吗? |
37 elgoog1970 2015 年 12 月 28 日 学习 markdown,把 readme 好好写下 |
38 Ouyangan 2015 年 12 月 28 日 上 springmvc 吧..... |
39 shyling 2015 年 12 月 28 日 蛮不错了=。=我一直也想自己写个博客,奈何没有时间。。。 |
40 yjd 2015 年 12 月 28 日 域名没有你也申请个 tk 啊,或者一堆免费二级域名先-_-!!直接发个地址哈哈哈哈。 |
41 Alwaysonline 2015 年 12 月 28 日 屏幕大点菜单栏的分类好累。。。。 |
42 cheese 2015 年 12 月 28 日 我不懂技术~但是我赞同 38#的意见,对于 readme 的书写应该改一改,分段有利于阅读。既然是英文应该是想要写给外国人看,技术的文档尽量正式,简洁一些。楼主的英语太中式口语化。我英文超级烂,所以我必须写英语的时候,在保证意思正确且充分表达的情况下,写的越少越好。另外 38#提到的 markdown ,真的特别好用。介绍及简略教程在此 [点我]( http://sspai.com/25137) |
43 cheese 2015 年 12 月 28 日 为什么我在括号里加了一个空格,我不服,再来一次。[点我]( http://sspai.com/25137) |
45 creatorYC OP @elgoog1970 嗯嗯,谢谢指点,要学的东西还太多, fighting |
47 shyling 2015 年 12 月 28 日 via iPad @cheese 评论真的支持 md 么。。[mysite]( https://shyling.com) |
51 micookie 2015 年 12 月 28 日 看楼主的 android 搞的不错的样子。。。。 |
52 eoo 2015 年 12 月 29 日 via Android 要二级域名 @我一声 |
53 buir 2015 年 12 月 29 日 我也放一个我自己的 http://www.vix2.com |
58 88250 2015 年 12 月 29 日 |
59 lechenging 2015 年 12 月 29 日 Net 博客 http://www.lechenging.top |
60 sola97 2015 年 12 月 29 日 阿里云绑域名要备案 |
62 wudanyang 2015 年 12 月 29 日 挺卡,不想备案可以试试 github 的 pages |
68 odirus 2015 年 12 月 29 日 楼主用的阿里主机,是不是用 IP 直接访问可以免备案? |
69 macroideal 2015 年 12 月 29 日 HTTP Status 500 - Index: 0, Size: 0 type Exception report message Index: 0, Size: 0 description The server encountered an internal error that prevented it from fulfilling this request. exception java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 java.util.ArrayList.rangeCheck(ArrayList.java:635) java.util.ArrayList.get(ArrayList.java:411) com.yech.yechblog.service.impl.UserServiceImpl.queryUserByEmail(UserServiceImpl.java:94) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:606) org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:98) org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:262) org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207) com.sun.proxy.$Proxy23.queryUserByEmail(Unknown Source) com.yech.yechblog.action.RegistAction.resetPsw(RegistAction.java:92) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:606) com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:450) com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:289) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:252) org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:167) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265) org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:239) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:239) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:191) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:73) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:91) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:252) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:161) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:193) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:189) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) com.yech.yechblog.interceptor.LoginInterceptor.doIntercept(LoginInterceptor.java:50) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54) org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:563) org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77) org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99) note The full stack trace of the root cause is available in the Apache Tomcat/8.0.28 logs. Apache Tomcat/8.0.28 |
71 creatorYC OP @macroideal 是不是服务器太弱了 -_-! |
72 Pastsong 2015 年 12 月 29 日 为什么我在源码里看到了 3 个 <Doctype> 3 个 <head> 。。。 |
76 bzw875 2015 年 12 月 29 日 能教小白怎么配置启动服务就好了 |
77 icemilk00 2015 年 12 月 29 日 代码 commit 描述都是中文, README 干嘛要用英文写,而且第一句就表明自己的英语不行.... |
78 Liang 2015 年 12 月 29 日 LOGO 和 NAV 不对其,好难过 |
79 creatorYC OP @icemilk00 因为当时正好看到一篇文章,意思是“能不能要求自己用全英文写个项目简介”,大致意思是这个,不好意思,见笑了 |
83 risingstar 2015 年 12 月 29 日 哥们 挺厉害的 我也在学习中,有问题向你请教哦 |
84 creatorYC OP @risingstar 我也是菜鸟呃,能帮到的一定帮,共同学习 |
85 xiaodaigou 2015 年 12 月 29 日 .........为什么这么 6 ,打开 V2 一眼就能看到你的帖子 |
86 freezhan 2015 年 12 月 29 日 读书的时候也是从 ssh 开始做~ 年初出来实习时了解的工具: 1. lombock 简化代码 https://projectlombok.org/ http://my.oschina.net/wallenheng/blog/372253?fromerr=eg3wCFm4 2. maven 构建项目 看的这本书《 Maven 实战》 http://juvenshun.iteye.com/blog/809712 Python 的话入门感觉廖雪峰的教程不错,不过没坚持看完,前面学 Git 看的他的博客。 最后 Java 项目怎么能够少了单元测试 23333 https://github.com/jayway/powermock |
87 Hello1995 2015 年 12 月 30 日 via Android 天啦,我在 #16 说的你还是没有改,右键查看源代码,你就能看到 #73 所说的了,或者用 Chromium 一类的浏览器直接 view-source:114.215.92.22/BlogAction_pagination |
90 hiyouli 2015 年 12 月 30 日 登陆页面无法直接回首页。 |
91 macroideal 2015 年 12 月 30 日 @creatorYC 不是, 可能是一些 exception 没有处理好 |
92 yiciyuansky 2015 年 12 月 30 日 骚年。。我可以赞助你一个子域名。。。以便我更好的访问。。。 |
93 yiciyuansky 2015 年 12 月 30 日 补一句,是我自己的域名,备案过的。 ps :腾讯云,学生 1 块钱 1 个月; |
95 creatorYC OP @yiciyuansky 我也准备买个域名...腾讯云好像是买服务器送域名吧 |
97 yiciyuansky 2015 年 12 月 30 日 @creatorYC 也要买,不过相当于免费, cn 的域名,还要备案才能用。 |