Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
smileNicky
myblog
提交
54a55080
M
myblog
项目概览
smileNicky
/
myblog
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
1
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
myblog
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
1
合并请求
1
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
54a55080
编写于
1月 07, 2019
作者:
U
u014427391
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'origin/1.0.0' into develop
上级
3e032897
361f9c31
变更
17
隐藏空白更改
内联
并排
Showing
17 changed file
with
362 addition
and
160 deletion
+362
-160
myblog.sql
myblog.sql
+2
-2
src/pom.xml
src/pom.xml
+59
-70
src/src/main/java/net/myblog/core/logger/LogAspect.java
src/src/main/java/net/myblog/core/logger/LogAspect.java
+5
-6
src/src/main/java/net/myblog/web/controller/BlogIndexController.java
...n/java/net/myblog/web/controller/BlogIndexController.java
+3
-2
src/src/main/java/net/myblog/web/controller/admin/ArticleAdminController.java
...t/myblog/web/controller/admin/ArticleAdminController.java
+21
-1
src/src/main/java/net/myblog/web/controller/admin/ArticleSortAdminController.java
...blog/web/controller/admin/ArticleSortAdminController.java
+25
-5
src/src/main/java/net/myblog/web/controller/admin/FriendlyLinkAdminController.java
...log/web/controller/admin/FriendlyLinkAdminController.java
+16
-15
src/src/main/java/net/myblog/web/controller/admin/LoginController.java
...java/net/myblog/web/controller/admin/LoginController.java
+20
-17
src/src/main/resources/META-INF/persistence.xml
src/src/main/resources/META-INF/persistence.xml
+44
-0
src/src/main/resources/log4j.properties
src/src/main/resources/log4j.properties
+1
-1
src/src/main/resources/spring/spring-base.xml
src/src/main/resources/spring/spring-base.xml
+8
-1
src/src/main/resources/spring/spring-mvc.xml
src/src/main/resources/spring/spring-mvc.xml
+1
-0
src/src/main/webapp/WEB-INF/jsp/admin/article/article_list.jsp
...rc/main/webapp/WEB-INF/jsp/admin/article/article_list.jsp
+1
-1
src/src/main/webapp/WEB-INF/jsp/admin/article/article_write.jsp
...c/main/webapp/WEB-INF/jsp/admin/article/article_write.jsp
+119
-2
src/src/main/webapp/WEB-INF/jsp/admin/frame/login.jsp
src/src/main/webapp/WEB-INF/jsp/admin/frame/login.jsp
+3
-3
src/src/main/webapp/WEB-INF/jsp/myblog/frame/top.jsp
src/src/main/webapp/WEB-INF/jsp/myblog/frame/top.jsp
+32
-32
src/src/main/webapp/WEB-INF/web.xml
src/src/main/webapp/WEB-INF/web.xml
+2
-2
未找到文件。
myblog.sql
浏览文件 @
54a55080
...
...
@@ -133,7 +133,7 @@ CREATE TABLE `sys_menu` (
/*Data for the table `sys_menu` */
insert
into
`sys_menu`
(
`menuId`
,
`identity`
,
`parentId`
,
`name`
,
`menuIcon`
,
`menuUrl`
,
`menuType`
,
`menuOrder`
)
values
(
1
,
'user'
,
0
,
'用户管理'
,
'icon-search'
,
'#'
,
'1'
,
'1'
),(
2
,
NULL
,
1
,
'用户信息'
,
''
,
NULL
,
'2'
,
'2'
),(
3
,
NULL
,
0
,
'文章管理'
,
'icon-bkgl'
,
'#'
,
'1'
,
'4'
),(
4
,
NULL
,
3
,
'
写文章'
,
'icon-writeblog'
,
NULL
,
'2'
,
'5'
),(
5
,
NULL
,
3
,
'文章归档'
,
'icon-bkgl'
,
'article/list.do'
,
'2'
,
'6'
),(
6
,
NULL
,
0
,
'系统设置'
,
'icon-item'
,
'#'
,
'1'
,
'7'
),(
7
,
NULL
,
6
,
'菜单编辑'
,
'icon-search'
,
'menu/getMenus.do'
,
'2'
,
'10'
),(
8
,
NULL
,
0
,
'博客配置'
,
'icon-bkgl'
,
'#'
,
'1'
,
'11'
),(
9
,
NULL
,
8
,
'博客链接'
,
'icon-link'
,
'link/doLoadData.do'
,
'2'
,
'12'
),(
10
,
NULL
,
8
,
'博客标签'
,
'icon-bklb'
,
'articleSort/labellist.do'
,
'2'
,
'13'
),(
11
,
NULL
,
8
,
'门户广告'
,
NULL
,
'adv/advList.do'
,
'2'
,
'14'
);
insert
into
`sys_menu`
(
`menuId`
,
`identity`
,
`parentId`
,
`name`
,
`menuIcon`
,
`menuUrl`
,
`menuType`
,
`menuOrder`
)
values
(
1
,
'user'
,
0
,
'用户管理'
,
'icon-search'
,
'#'
,
'1'
,
'1'
),(
2
,
NULL
,
1
,
'用户信息'
,
''
,
NULL
,
'2'
,
'2'
),(
3
,
NULL
,
0
,
'文章管理'
,
'icon-bkgl'
,
'#'
,
'1'
,
'4'
),(
4
,
NULL
,
3
,
'
文章归档'
,
'icon-bkgl'
,
'article/list.do'
,
'2'
,
'6'
),(
5
,
NULL
,
0
,
'系统设置'
,
'icon-item'
,
'#'
,
'1'
,
'7'
),(
6
,
NULL
,
5
,
'菜单编辑'
,
'icon-search'
,
'menu/getMenus.do'
,
'2'
,
'10'
),(
7
,
NULL
,
0
,
'博客配置'
,
'icon-bkgl'
,
'#'
,
'1'
,
'11'
),(
8
,
NULL
,
7
,
'博客链接'
,
'icon-link'
,
'link/doLoadData.do'
,
'2'
,
'12'
),(
9
,
NULL
,
7
,
'博客标签'
,
'icon-bklb'
,
'articleSort/labellist.do'
,
'2'
,
'13'
),(
10
,
NULL
,
7
,
'门户广告'
,
NULL
,
'adv/advList.do'
,
'2'
,
'14'
);
/*Table structure for table `sys_operation` */
...
...
@@ -168,7 +168,7 @@ CREATE TABLE `sys_permission` (
/*Data for the table `sys_permission` */
insert
into
`sys_permission`
(
`id`
,
`desc`
,
`name`
,
`menuId`
)
values
(
1
,
'用户管理相关权限'
,
'用户管理'
,
1
),(
2
,
NULL
,
NULL
,
3
),(
3
,
NULL
,
NULL
,
6
),(
4
,
NULL
,
NULL
,
8
),(
5
,
NULL
,
NULL
,
3
);
insert
into
`sys_permission`
(
`id`
,
`desc`
,
`name`
,
`menuId`
)
values
(
1
,
'用户管理相关权限'
,
'用户管理'
,
1
),(
2
,
NULL
,
NULL
,
3
),(
3
,
NULL
,
NULL
,
5
),(
4
,
NULL
,
NULL
,
7
),(
5
,
NULL
,
NULL
,
3
);
/*Table structure for table `sys_permission_operation` */
...
...
src/pom.xml
浏览文件 @
54a55080
...
...
@@ -20,15 +20,15 @@
</properties>
<dependencies>
<!-- servlet
start
-->
<!-- servlet -->
<dependency>
<groupId>
javax.servlet
</groupId>
<artifactId>
servlet-api
</artifactId>
<version>
2.5
</version>
<scope>
provided
</scope>
</dependency>
<!-- servlet end -->
<!-- jstl
start
-->
<!-- jstl -->
<dependency>
<groupId>
jstl
</groupId>
<artifactId>
jstl
</artifactId>
...
...
@@ -39,8 +39,8 @@
<artifactId>
standard
</artifactId>
<version>
1.1.2
</version>
</dependency>
<!-- jstl end -->
<!-- spring base
start
-->
<!-- spring base-->
<dependency>
<groupId>
org.springframework
</groupId>
<artifactId>
spring-core
</artifactId>
...
...
@@ -82,8 +82,8 @@
<artifactId>
spring-web
</artifactId>
<version>
${spring.version}
</version>
</dependency>
<!-- spring base end -->
<!-- spring aop
start
-->
<!-- spring aop -->
<dependency>
<groupId>
org.springframework
</groupId>
<artifactId>
spring-aop
</artifactId>
...
...
@@ -94,15 +94,15 @@
<artifactId>
aspectjweaver
</artifactId>
<version>
1.6.10
</version>
</dependency>
<!-- spring aop end -->
<!-- springMVC
start
-->
<!-- springMVC -->
<dependency>
<groupId>
org.springframework
</groupId>
<artifactId>
spring-webmvc
</artifactId>
<version>
${spring.version}
</version>
</dependency>
<!-- springMVC end -->
<!-- spring data
start
-->
<!-- spring data -->
<dependency>
<groupId>
org.springframework
</groupId>
<artifactId>
spring-orm
</artifactId>
...
...
@@ -118,8 +118,8 @@
<artifactId>
spring-data-commons
</artifactId>
<version>
${spring-data-commons.version}
</version>
</dependency>
<!-- spring data end -->
<!-- hibernate jpa
start
-->
<!-- hibernate jpa-->
<dependency>
<groupId>
org.hibernate.javax.persistence
</groupId>
<artifactId>
hibernate-jpa-2.1-api
</artifactId>
...
...
@@ -135,8 +135,8 @@
<artifactId>
hibernate-entitymanager
</artifactId>
<version>
${hibernate.version}
</version>
</dependency>
<!-- hibernate jpa end -->
<!-- hibernate echache
start
-->
<!-- hibernate echache -->
<dependency>
<groupId>
org.slf4j
</groupId>
<artifactId>
slf4j-api
</artifactId>
...
...
@@ -152,22 +152,22 @@
<artifactId>
hibernate-ehcache
</artifactId>
<version>
${hibernate.version}
</version>
</dependency>
<!-- hibernate echache end -->
<!-- 阿里的连接池druid
start
-->
<!-- 阿里的连接池druid -->
<dependency>
<groupId>
com.alibaba
</groupId>
<artifactId>
druid
</artifactId>
<version>
${druid.version}
</version>
</dependency>
<!-- 阿里的连接池druid end-->
<!--shiro
start
-->
<!--shiro -->
<dependency>
<groupId>
org.apache.shiro
</groupId>
<artifactId>
shiro-all
</artifactId>
<version>
${shiro.version}
</version>
</dependency>
<!-- shiro end-->
<!-- velocity
start
-->
</dependency>
<!-- velocity -->
<dependency>
<groupId>
org.apache.velocity
</groupId>
<artifactId>
velocity
</artifactId>
...
...
@@ -178,8 +178,9 @@
<artifactId>
velocity-tools
</artifactId>
<version>
2.0
</version>
</dependency>
<!-- velocity end-->
<!-- lucene全文搜素引擎 start-->
<!-- velocity -->
<!-- lucene全文搜素引擎 -->
<dependency>
<groupId>
org.apache.lucene
</groupId>
<artifactId>
lucene-core
</artifactId>
...
...
@@ -213,70 +214,45 @@
<scope>
system
</scope>
<systemPath>
${basedir}/src/main/webapp/WEB-INF/lib/IKAnalyzer2012FF_u1.jar
</systemPath>
</dependency>
<!-- lucene全文搜素引擎 end -->
<!-- log4j
start
-->
<!-- log4j -->
<dependency>
<groupId>
log4j
</groupId>
<artifactId>
log4j
</artifactId>
<version>
${log4j.version}
</version>
</dependency>
<!-- log4j end-->
<!-- json解析需要的jar start-->
<dependency>
<groupId>
commons-beanutils
</groupId>
<artifactId>
commons-beanutils
</artifactId>
<version>
1.8.3
</version>
</dependency>
<dependency>
<groupId>
commons-collections
</groupId>
<artifactId>
commons-collections
</artifactId>
<version>
3.2.1
</version>
</dependency>
<dependency>
<groupId>
net.sf.ezmorph
</groupId>
<artifactId>
ezmorph
</artifactId>
<version>
1.0.6
</version>
</dependency>
<dependency>
<groupId>
commons-lang
</groupId>
<artifactId>
commons-lang
</artifactId>
<version>
2.5
</version>
</dependency>
<dependency>
<groupId>
commons-logging
</groupId>
<artifactId>
commons-logging
</artifactId>
<version>
1.2
</version>
</dependency>
<dependency>
<groupId>
net.sf.json-lib
</groupId>
<artifactId>
json-lib
</artifactId>
<version>
2.4
</version>
<type>
jar
</type>
<classifier>
jdk15
</classifier>
<scope>
compile
</scope>
</dependency>
<!-- json解析需要的jar end -->
<!-- poi start-->
<!-- log4j -->
<!-- fastjson -->
<dependency>
<groupId>
com.alibaba
</groupId>
<artifactId>
fastjson
</artifactId>
<version>
1.2.35
</version>
</dependency>
<!-- poi -->
<dependency>
<groupId>
org.apache.poi
</groupId>
<artifactId>
poi
</artifactId>
<version>
${poi.version}
</version>
</dependency>
<!-- poi end-->
<!-- email start-->
<!-- email -->
<dependency>
<groupId>
javax.mail
</groupId>
<artifactId>
mail
</artifactId>
<version>
1.4
</version>
</dependency>
<!-- email end-->
<!-- mysql
start
-->
</dependency>
<!-- mysql -->
<dependency>
<groupId>
mysql
</groupId>
<artifactId>
mysql-connector-java
</artifactId>
<version>
${mysql.version}
</version>
</dependency>
<!-- mysql end-->
<!-- commons -->
<dependency>
<groupId>
commons-io
</groupId>
...
...
@@ -288,7 +264,20 @@
<artifactId>
commons-fileupload
</artifactId>
<version>
1.2.2
</version>
</dependency>
<!-- commons -->
<!-- jackson -->
<dependency>
<groupId>
org.codehaus.jackson
</groupId>
<artifactId>
jackson-core-asl
</artifactId>
<version>
1.9.13
</version>
</dependency>
<dependency>
<groupId>
org.codehaus.jackson
</groupId>
<artifactId>
jackson-mapper-asl
</artifactId>
<version>
1.9.13
</version>
</dependency>
</dependencies>
<build>
...
...
src/src/main/java/net/myblog/core/logger/LogAspect.java
浏览文件 @
54a55080
...
...
@@ -20,9 +20,8 @@ import org.springframework.stereotype.Component;
import
org.springframework.web.context.request.RequestContextHolder
;
import
org.springframework.web.context.request.ServletRequestAttributes
;
import
net.sf.json.JSON
;
import
net.sf.json.JSONArray
;
import
net.sf.json.JSONObject
;
import
com.alibaba.fastjson.JSONArray
;
...
...
@@ -57,8 +56,8 @@ public class LogAspect {
result
=
joinPoint
.
proceed
();
log
.
info
(
"=====Controller后置通知开始====="
);
JSONArray
jsonObj
=
JSONArray
.
fromObject
(
result
);
log
.
info
(
"返回结果:"
+
json
Obj
.
toString
()
);
String
json
=
JSONArray
.
toJSONString
(
result
);
log
.
info
(
"返回结果:"
+
json
);
}
catch
(
Exception
e
){
log
.
error
(
"====Controller全局异常===="
);
...
...
@@ -87,7 +86,7 @@ public class LogAspect {
String
param
=
""
;
if
(
joinPoint
.
getArgs
()!=
null
&&
joinPoint
.
getArgs
().
length
>
0
){
for
(
int
i
=
0
;
i
<
joinPoint
.
getArgs
().
length
;
i
++)
{
String
args
=
JSONArray
.
fromObject
(
joinPoint
.
getArgs
()[
i
]).
toString
();
String
args
=
JSONArray
.
toJSONString
(
joinPoint
.
getArgs
()[
i
]).
toString
();
param
+=
args
+
";"
;
}
}
...
...
src/src/main/java/net/myblog/web/controller/BlogIndexController.java
浏览文件 @
54a55080
...
...
@@ -25,7 +25,6 @@ import net.myblog.service.ArticleSortService;
import
net.myblog.service.FriendlyLinkService
;
import
net.myblog.utils.DateUtils
;
import
net.myblog.utils.Tools
;
import
net.sf.json.JSONArray
;
import
org.apache.lucene.analysis.Analyzer
;
import
org.apache.lucene.analysis.TokenStream
;
...
...
@@ -59,6 +58,8 @@ import org.springframework.web.bind.annotation.RequestParam;
import
org.springframework.web.servlet.ModelAndView
;
import
org.wltea.analyzer.lucene.IKAnalyzer
;
import
com.alibaba.fastjson.JSONArray
;
@Controller
public
class
BlogIndexController
extends
BaseController
{
...
...
@@ -109,7 +110,7 @@ public class BlogIndexController extends BaseController{
List
<
FriendlyLink
>
links
=
friendlyLinkService
.
findAll
();
//获取广告信息
List
<
Advertisement
>
webAds
=
webAdService
.
findAll
();
JSONArray
advsJson
=
JSONArray
.
fromObject
(
webAds
);
String
advsJson
=
JSONArray
.
toJSONString
(
webAds
);
String
result
=
advsJson
.
toString
();
System
.
out
.
println
(
result
);
...
...
src/src/main/java/net/myblog/web/controller/admin/ArticleAdminController.java
浏览文件 @
54a55080
...
...
@@ -13,6 +13,9 @@ import org.springframework.data.domain.Sort.Direction;
import
org.springframework.stereotype.Controller
;
import
org.springframework.ui.Model
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.servlet.ModelAndView
;
@Controller
@RequestMapping
(
"/article"
)
...
...
@@ -20,7 +23,13 @@ public class ArticleAdminController extends BaseController{
@Autowired
ArticleService
articleService
;
@RequestMapping
(
"/list"
)
/**
* 跳转到文章列表页面
* @param request
* @param model
* @return
*/
@RequestMapping
(
value
=
"/list"
,
method
=
RequestMethod
.
GET
)
public
String
listAll
(
HttpServletRequest
request
,
Model
model
){
String
pageNoString
=
request
.
getParameter
(
"pageNo"
);
if
(
pageNoString
==
null
||
""
.
equals
(
pageNoString
)){
...
...
@@ -35,5 +44,16 @@ public class ArticleAdminController extends BaseController{
model
.
addAttribute
(
"totalPage"
,
articlePage
.
getTotalElements
());
return
"admin/article/article_list"
;
}
/**
* 跳转到写文章页面
* @return
*/
@RequestMapping
(
value
=
"/toWriteArticle"
,
method
=
RequestMethod
.
GET
)
public
ModelAndView
toWriteArticle
()
{
ModelAndView
mv
=
this
.
getModelAndView
();
mv
.
setViewName
(
"admin/article/article_write"
);
return
mv
;
}
}
src/src/main/java/net/myblog/web/controller/admin/ArticleSortAdminController.java
浏览文件 @
54a55080
...
...
@@ -2,12 +2,13 @@ package net.myblog.web.controller.admin;
import
java.util.List
;
import
javax.annotation.Resource
;
import
com.alibaba.fastjson.JSONArray
;
import
net.myblog.entity.ArticleSort
;
import
net.myblog.service.ArticleSortService
;
import
net.myblog.web.controller.BaseController
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.ui.Model
;
...
...
@@ -17,14 +18,18 @@ import org.springframework.web.bind.annotation.RequestMapping;
* @author Nicky
* @date 2017年3月7日
*/
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.ResponseBody
;
@Controller
@RequestMapping
(
"/articleSort"
)
public
class
ArticleSortAdminController
extends
BaseController
{
Logger
LOGGER
=
LoggerFactory
.
getLogger
(
ArticleSortAdminController
.
class
);
@Autowired
ArticleSortService
articleSortService
;
/**
*
获取所有的博客标签(分类)信息
*
跳转到博客类别列表页面
* @return
*/
@RequestMapping
(
"/listAll"
)
...
...
@@ -46,6 +51,21 @@ public class ArticleSortAdminController extends BaseController{
return
"admin/label/label_list"
;
}
/**
* 加载所有的博客类别
* @return
*/
@RequestMapping
(
value
=
"/listArticleCategory"
,
method
=
RequestMethod
.
GET
,
produces
=
"application/json;charset=UTF-8"
)
@ResponseBody
public
String
listArticleCategory
()
{
List
<
ArticleSort
>
categoryList
=
this
.
articleSortService
.
findAll
();
LOGGER
.
info
(
"博客类别:{}"
+
categoryList
.
size
());
//ObjectMapper mapper = new ObjectMapper();
for
(
ArticleSort
a
:
categoryList
)
{
System
.
out
.
println
(
a
.
getName
());
}
String
result
=
JSONArray
.
toJSONString
(
categoryList
);
return
result
;
}
}
src/src/main/java/net/myblog/web/controller/admin/FriendlyLinkAdminController.java
浏览文件 @
54a55080
package
net.myblog.web.controller.admin
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
net.myblog.entity.FriendlyLink
;
import
net.myblog.service.FriendlyLinkService
;
import
net.myblog.web.controller.BaseController
;
import
net.sf.json.JSONObject
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Controller
;
...
...
@@ -17,6 +13,11 @@ import org.springframework.ui.Model;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.ResponseBody
;
import
net.myblog.entity.FriendlyLink
;
import
net.myblog.service.FriendlyLinkService
;
import
net.myblog.web.controller.BaseController
;
@Controller
@RequestMapping
(
"/link"
)
public
class
FriendlyLinkAdminController
extends
BaseController
{
...
...
@@ -44,8 +45,8 @@ public class FriendlyLinkAdminController extends BaseController{
*/
@RequestMapping
(
"/save"
)
@ResponseBody
public
String
saveL
(
HttpServletRequest
request
){
JSONObject
obj
=
new
JSONObject
(
);
public
Map
<
String
,
String
>
saveL
(
HttpServletRequest
request
){
Map
<
String
,
String
>
result
=
new
HashMap
<
String
,
String
>(
16
);
FriendlyLink
link
=
new
FriendlyLink
();
String
linkName
=
request
.
getParameter
(
"linkName"
);
String
linkUrl
=
request
.
getParameter
(
"linkUrl"
);
...
...
@@ -53,11 +54,11 @@ public class FriendlyLinkAdminController extends BaseController{
link
.
setLinkUrl
(
linkUrl
);
boolean
flag
=
friendlyLinkService
.
saveLink
(
link
);
if
(
flag
){
obj
.
put
(
"result"
,
"success"
);
result
.
put
(
"result"
,
"success"
);
}
else
{
obj
.
put
(
"result"
,
"error"
);
result
.
put
(
"result"
,
"error"
);
}
return
obj
.
toString
()
;
return
result
;
}
/**
...
...
@@ -67,7 +68,7 @@ public class FriendlyLinkAdminController extends BaseController{
*/
@RequestMapping
(
"/edit"
)
@ResponseBody
public
String
editL
(
HttpServletRequest
request
){
public
Map
<
String
,
Object
>
editL
(
HttpServletRequest
request
){
FriendlyLink
link
=
new
FriendlyLink
();
String
linkId
=
request
.
getParameter
(
"linkId"
);
String
linkName
=
request
.
getParameter
(
"linkName"
);
...
...
@@ -76,9 +77,9 @@ public class FriendlyLinkAdminController extends BaseController{
link
.
setLinkName
(
linkName
);
link
.
setLinkUrl
(
linkUrl
);
int
i
=
friendlyLinkService
.
updateLink
(
link
);
JSONObject
obj
=
new
JSONObject
(
);
obj
.
put
(
"totalNum"
,
i
);
return
obj
.
toString
()
;
Map
<
String
,
Object
>
result
=
new
HashMap
<
String
,
Object
>(
16
);
result
.
put
(
"totalNum"
,
i
);
return
result
;
}
}
src/src/main/java/net/myblog/web/controller/admin/LoginController.java
浏览文件 @
54a55080
...
...
@@ -9,31 +9,31 @@ import java.util.Set;
import
javax.servlet.http.HttpServletRequest
;
import
net.myblog.biz.RightsHelper
;
import
net.myblog.core.Constants
;
import
net.myblog.entity.Menu
;
import
net.myblog.entity.Permission
;
import
net.myblog.entity.Role
;
import
net.myblog.entity.User
;
import
net.myblog.service.MenuService
;
import
net.myblog.service.UserService
;
import
net.myblog.utils.Tools
;
import
net.myblog.web.controller.BaseController
;
import
net.sf.json.JSONArray
;
import
net.sf.json.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
org.apache.shiro.SecurityUtils
;
import
org.apache.shiro.authc.AuthenticationException
;
import
org.apache.shiro.authc.UsernamePasswordToken
;
import
org.apache.shiro.crypto.hash.SimpleHash
;
import
org.apache.shiro.session.Session
;
import
org.apache.shiro.subject.Subject
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.ResponseBody
;
import
org.springframework.web.servlet.ModelAndView
;
import
net.myblog.core.Constants
;
import
net.myblog.entity.Menu
;
import
net.myblog.entity.Permission
;
import
net.myblog.entity.Role
;
import
net.myblog.entity.User
;
import
net.myblog.service.MenuService
;
import
net.myblog.service.UserService
;
import
net.myblog.utils.Tools
;
import
net.myblog.web.controller.BaseController
;
/**
* @description 登录操作的控制类,使用Shiro框架,做好了登录的权限安全认证,
* getRemortIP()方法获取用户登录时的ip并保存到数据库
...
...
@@ -43,6 +43,8 @@ import org.springframework.web.servlet.ModelAndView;
@Controller
public
class
LoginController
extends
BaseController
{
Logger
LOGGER
=
LoggerFactory
.
getLogger
(
LoginController
.
class
);
@Autowired
UserService
userService
;
@Autowired
...
...
@@ -85,11 +87,12 @@ public class LoginController extends BaseController{
* @return
* @throws Exception
*/
@RequestMapping
(
value
=
"/logincheck"
,
produces
=
"application/json;charset=UTF-8"
)
@RequestMapping
(
value
=
"/logincheck"
)
@ResponseBody
public
String
loginCheck
(
HttpServletRequest
request
)
throws
AuthenticationException
{
JSONObject
obj
=
new
JSONObject
();
JSONObject
result
=
new
JSONObject
();
String
errInfo
=
""
;
//错误信息
LOGGER
.
info
(
"请求参数:{}"
+
request
.
getParameter
(
"LOGINDATA"
));
String
logindata
[]
=
request
.
getParameter
(
"LOGINDATA"
).
split
(
","
);
if
(
logindata
!=
null
&&
logindata
.
length
==
3
){
//获取Shiro管理的Session
...
...
@@ -137,8 +140,8 @@ public class LoginController extends BaseController{
}
}
}
obj
.
put
(
"result"
,
errInfo
);
return
obj
.
toString
();
result
.
put
(
"result"
,
errInfo
);
return
result
.
toString
();
}
/**
...
...
src/src/main/resources/META-INF/persistence.xml
0 → 100644
浏览文件 @
54a55080
<?xml version="1.0" encoding="UTF-8"?>
<persistence
version=
"2.0"
xmlns=
"http://java.sun.com/xml/ns/persistence"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
>
<persistence-unit
name=
"myblog"
transaction-type=
"RESOURCE_LOCAL"
>
<!-- 配置Hibernate JPA作为JPA的实现ORM框架,若项目只有一个JPA实现产品,那么这个配置可以不写 -->
<provider>
org.hibernate.ejb.HibernatePersistence
</provider>
<!-- 添加持久化类 -->
<class>
net.myblog.entity.Article
</class>
<class>
net.myblog.entity.ArticleComment
</class>
<class>
net.myblog.entity.ArticleResponse
</class>
<class>
net.myblog.entity.ArticleSort
</class>
<class>
net.myblog.entity.FriendlyLink
</class>
<class>
net.myblog.entity.Menu
</class>
<class>
net.myblog.entity.Operation
</class>
<class>
net.myblog.entity.Permission
</class>
<class>
net.myblog.entity.Role
</class>
<class>
net.myblog.entity.SecretMessage
</class>
<class>
net.myblog.entity.User
</class>
<class>
net.myblog.entity.UserAttention
</class>
<class>
net.myblog.entity.Advertisement
</class>
<!--
配置二级缓存的策略
ALL:所有的实体类都被缓存
NONE:所有的实体类都不被缓存.
ENABLE_SELECTIVE:标识 @Cacheable(true) 注解的实体类将被缓存
DISABLE_SELECTIVE:缓存除标识 @Cacheable(false) 以外的所有实体类
UNSPECIFIED:默认值,JPA 产品默认值将被使用
-->
<shared-cache-mode>
ENABLE_SELECTIVE
</shared-cache-mode>
<properties>
<!-- 配置 JPA 实现产品的基本属性. 配置 hibernate 的基本属性 -->
<property
name=
"hibernate.format_sql"
value=
"true"
/>
<property
name=
"hibernate.show_sql"
value=
"true"
/>
<property
name=
"hibernate.hbm2ddl.auto"
value=
"update"
/>
<!-- 二级缓存相关 -->
<property
name=
"hibernate.cache.use_second_level_cache"
value=
"true"
/>
<property
name=
"hibernate.cache.region.factory_class"
value=
"org.hibernate.cache.ehcache.EhCacheRegionFactory"
/>
<property
name=
"hibernate.cache.use_query_cache"
value=
"true"
/>
</properties>
</persistence-unit>
</persistence>
src/src/main/resources/log4j.properties
浏览文件 @
54a55080
...
...
@@ -4,7 +4,7 @@ log4j.rootLogger = info , Console , D
log4j.appender.Console
=
org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout
=
org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern
=
%d [%t] %-5p [%c] - %m%n
log4j.logger.java.sql.ResultSet
=
INFO
log4j.logger.java.sql.ResultSet
=
DEBUG
log4j.logger.org.apache
=
INFO
log4j.logger.java.sql.Connection
=
INFO
log4j.logger.java.sql.Statement
=
INFO
...
...
src/src/main/resources/spring/spring-base.xml
浏览文件 @
54a55080
...
...
@@ -134,5 +134,12 @@
<aop:advisor
pointcut-ref=
"pc"
advice-ref=
"txAdvice"
/>
</aop:config>
<!-- <bean id="contentNegotiationManager" class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean">
<property name="mediaTypes">
<map>
<entry key="html" value="application/json;charset=UTF-8"/>
</map>
</property>
</bean> -->
</beans>
src/src/main/resources/spring/spring-mvc.xml
浏览文件 @
54a55080
...
...
@@ -11,6 +11,7 @@
<mvc:default-servlet-handler/>
<context:component-scan
base-package=
"net.myblog.web.controller"
/>
<context:annotation-config
/>
<!-- 对静态资源文件的访问 restful-->
<mvc:resources
mapping=
"/static/**"
location=
"/,/static/"
/>
...
...
src/src/main/webapp/WEB-INF/jsp/admin/article/article_list.jsp
浏览文件 @
54a55080
...
...
@@ -37,7 +37,7 @@ String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.
</table>
<div
id=
"articletb"
>
<div>
<a
href=
"
javascript:openLinkAddDialog()"
class=
"easyui-linkbutton"
iconCls=
"icon-add"
plain=
"true"
>
新增
</a>
<a
href=
"
${basePath }article/toWriteArticle.do"
class=
"easyui-linkbutton"
target=
"_blank"
iconCls=
"icon-add"
plain=
"true"
>
写文章
</a>
<a
href=
"javascript:deleteLink()"
class=
"easyui-linkbutton"
iconCls=
"icon-remove"
plain=
"true"
>
删除
</a>
<a
href=
"javascript:openLinkModifyDialog()"
class=
"easyui-linkbutton"
iconCls=
"icon-edit"
plain=
"true"
>
修改
</a>
<a
href=
"javascript:reload()"
class=
"easyui-linkbutton"
iconCls=
"icon-reload"
plain=
"true"
>
刷新
</a>
...
...
src/src/main/webapp/WEB-INF/jsp/admin/article/article_write.jsp
浏览文件 @
54a55080
<%@ page
language=
"java"
contentType=
"text/html; charset=UTF-8"
pageEncoding=
"UTF-8"
%>
<%@ taglib
prefix=
"c"
uri=
"http://java.sun.com/jsp/jstl/core"
%>
<%@ taglib
prefix=
"fmt"
uri=
"http://java.sun.com/jsp/jstl/fmt"
%>
<%
String
path
=
request
.
getContextPath
();
String
basePath
=
request
.
getScheme
()+
"://"
+
request
.
getServerName
()+
":"
+
request
.
getServerPort
()+
path
+
"/"
;
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<base
href=
"
<%=
basePath
%>
"
>
<meta
http-equiv=
"Content-Type"
content=
"text/html; charset=ISO-8859-1"
>
<title>
写博客
</title>
<script
type=
"text/javascript"
src=
"plugins/epiceditor-0.2.3/js/epiceditor.min.js"
></script>
<title>
Nicky's blog 写文章
</title>
<link
rel=
"icon"
type=
"image/png"
href=
"static/images/logo/logo.png"
>
<link
href=
"
<%=
basePath
%>
plugins/editormd/css/editormd.min.css"
rel=
"stylesheet"
type=
"text/css"
/>
<link
href=
"
<%=
basePath
%>
static/css/bootstrap.min.css"
rel=
"stylesheet"
type=
"text/css"
/>
<style
type=
"text/css"
>
#articleTitle
{
width
:
68%
;
margin-top
:
15px
;
}
#articleCategory
{
margin-top
:
15px
;
width
:
10%
;
}
#btnList
{
position
:
relative
;
float
:
right
;
margin-top
:
15px
;
padding-right
:
70px
;
}
</style>
</head>
<body>
<div
id=
"layout"
>
<header>
文章标题:
<input
type=
"text"
id=
"articleTitle"
/>
类别:
<select
id=
"articleCategory"
onchange=
"javascript:categorySelect.init();"
></select>
<span
id=
"btnList"
>
<button
type=
"button"
id=
"publishArticle"
class=
"btn btn-info"
>
发布文章
</button>
</span>
</header>
<div
id=
"test-editormd"
>
<textarea
style=
"display: none;"
>
[TOC]
#### Disabled options
- TeX (Based on KaTeX);
- Emoji;
- Task lists;
- HTML tags decode;
- Flowchart and Sequence Diagram;
#### Editor.md directory
editor.md/
lib/
css/
scss/
tests/
fonts/
images/
plugins/
examples/
languages/
editormd.js
...
```html
<
!-- English --
>
<
script src="../dist/js/languages/en.js"
><
/script
>
<
!-- 繁體中文 --
>
<
script src="../dist/js/languages/zh-tw.js"
><
/script
>
```
</textarea>
</div>
</div>
<script
type=
"text/javascript"
src=
"
<%=
basePath
%>
static/js/jquery-1.8.3.js"
></script>
<script
type=
"text/javascript"
src=
"
<%=
basePath
%>
plugins/editormd/editormd.min.js"
></script>
<script
type=
"text/javascript"
>
var
testEditor
;
$
(
function
()
{
testEditor
=
editormd
(
"
test-editormd
"
,
{
width
:
"
90%
"
,
height
:
640
,
syncScrolling
:
"
single
"
,
path
:
"
<%=
basePath
%>
plugins/editormd/lib/
"
});
categorySelect
.
init
();
});
var
categorySelect
=
{
init
:
function
()
{
$
.
ajax
({
type
:
"
GET
"
,
url
:
'
articleSort/listArticleCategory.do
'
,
dataType
:
'
json
'
,
//contentType:"application/json",
cache
:
false
,
success
:
function
(
data
){
//debugger;
data
=
eval
(
data
)
;
categorySelect
.
buildOption
(
data
);
}
});
},
buildOption
:
function
(
data
)
{
debugger
;
var
optionStr
=
""
;
for
(
var
i
=
0
;
i
<
data
.
length
;
i
++
)
{
optionStr
+=
"
<option value=
"
+
data
[
i
].
typeId
+
"
>
"
;
optionStr
+=
data
[
i
].
name
;
optionStr
+=
"
</option>
"
;
}
$
(
"
#articleCategory
"
).
append
(
optionStr
);
}
}
</script>
</body>
</html>
\ No newline at end of file
src/src/main/webapp/WEB-INF/jsp/admin/frame/login.jsp
浏览文件 @
54a55080
...
...
@@ -41,7 +41,7 @@
<div
class=
"main_input_box"
>
<span
class=
"add-on bg_lg"
>
<i><img
height=
"37"
src=
"static/login/user.png"
/></i>
</span><input
type=
"text"
name=
"username"
id=
"username"
value=
""
placeholder=
"请输入用户名"
/>
</span><input
type=
"text"
name=
"username"
id=
"username"
value=
"
admin
"
placeholder=
"请输入用户名"
/>
</div>
</div>
</div>
...
...
@@ -50,7 +50,7 @@
<div
class=
"main_input_box"
>
<span
class=
"add-on bg_ly"
>
<i><img
height=
"37"
src=
"static/login/suo.png"
/></i>
</span><input
type=
"password"
name=
"password"
id=
"password"
placeholder=
"请输入密码"
value=
""
/>
</span><input
type=
"password"
name=
"password"
id=
"password"
placeholder=
"请输入密码"
value=
"
123
"
/>
</div>
</div>
</div>
...
...
@@ -71,7 +71,7 @@
</div>
<div
style=
"float: left;"
class=
"codediv"
>
<input
type=
"text"
name=
"code"
id=
"code"
class=
"login_code"
style=
"height:16px; padding-top:0px;"
/>
style=
"height:16px; padding-top:0px;"
value=
"123"
/>
</div>
<div
style=
"float: left;"
>
<i><img
style=
"height:22px;"
id=
"codeImg"
alt=
"点击更换"
...
...
src/src/main/webapp/WEB-INF/jsp/myblog/frame/top.jsp
浏览文件 @
54a55080
<%@ page
language=
"java"
contentType=
"text/html; charset=UTF-8"
pageEncoding=
"UTF-8"
%>
<meta
http-equiv=
"Content-Type"
content=
"text/html; charset=UTF-8"
>
<script
type=
"text/javascript"
charset=
"UTF-8"
>
function
doSearch
(){
var
keyword
=
$
(
"
.text
"
).
val
();
window
.
location
.
href
=
"
search.do?keyword=
"
+
keyword
;
}
</script>
<header>
<div
class=
"site-search"
>
<div
id=
"search"
>
<input
type=
"text"
name=
"s"
class=
"text"
placeholder=
"输入关键字搜索"
/>
<button
type=
"button"
onclick=
"javascript:doSearch();"
class=
"submit"
>
搜索
</button>
</div>
</div>
<h1>
<a
href=
"toblog.do"
>
Nicky's blog
</a>
</h1>
<p>
这夏天里流动的风情,是停不住的舞步和唱不完的情歌,当玫瑰花瓣飘飞的那一刻,风会带走所有的想念.......
</p>
</header>
<div
id=
"nav"
>
<ul>
<li><a
href=
"toblog.do"
>
网站首页
</a></li>
<li><a
href=
"javascript:aboutMeTip();"
>
关于我
</a></li>
<li><a
href=
"javascript:sysTip();"
>
在线论坛
</a></li>
<li><a
href=
"javascript:sysTip ();"
>
技术探讨
</a></li>
<li><a
href=
"javascript:sysTip();"
>
在线工具
</a></li>
<li><a
href=
"javascript:sysTip();"
>
我的相册
</a></li>
<li><a
href=
"javascript:sysTip();"
>
留言版
</a></li>
</ul>
<script
src=
"static/blog/js/silder.js"
></script>
<!--获取当前页导航 高亮显示标题-->
</div>
<style
type=
"text/css"
>
.site-search
{
width
:
25%
;
...
...
@@ -86,7 +54,39 @@ input[type="text"]{
box-sizing
:
border-box
;
}
</style>
<header>
<div
class=
"site-search"
>
<div
id=
"search"
>
<input
type=
"text"
name=
"s"
class=
"text"
placeholder=
"输入关键字搜索"
/>
<button
type=
"button"
onclick=
"javascript:doSearch();"
class=
"submit"
>
搜索
</button>
</div>
</div>
<h1>
<a
href=
"toblog.do"
>
Nicky's blog
</a>
</h1>
<p>
这夏天里流动的风情,是停不住的舞步和唱不完的情歌,当玫瑰花瓣飘飞的那一刻,风会带走所有的想念.......
</p>
</header>
<div
id=
"nav"
>
<ul>
<li><a
href=
"toblog.do"
>
网站首页
</a></li>
<li><a
href=
"javascript:aboutMeTip();"
>
关于我
</a></li>
<li><a
href=
"javascript:sysTip();"
>
在线论坛
</a></li>
<li><a
href=
"javascript:sysTip ();"
>
技术探讨
</a></li>
<li><a
href=
"javascript:sysTip();"
>
在线工具
</a></li>
<li><a
href=
"javascript:sysTip();"
>
我的相册
</a></li>
<li><a
href=
"javascript:sysTip();"
>
留言版
</a></li>
</ul>
<script
src=
"static/blog/js/silder.js"
></script>
<!--获取当前页导航 高亮显示标题-->
</div>
<script
type=
"text/javascript"
>
function
doSearch
(){
var
keyword
=
$
(
"
.text
"
).
val
();
window
.
location
.
href
=
"
search.do?keyword=
"
+
keyword
;
}
function
aboutMeTip
(){
alert
(
'
我的邮箱:nickypm@foxmail.com
'
);
}
...
...
src/src/main/webapp/WEB-INF/web.xml
浏览文件 @
54a55080
...
...
@@ -31,14 +31,14 @@
</filter-mapping>
<!-- 添加SSI(服务端页面包含技术)配置 start -->
<servlet>
<
!-- <
servlet>
<servlet-name>ssi</servlet-name>
<servlet-class>org.apache.catalina.ssi.SSIServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ssi</servlet-name>
<url-pattern>*.shtml</url-pattern>
</servlet-mapping>
</servlet-mapping>
-->
<!-- 添加SSI(服务端页面包含技术)配置 end -->
<!-- 连接池 启用Web监控统计功能 start-->
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录