基于JSP+SQL道路维护情况管理子系统带地图工天预mysql数据源
1.包含源程序,数据库脚本。代码和数据库脚本都有详细注释。
2.课题设计仅供参考学习使用,可以在此基础上进行扩展完善
代码已经上传github,下载地址https://github.com/21503882/road-mag
开发环境:
Eclipse ,MYSQL,JDK1.8,Tomcat 8.5
涉及技术点:
MVC模式、SpringBoot、Mybatis、Redis、HTML、log4j、druid、Bootstrap、
Semantic UI、Thymeleaf、JavaScript、CSS、JQUERY、Ajax等
适合学习J2EE的一段时间的熟手,代码思路清晰,注解详细,数据库用的是mysql5.1,服务器用的tomcat8.5,JDK版本1.8. 编程软件Eclispe J2EE版本。是典型MVC架构,并且前后台分离
主要功能:
package com.df.zhenglong.controller.action;
import java.io.IOException;
import java.io.OutputStream;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.commons.mail.EmailException;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.interceptor.RequestAware;
import org.apache.struts2.interceptor.SessionAware;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.springframework.util.DigestUtils;
import sun.reflect.ReflectionFactory.GetReflectionFactoryAction;
import com.df.zhenglong.entity.Order;
import com.df.zhenglong.entity.Page;
import com.df.zhenglong.entity.User;
import com.df.zhenglong.service.PageService;
import com.df.zhenglong.service.UserService;
import com.df.zhenglong.utils.Base64;
import com.df.zhenglong.utils.Mail;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import com.sun.mail.iap.Response;
@Controller
@Scope("prototype")
public class UserAction extends ActionSupport implements RequestAware,SessionAware,ModelDriven<User>{
/**
*
*/
private static final long serialVersionUID = 1L;
@Autowired
private UserService userService;
@Autowired
private PageService pageService;
private User model;
private String username;
private Long uid;//用户id号
private String code;//验证码
private int pagenum;//页码
private Page page;
public int getPagenum() {
return pagenum;
}
public void setPagenum(int pagenum) {
this.pagenum = pagenum;
}
public Page getPage() {
return page;
}
public void setPage(Page page) {
this.page = page;
}
public void setCode(String code) {
this.code = code;
}
public String getCode() {
return code;
}
public void setUid(Long uid) {
this.uid = uid;
}
public Long getUid() {
return uid;
}
public void setUsername(String username) {
this.username = username;
}
public String getUsername() {
return username;
}
//注册界面
public String regUI(){
return "regUI";
}
//测试dlbjqncfwpiwijaa
// public String test(){
// String smtp = "smtp.qq.com";// smtp服务器
// String from = "[email protected]";// 邮件显示名称
// String to = "[email protected]";// 收件人的邮件地址,必须是真实地址
// String copyto = "";// 抄送人邮件地址
// String subject = "测试邮件";// 邮件标题
// String content = "你好!恭喜您,中了100万大奖";// 邮件内容
// String username = "踽踽独行";// 发件人真实的账户名
// String password = "dlbjqncfwpiwijaa";// 发件人密码
// Mail.sendAndCc(smtp, from, to, copyto, subject, content, username, password);
// return "test";
// }
//注册
public String reg(){
//使用MD5对密码进行加密(因为只能单向加密,不能解密,故不采用)
//String password=DigestUtils.md5DigestAsHex(model.getPassword().getBytes());
//使用base64进行加密
String pw=Base64.getBase64(model.getPassword());
model.setPassword(pw);
userService.save(model);//插入数据库
String smtp = "smtp.163.com";// smtp服务器
String from = "[email protected]";// 邮件显示名称
String to = model.getEmail();// 收件人的邮件地址,必须是真实地址
String copyto = "";// 抄送人邮件地址
String subject = "注册成功";// 邮件标题
String content = "尊敬的用户,您好!感谢您注册东方小屋,请尽情享受此次购物之旅!";// 邮件内容
String username = "[email protected]";// 发件人真实的账户名
String password1 = "38386k6k9";// 发件人密码
Mail.sendAndCc(smtp, from, to, copyto, subject, content, username, password1);
return "reg";
}
//判断用户名是否重复
public void isReg() throws IOException{
HttpServletRequest requset=ServletActionContext.getRequest();
HttpServletResponse response=ServletActionContext.getResponse();
response.setContentType("text/html;charset=UTF-8");
User user=userService.findByUsername(username);
response.setContentType("text/html");
if(user!=null){
response.getWriter().write("用户名已存在,请更换");
}else {
response.getWriter().write("你可以使用这个用户名");
}
}
//登录界面
public String loginUI(){
return "loginUI";
}
//用户登录
public String login(){
HttpSession session=ServletActionContext.getRequest().getSession();
String code1=(String) session.getAttribute("checkCode");//从session里获取验证码
//String password=DigestUtils.md5DigestAsHex(model.getPassword().getBytes());
String password=Base64.getBase64(model.getPassword());
User user=userService.findNameAndPsw(model.getUsername(),password);
if(!(code1.equals(code))){
return "tologin";//验证码错误的话,停留在loginUI界面
}else{
if(user!=null){
//将用户信息放入session中
sessionMap.put("user", user);
return "login";
}else {
return "err";
}
}
}
//退出登录
public String remove(){
sessionMap.remove("user");
return "remove";
}
//所有用户列表
// public String list(){
// //获取数据
// List<User> userlist=userService.findAll();
// //放到request域对象中
// requestMap.put("userlist", userlist);
// return "list";
// }
//导出用户Excel
public String export() throws IOException{
HttpServletRequest request=ServletActionContext.getRequest();
HttpServletResponse response=ServletActionContext.getResponse() ;
List<User> userlist=userService.findAll();
HSSFWorkbook wb=userService.export(userlist);
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-disposition", "attachment;filename="+new String("用户信息.xls".getBytes(),"ISO-8859-1"));
OutputStream outputStream=response.getOutputStream();
wb.write(outputStream);
outputStream.flush();
outputStream.close();
return "export";
}
//分页显示所有用户
public String list(){
this.page=pageService.queryForPageUser(3, pagenum);
return "list";
}
//删除用户
public String delete(){
userService.delete(uid);
return "toList";
}
//修改页面
public String editUI(){
return "editUI";
}
//修改用户信息
public String edit(){
model.setPassword(Base64.getBase64(model.getPassword()));
userService.update(model);
return "edit";
}
//查找密码界面
public String findpwUI(){
return "findpwUI";
}
//查找密码
public String findpw(){
User user=userService.findByUsername(model.getUsername());
user.setPassword(Base64.getFromBase64(user.getPassword()));//将解密后的密码传过去
requestMap.put("user", user);
return "findpw";
}
@Override
public User getModel() {
if(uid!=null){
model=userService.findById(uid);
}else{
model=new User();
}
return model;
}
private Map<String, Object> requestMap;
@Override
public void setRequest(Map<String, Object> arg0) {
this.requestMap=arg0;
}
private Map<String, Object> sessionMap;
@Override
public void setSession(Map<String, Object> arg0) {
this.sessionMap=arg0;
}
}
package com.ssm.mgmt.controller;
import com.ssm.mgmt.entity.User;
import com.ssm.mgmt.service.UserService;
import com.ssm.mgmt.util.MD5Util;
import net.sf.json.JSONObject;
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.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.util.Map;
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
private Logger logger = LoggerFactory.getLogger(this.getClass());
@RequestMapping(value = "/login", method = RequestMethod.POST)
@ResponseBody
public Object login(@RequestParam Map<String, String> param, HttpSession session) {
return userService.login(param, session);
}
@RequestMapping(value = "/add",method = RequestMethod.POST)
@ResponseBody
public Object register(@RequestParam Map<String, String> param,HttpSession session){
return userService.addUser(param,session);
}
@RequestMapping("/update")
@ResponseBody
public Object updateUser(@RequestParam Map<String, String> param,HttpSession session){
return userService.updateUser(param,session);
}
/**
* 退出系统
* @param session
* @return
* @throws Exception
*/
@RequestMapping("/logout")
public String logout(HttpSession session)throws Exception{
session.invalidate();
// logger.info("request:user/logout");
// return "redirect:/login.jsp";
return null;
}
@RequestMapping("/disable")
public String disable(User user,HttpServletResponse response)throws Exception{
return null;
}
}
代码已经上传github,下载地址https://github.com/21503882/road-mag