前段时间自己做了一个简单的博客站,买了阿里云学生优惠价服务器,在上面搭了环境,将代码在上面跑起来了。用的是老掉牙的 java 三大框架,写的时候遇到很多问题,幸亏 v 站的前辈们悉心指导,终于将程序运行起来了。不过我感觉我懂的还是太少,我不太懂数据库的优化,也不知道该怎么优化程序,感觉写的代码太糙。现在拿上来,希望前辈们指出不足,也好给点建议,应该在哪方面更加的努力。另外希望前辈们给点建议,想学习一门脚本语言,比如 ruby 、 python 之类的,不知道有没有什么好的建议。
github 地址是 https://github.com/creatorYC/yechblog
博客站地址是 114.215.92.22
希望前辈们轻喷!我知道自己很小白。不胜感激
1
Kilerd 2015-12-28 13:45:53 +08:00
连域名都不肯放一个么?
|
3
10iii 2015-12-28 14:04:43 +08:00
我觉得起码得有个域名。
|
4
billyu 2015-12-28 14:08:55 +08:00
正好去瞅瞅 正在学习 javaweb
|
5
dxk611 2015-12-28 14:24:59 +08:00
看了一眼,地址在此 http://114.215.92.22:8080
开发环境下端口用 8080 ,生产环境下应该用 80 ,上 面地址端口换成 80 可访问。 确实很多功能都不完善,槽点太多,多努力,加油。 |
6
HypoChen 2015-12-28 14:25:29 +08:00
看了代码,感觉代码风格不错,不过为啥 DAO 层的实现仓库里木有。
不过博客跑起来为什么怎么慢 233333. 我也是一学生狗,感觉模块划分有点怪怪的,总之感觉是个很不错的 CMS |
7
lwbjing 2015-12-28 14:27:20 +08:00
<!-- 首页 -->
原则上一个页面只有一个 h1 标签... 标题加好链接... summary 部分可以多放点字眼,费不了几个字节的流量... 分享的弹层建议出现在鼠标操作的右方... logo 的链接用 /也不要用#,这不是浪费资源么... 页头没有声明编码... 首页最底下又出现一段 html 是什么 gui... nav 部分可以略微再往下调一点... ... 走了...工头喊搬砖了... |
8
pangtianyu 2015-12-28 14:29:52 +08:00
http://1926716438 这样子好看一点……
|
13
Explorare 2015-12-28 14:41:45 +08:00
简易去 Namesilo 买个 .com 的域名,用优惠码 HENCOLLE 8 USD/年。
另外建议部署 CloudFlare CDN ,自带 SSL 证书和 HTTP/2 ,简直好使,免费计划足够用。 |
14
gangsta 2015-12-28 14:48:27 +08:00 via Smartisan T1 2
你这个 project 别人 100%是跑不起来的,因为它依赖了一个特定的 IDE ,而且没有使用任何构建技术,你在 gitignore 中的配置又忽略了.jar ,对于你目前的情况这实际就是忽略了依赖。
先去研究下 maven/gradle ,这样可以保证不管别人是用 eclipse 还是 jb 家的编辑器,甚至 vim/atom 这样的文本编辑器,构建和运行你的项目都是没有任何问题的。 |
15
Kilerd 2015-12-28 14:49:30 +08:00
你的 Router 真的好难看好难看。
|
16
Hello1995 2015-12-28 14:49:48 +08:00
既然你使用了 button 等 HTML 新属性,那总体的就应该这么写:
``` <!DOCTYPE html> <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 14:51:06 +08:00
更正 #16 : HTML5 新属性
|
18
Hello1995 2015-12-28 14:55:09 +08:00 via Android
自言自语:刚才没用 gist ,没有缩进很难受…
|
19
xuhaoyangx 2015-12-28 14:59:37 +08:00
url 命名的比较奇特。
git 上传了一堆乱东西, build 就不用放上来了吧 用 maven 如何, ssh 我直接没怎么看,直接用 springmvc+mybatis 做了 |
20
flyshu 2015-12-28 15:13:59 +08:00
菜单点什么都是博客精选 4 个字变色
|
23
creatorYC OP @xuhaoyangx 嗯,我不会构建项目,谢谢您的指点,我会学习一下项目构建的
|
27
ooTwToo 2015-12-28 16:28:55 +08:00
文章内容还是不错的。 另外你可以了解一下 maven 这个工具!
|
28
Martin9 2015-12-28 16:29:15 +08:00
同学阿里云服务器买的多少钱,最近在犹豫是用阿里云还是香港的虚拟主机
|
30
creatorYC OP @Kilerd 因为把所有的请求都走了 Action 来判断有没有登录,所以是这样,我会研究一下怎么改的,谢谢指点
|
32
Marlon 2015-12-28 16:45:18 +08:00
登陆界面把两个背景图片去掉会好看点。。。
|
33
wuhuaji 2015-12-28 17:01:57 +08:00
挺好的啊,前端是自己写的吗?
|
34
creatorYC OP @wuhuaji 有一个 css 文件是从其他地方抠出来的,稍微改了改,我不太会 css 样式
|
37
elgoog1970 2015-12-28 22:21:37 +08:00
学习 markdown,把 readme 好好写下
|
38
Ouyangan 2015-12-28 22:24:03 +08:00
上 springmvc 吧.....
|
39
shyling 2015-12-28 22:24:38 +08:00
蛮不错了=。=我一直也想自己写个博客,奈何没有时间。。。
|
40
yjd 2015-12-28 22:41:10 +08:00
域名没有你也申请个 tk 啊,或者一堆免费二级域名先-_-!!直接发个地址哈哈哈哈。
|
41
Alwaysonline 2015-12-28 22:44:25 +08:00
屏幕大点菜单栏的分类好累。。。。
|
42
cheese 2015-12-28 22:46:42 +08:00
我不懂技术~但是我赞同 38#的意见,对于 readme 的书写应该改一改,分段有利于阅读。既然是英文应该是想要写给外国人看,技术的文档尽量正式,简洁一些。楼主的英语太中式口语化。我英文超级烂,所以我必须写英语的时候,在保证意思正确且充分表达的情况下,写的越少越好。另外 38#提到的 markdown ,真的特别好用。介绍及简略教程在此 [点我]( http://sspai.com/25137)
|
43
cheese 2015-12-28 22:49:38 +08:00
为什么我在括号里加了一个空格,我不服,再来一次。[点我]( http://sspai.com/25137)
|
45
creatorYC OP @elgoog1970 嗯嗯,谢谢指点,要学的东西还太多, fighting
|
47
shyling 2015-12-28 23:11:58 +08:00 via iPad
@cheese 评论真的支持 md 么。。[mysite]( https://shyling.com)
|
51
micookie 2015-12-28 23:40:59 +08:00
看楼主的 android 搞的不错的样子。。。。
|
52
eoo 2015-12-29 00:09:32 +08:00 via Android
要二级域名 @我一声
|
53
buir 2015-12-29 03:08:56 +08:00
我也放一个我自己的 http://www.vix2.com
|
58
88250 2015-12-29 08:56:29 +08:00 1
|
59
lechenging 2015-12-29 09:06:02 +08:00
Net 博客 http://www.lechenging.top
|
60
sola97 2015-12-29 09:07:56 +08:00
阿里云绑域名要备案
|
62
wudanyang 2015-12-29 10:25:05 +08:00
挺卡,不想备案可以试试 github 的 pages
|
68
odirus 2015-12-29 15:05:10 +08:00
楼主用的阿里主机,是不是用 IP 直接访问可以免备案?
|
69
macroideal 2015-12-29 16:29:52 +08:00
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 17:15:01 +08:00
为什么我在源码里看到了 3 个 <Doctype> 3 个 <head> 。。。
|
75
Pastsong 2015-12-29 17:21:31 +08:00
@creatorYC view-source:http://114.215.92.22/BlogAction_pagination
|
76
bzw875 2015-12-29 17:25:00 +08:00
能教小白怎么配置启动服务就好了
|
77
icemilk00 2015-12-29 17:49:57 +08:00
代码 commit 描述都是中文, README 干嘛要用英文写,而且第一句就表明自己的英语不行....
|
78
Liang 2015-12-29 18:31:07 +08:00
LOGO 和 NAV 不对其,好难过
|
79
creatorYC OP @icemilk00 因为当时正好看到一篇文章,意思是“能不能要求自己用全英文写个项目简介”,大致意思是这个,不好意思,见笑了
|
83
risingstar 2015-12-29 22:39:57 +08:00
哥们 挺厉害的 我也在学习中,有问题向你请教哦
|
84
creatorYC OP @risingstar 我也是菜鸟呃,能帮到的一定帮,共同学习
|
85
xiaodaigou 2015-12-29 23:14:01 +08:00
.........为什么这么 6 ,打开 V2 一眼就能看到你的帖子
|
86
freezhan 2015-12-29 23:29:45 +08:00
读书的时候也是从 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 00:25:30 +08:00 via Android
天啦,我在 #16 说的你还是没有改,右键查看源代码,你就能看到 #73 所说的了,或者用 Chromium 一类的浏览器直接 view-source:114.215.92.22/BlogAction_pagination
|
90
hiyouli 2015-12-30 08:41:48 +08:00
登陆页面无法直接回首页。
|
91
macroideal 2015-12-30 10:29:15 +08:00
@creatorYC 不是, 可能是一些 exception 没有处理好
|
92
yiciyuansky 2015-12-30 12:20:07 +08:00
骚年。。我可以赞助你一个子域名。。。以便我更好的访问。。。
|
93
yiciyuansky 2015-12-30 12:23:08 +08:00
补一句,是我自己的域名,备案过的。
ps :腾讯云,学生 1 块钱 1 个月; |
95
creatorYC OP @yiciyuansky 我也准备买个域名...腾讯云好像是买服务器送域名吧
|
97
yiciyuansky 2015-12-30 15:32:09 +08:00
@creatorYC 也要买,不过相当于免费, cn 的域名,还要备案才能用。
|