基于javaweb的SSM+Maven小说阅读系统(java+ssm+jsp+javascript+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

400923551103

420923551103

430923551103

440923551103

450923551103

460923551103

基于javaweb的SSM+Maven小说阅读系统(java+ssm+jsp+javascript+mysql)

项目运行

环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持)

项目技术: JSP +Spring + SpringMVC + MyBatis + html+ css + JavaScript + JQuery + Ajax等等。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43



public class UserValidator extends Validator {
private UserService userService;
private String telephone;
private String username;
private String password1;
private String password2;
private String img_captcha;
private String sms_captcha;

public UserValidator(HttpServletRequest request, UserService userService){
super(request);
this.userService = userService;

this.telephone = (String) request.getParameter("telephone");
this.username = (String) request.getParameter("username");
this.password1 = (String) request.getParameter("password1");
this.password2 = (String) request.getParameter("password2");
this.img_captcha = (String) request.getParameter("img_captcha");
this.sms_captcha = (String) request.getParameter("sms_captcha");
}

public boolean clean(){
if(!cleanTelephone()) return false;
if(!cleanUsername()) return false;
if(!cleanPassword(password1)) return false;
if(!cleanPassword(password2)) return false;
if(!password1.equals(password2)) {
message = "两次输入的密码不一致";
return false;
}
if(!cleanImgCaptcha()) return false;
if(!cleanSMSCaptcha()) return false;
return true;
}

public boolean cleanTelephone(){
if(telephone == null || telephone.equals("")){
message = "手机号不能为空";
return false;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46

@RequestMapping(value = "/delete_tag", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
@ResponseBody
public String deleteTag(Integer id){
Tag origin_tag = tagService.getById(id);
if(origin_tag == null)
return RESTful.params_error("标签不存在,请刷新页面重试");

tagService.delete(id);
return RESTful.ok();
}

@RequestMapping(value = "/get_tag", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
@ResponseBody
public String getTag(Integer id){
Tag tag = tagService.getById(id);
if(tag == null)
return RESTful.params_error("该标签不存在,请刷新页面重试");
Map<String,Object> data = new HashMap<>();
data.put("tag",tag);
return RESTful.ok(data);
}

// 轮播图管理

@RequestMapping("/banners")
public String banners(){
return "cms/banners";
}

@RequestMapping(value = "/banner_list", produces = "application/json;charset=UTF-8")
@ResponseBody
public String bannerList(){
List<Banner> banners = bannerService.getBanners();
Map<String,Object> data = new HashMap<>();
data.put("banners",banners);
return RESTful.ok(data);
}

@RequestMapping(value = "/add_banner", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
@ResponseBody
public String addBanner(@Validated Banner banner, BindingResult br){
if(br.hasErrors())
return RESTful.params_error(br.getFieldError().getDefaultMessage());
bannerService.addBanner(banner);
Map<String,Object> data = new HashMap<>();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16


@Controller
@RequestMapping("")
public class NovelController {
@Autowired
BannerService bannerService;
@Autowired
AdvertisementService advertisementService;
@Autowired
NovelService novelService;
@Autowired
ChapterService chapterService;
@Autowired
ExcellentworksService excellentworksService;
@Autowired
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/**
* 生成随机图片
*/
public void getRandcode(HttpServletRequest request, HttpServletResponse response) {
HttpSession session = request.getSession();
// BufferedImage类是具有缓冲区的Image类,Image类是用于描述图像信息的类
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR);
Graphics g = image.getGraphics();// 产生Image对象的Graphics对象,改对象可以在图像上进行各种绘制操作
g.fillRect(0, 0, width, height);//图片大小
g.setFont(new Font("Times New Roman", Font.ROMAN_BASELINE, 20));//字体大小
g.setColor(getRandColor(110, 133));//字体颜色
// 绘制干扰线
for (int i = 0; i <= lineSize; i++) {
drowLine(g);
}
// 绘制随机字符
String randomString = "";
for (int i = 1; i <= stringNum; i++) {
randomString = drowString(g, randomString, i);
}
//将生成的随机字符串保存到session中
session.removeAttribute(RANDOMCODEKEY);
session.setAttribute(RANDOMCODEKEY, randomString);
//设置失效时间5分钟
session.setMaxInactiveInterval(60*5);
g.dispose();
try {
// 将内存中的图片通过流动形式输出到客户端
ImageIO.write(image, "JPEG", response.getOutputStream());
} catch (Exception e) {
}

}

/**
* 绘制字符串
*/
private String drowString(Graphics g, String randomString, int i) {
g.setFont(getFont());
g.setColor(new Color(random.nextInt(101), random.nextInt(111), random
.nextInt(121)));
String rand = String.valueOf(getRandomString(random.nextInt(randString
.length())));
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
TagService tagService;


public static void main(String[] args) {
System.out.println(MD5.str2MD5("123456"));
}


@RequestMapping("")
public String index(Model model, HttpSession session) {
String[][] all_category_name = Category.CATEGORY_NAME;

List<Banner> banners = bannerService.getBanners();
List<Advertisement> ads = advertisementService.getAdvertisements();

PageHelper.offsetPage(0, 6);
List<Novel> rec_novels_1_6 = novelService.getRecommendNovels(true);

PageHelper.offsetPage(6, 11);
List<Novel> rec_novels_7_17 = novelService.getRecommendNovels(false);

PageHelper.offsetPage(0, 11);
List<Novel> new_novels_1_11 = novelService.getNewNovels();

List<List<Novel>> cate_hot_novels = novelService.getCateHotNovels();

List<Excellentworks> excellent_workses = excellentworksService.getExcellentworkses();

PageHelper.offsetPage(0, 11);
List<Novel> rank_novels = novelService.getRankNovels();

model.addAttribute("all_category_name", all_category_name);
model.addAttribute("banners", banners);
model.addAttribute("ads", ads);
model.addAttribute("excellent_workses", excellent_workses);
model.addAttribute("rec_novels_1_6", rec_novels_1_6);
model.addAttribute("rec_novels_7_17", rec_novels_7_17);
model.addAttribute("new_novels_1_11", new_novels_1_11);
model.addAttribute("cate_hot_novels", cate_hot_novels);
model.addAttribute("rank_novels", rank_novels);
model.addAttribute("user", session.getAttribute("user"));
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
ReadService readService;
@Autowired
CollectService collectService;
@Autowired
CategoryService categoryService;
@Autowired
TagService tagService;


public static void main(String[] args) {
System.out.println(MD5.str2MD5("123456"));
}


@RequestMapping("")
public String index(Model model, HttpSession session) {
String[][] all_category_name = Category.CATEGORY_NAME;

List<Banner> banners = bannerService.getBanners();
List<Advertisement> ads = advertisementService.getAdvertisements();

PageHelper.offsetPage(0, 6);
List<Novel> rec_novels_1_6 = novelService.getRecommendNovels(true);

PageHelper.offsetPage(6, 11);
List<Novel> rec_novels_7_17 = novelService.getRecommendNovels(false);

PageHelper.offsetPage(0, 11);
List<Novel> new_novels_1_11 = novelService.getNewNovels();

List<List<Novel>> cate_hot_novels = novelService.getCateHotNovels();

List<Excellentworks> excellent_workses = excellentworksService.getExcellentworkses();

PageHelper.offsetPage(0, 11);
List<Novel> rank_novels = novelService.getRankNovels();

model.addAttribute("all_category_name", all_category_name);
model.addAttribute("banners", banners);
model.addAttribute("ads", ads);
model.addAttribute("excellent_workses", excellent_workses);
model.addAttribute("rec_novels_1_6", rec_novels_1_6);
model.addAttribute("rec_novels_7_17", rec_novels_7_17);
model.addAttribute("new_novels_1_11", new_novels_1_11);
model.addAttribute("cate_hot_novels", cate_hot_novels);
model.addAttribute("rank_novels", rank_novels);
model.addAttribute("user", session.getAttribute("user"));
return "novel/index";
}

@RequestMapping("/detail/{id}")


项目链接:
https://javayms.github.io?id=361023491103200ym
https://javayms.pages.dev?id=361023491103200ym