
基于Java的考编论坛网站的设计与实现(亮点:在线发布帖子、内容评论回复、购买二手物品、在线支付)
发布时间:2023-10-06 09:48:03
(考编论坛网站)
网上大部分毕设套路如下:
- 在哔哩哔哩发送完成项目的演示视频,让你免费收到。收到后发现代码不完整或者数据库少,根本跑不动!如果要调试,收费300元:sweat_smile:真恶心吗!
- 某宝找人帮忙写。简单来说比第一种行为靠谱,但是很贵!说可以免费修改。其实修改基本上是排不上队的。一个改变是一周。想快点?加钱,200加急!:sweat_smile:
还有一个建议:一分价一分货
二、我的优势2.1 自己的网站网站上传的项目都是博主自己收集开发的,质量可以保证,适合懂一点程序开发的同学!
2.2 自己的小程序(小蔡coding)<img src="https://img-blog.csdnimg.cn/img_convert/e6b8edc796f48effb768fae64dffe6effe6e9.png" style="zoom:50%;" />
为了方便学生使用,我开发了一个名为小蔡coding的小程序版。学生可以通过小程序快速搜索和定位他们想要的程序
2.3 售后服务有保障在数据操作过程中,本课题研发的应用程序难以预测,而且经常发生变化。没有办法直接从word中写数据,这不仅不安全,而且很难实现应用程序的功能。要实现所需的数据存储功能,必须选择专业的数据库存储软件。大多数情况下,应用程序的功能并不复杂,市场上所有相关数据库的手机软件都可以实现。MySQL可以在没有Oracle的情况下支持中小型系统软件,参照自己的思维结构和使用习惯。、SQL Server 适用于大、中、小数据,适用于大家的综合数据库,而不是其他问题,因为真正意义上的系统在线,是数据库网络服务器,网站服务器。
3.2 Vue前端技术Java作为一种高级编程语言,在动态网站流行的时候,当然不会轻易放弃这个领域的生日蛋糕。Sun企业推出Servlet作为导出动态网站的标准规范。因为程序猿当时不太喜欢,但一开始很少选择。java语言出现在接下来的几个月里,不管性能和效率如何,至少区别于写网页所需的动态编码块和静态代码块,大大提高了创作效率和可读性。因此,很多Java软件工程师和初级程序员都会选择Java语言作为个人职业发展的前景。Sun与Apache慈善基金会合作,开发了一种关于Java动态网站的技术规范,即vue技术,以保持Java语言在高级编程语言中的重要性,避免Java再次抢占市场。vue在页面写作中吸收了java语言的所有优势,但也依赖于java语言 通过Java组件,EE庞大的环境可以完成许多功能。该组件可以直接引用vue页面,使vue更强大、更完美。确保Java技术的垂直可持续发展观,最终在动态网站开发行业占有一席之地。其他java开发人员可以快速转移到vue开发,不考虑一些特殊组件或功能开发,从动态页面开发开始,完全完成java流程和vue流程的基本无成本变化,vue技术就是这样的发展趋势。
3.3 Spring Boot框架从命名上可以知道这个框架设计的初衷:快速开启Spring应用。因而,Spring。 本质上,Boot应用程序是基于Spring框架的应用程序。这是Spring“协议先于配置”理论的良好实用物质。根据Spring生态系统中的应用程序,可以帮助开发者快速有效地构建。Spring Boot实现自动配置,开发依赖,Actuator、命令行界面(CLI) 是Spring Boot的四个主要核心特征,其中CLI是Spring 虽然Boot的选择功能齐全,但也引入了一套非传统的开发模式,因此本系列文章只注重其他三个特点。例如,这个问题是本系列的第一部分,将为您打开Spring Boot门的关键是进一步分析启动过程,完成自动配置的基本原理。把握这一部分的主要内容,了解一些Spring框架的基本知识,也会让你感到舒适。
3.4 微信小程序微信小程序是一个轻量级的应用程序,可以直接在微信内部运行,无需下载安装,为用户提供快速方便的服务和功能体验,涵盖各个领域的应用,从社交、娱乐到商务和生活服务,为开发者提供一个强大的平台,以低成本和高效的开发和发布小程序。
四、功能设计4.1 主要功能描述-- MySQL dump 10.13 Distrib 5.7.31, for Linux (x86_64)---- Host: localhost Database: springbootm3ord-- -------------------------------------------------------- Server version5.7.31/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;/*!40101 SET NAMES utf8 */;/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;/*!40103 SET TIME_ZONE='+00:00' */;/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;---- Current Database: `springbootm3ord`--/*!40000 DROP DATABASE IF EXISTS `springbootm3ord`*/;CREATE DATABASE /*!32312 IF NOT EXISTS*/ `springbootm3ord` /*!40100 DEFAULT CHARACTER SET utf8mb4 */;USE `springbootm3ord`;---- Table structure for table `aboutus`--DROP TABLE IF EXISTS `aboutus`;/*!40101 SET @saved_cs_client = @@character_set_client */;/*!40101 SET character_set_client = utf8 */;CREATE TABLE `aboutus` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键', `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创造时间, `title` varchar(200) NOT NULL COMMENT '标题', `subtitle` varchar(200) DEFAULT NULL COMMENT "副标题", `content` longtext NOT NULL COMMENT '内容', `picture1` longtext COMMENT '图片1', `picture2` longtext COMMENT '图片2', `picture3` longtext COMMENT '图片3', PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT=关于我们的‘关于我们’;/*!40101 SET character_set_client = @saved_cs_client */;---- Dumping data for table `aboutus`--LOCK TABLES `aboutus` WRITE;/*!40000 ALTER TABLE `aboutus` DISABLE KEYS */;INSERT INTO `aboutus` VALUES (1,'2023-03-05 09:51:关于我们,25,ABOUT US无论你想要什么样的生活,你都要努力争取,怎么知道自己适合什么,不适合什么而不尝试一些东西呢?\n你说你喜欢读书,让我给你列书单,你问我哪里有这么多时间读书;你说你梦想的职业是广告文案,问我如何成为文案,应该具备什么素质;你说你打算早上跑步,但你总是因为学习、工作或身体不适而第二天起不来床;你说你一直梦想着独自长途旅行,但你没有钱,你的父母感到危险。事实上,我厌倦了你这么说的把戏。我想即使我告诉你怎么做,你也不会这么做,因为你什么都不做。事实上,我已经厌倦了你这么说的把戏,我想即使我告诉你怎么做,你也不会这么做,因为你什么都不做。upload/aboutus_picture1.jpg','upload/aboutus_picture2.jpg','upload/aboutus_picture3.jpg');/*!40000 ALTER TABLE `aboutus` ENABLE KEYS */;UNLOCK TABLES;---- Table structure for table `config`--DROP TABLE IF EXISTS `config`;/*!40101 SET @saved_cs_client = @@character_set_client */;/*!40101 SET character_set_client = utf8 */;CREATE TABLE `config` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键', `name` varchar(100) NOT NULL COMMENT 配置参数名称, `value` varchar(100) DEFAULT NULL COMMENT 配置参数值, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT=配置文件“配置文件”;/*!40101 SET character_set_client = @saved_cs_client */;---- Dumping data for table `config`--LOCK TABLES `config` WRITE;/*!40000 ALTER TABLE `config` DISABLE KEYS */;INSERT INTO `config` VALUES (1,“picture1”upload/picture1.jpg(2,"picture2","upload/picture2.jpg'),(3,"picture3"upload/picture3.jpg');/*!40000 ALTER TABLE `config` ENABLE KEYS */;UNLOCK TABLES;---- Table structure for table `discussjiaoyuan`--DROP TABLE IF EXISTS `discussjiaoyuan`;/*!40101 SET @saved_cs_client = @@character_set_client */;/*!40101 SET character_set_client = utf8 */;CREATE TABLE `discussjiaoyuan` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键', `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创造时间, `refid` bigint(20) NOT NULL COMMENT "关联表id", `userid` bigint(20) NOT NULL COMMENT 用户id, `avatarurl` longtext COMMENT '头像', `nickname` varchar(200) DEFAULT NULL COMMENT 用户名, `content` longtext NOT NULL COMMENT "评论内容", `reply` longtext COMMENT 回复内容, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=“教师评论表”;/*!40101 SET character_set_client = @saved_cs_client */;---- Dumping data for table `discussjiaoyuan`--LOCK TABLES `discussjiaoyuan` WRITE;/*!40000 ALTER TABLE `discussjiaoyuan` DISABLE KEYS */;/*!40000 ALTER TABLE `discussjiaoyuan` ENABLE KEYS */;UNLOCK TABLES;---- Table structure for table `discusszhaopinxinxi`--DROP TABLE IF EXISTS `discusszhaopinxinxi`;/*!40101 SET @saved_cs_client = @@character_set_client */;/*!40101 SET character_set_client = utf8 */;CREATE TABLE `discusszhaopinxinxi` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键', `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创造时间, `refid` bigint(20) NOT NULL COMMENT "关联表id", `userid` bigint(20) NOT NULL COMMENT 用户id, `avatarurl` longtext COMMENT '头像', `nickname` varchar(200) DEFAULT NULL COMMENT 用户名, `content` longtext NOT NULL COMMENT "评论内容", `reply` longtext COMMENT 回复内容, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=“招聘信息评论表”;/*!40101 SET character_set_client = @saved_cs_client */;---- Dumping data for table `discusszhaopinxinxi`--LOCK TABLES `discusszhaopinxinxi` WRITE;/*!40000 ALTER TABLE `discusszhaopinxinxi` DISABLE KEYS */;/*!40000 ALTER TABLE `discusszhaopinxinxi` ENABLE KEYS */;UNLOCK TABLES;---- Table structure for table `jiajiaoshenqing`--DROP TABLE IF EXISTS `jiajiaoshenqing`;/*!40101 SET @saved_cs_client = @@character_set_client */;/*!40101 SET character_set_client = utf8 */;CREATE TABLE `jiajiaoshenqing` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键', `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创造时间, `shenqingbianhao` varchar(200) DEFAULT NULL COMMENT "申请编号", `gonghao` varchar(200) DEFAULT NULL COMMENT '工号', `jiaoshixingming` varchar(200) DEFAULT NULL COMMENT "教师姓名", `shoukezhuanye` varchar(200) DEFAULT NULL COMMENT 教学专业, `xueli` varchar(200) DEFAULT NULL COMMENT '学历', `jiajiaofeiyong` varchar(200) DEFAULT NULL COMMENT "家教费用", `shenqingriqi` date DEFAULT NULL COMMENT "申请日期", `shenqingneirong` longtext COMMENT "申请内容", `zhanghao` varchar(200) DEFAULT NULL COMMENT '账号', `xingming` varchar(200) DEFAULT NULL COMMENT '姓名', `shoujihaoma` varchar(200) DEFAULT NULL COMMENT 手机号码, `sfsh` varchar(200) DEFAULT '待审核' COMMENT 是否审查, `shhf` longtext COMMENT "审核回复", PRIMARY KEY (`id`), UNIQUE KEY `shenqingbianhao` (`shenqingbianhao`)) ENGINE=InnoDB AUTO_INCREMENT=59 DEFAULT CHARSET=utf8 COMMENT=‘家教申请’;/*!40101 SET character_set_client = @saved_cs_client */;---- Dumping data for table `jiajiaoshenqing`--LOCK TABLES `jiajiaoshenqing` WRITE;/*!40000 ALTER TABLE `jiajiaoshenqing` DISABLE KEYS */;INSERT INTO `jiajiaoshenqing` VALUES (51,'2023-03-05 09:51:“11111111111”,“工号1”,“教师姓名1”,“教学专业1”,‘学历1’、‘家教费1’、‘2023-03-05’、‘申请内容1’、‘账号1’、‘姓名1’、‘手机号1’、‘是’、‘52’、‘2023-03-05’ 09:51:“2222222222”,“工号2”,“教师姓名2”,“教学专业2”,“学历2”,“家教费2”,“2023-03-05”、“申请内容2”、“账号2”、“姓名2”、“手机号2”、“是”、“53”、“2023-03-05” 09:51:24、“333333333”、“工号3”、“教师姓名3”、“教学专业3”、“学历3”、“家教费用3”、“2023-03-05”、“申请内容3”、“帐号3”,“姓名3”,“手机号码3”,“是”,“54” 09:51:24、“44444444”、“工号4”、“教师姓名4”、“教学专业4”、“学历4”、“家教费用4”、“2023-03-05”、“申请内容4”、“账号4”、“姓名4”、“手机号码4”(55), 09:51:24、‘555555555’、‘工号5’、‘教师姓名5’、‘教育专业5’、‘教育费用5’、‘2023-03-05’、‘申请内容5’、‘账号5’、‘姓名5’、‘手机号码5’、‘学历5’、‘家教费用5’、‘2023-03-05’'2023-03-05 09:51:24、‘6666666’、‘工号6’、‘教师姓名6’、‘教育专业6’、‘教育费用6’、‘2023-03-05’、‘申请内容6’、‘账号6’、‘姓名6’、‘手机号码6’、‘学历6’、‘家教费用6’、‘2023-03-05’ 09:51:24',“777777777”,“工号7”,“教师姓名7”,“教学7”,“学历7”,“家教费用7”,“2023-03-05”,“申请内容7”,“账号7”,“手机号7”,“手机号7”,“学历7”,“家教费用7”,“2023-03-05” 09:51:'88888888'24','工号8',教师姓名8',教学专业8',学历8',家教费8',2023-03-05',申请内容8',账号8',手机号8',手机号8';/*!40000 ALTER TABLE `jiajiaoshenqing` ENABLE KEYS */;UNLOCK TABLES;---- Table structure for table `jiaoyuan`--DROP TABLE IF EXISTS `jiaoyuan`;/*!40101 SET @saved_cs_client = @@character_set_client */;/*!40101 SET character_set_client = utf8 */;CREATE TABLE `jiaoyuan` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键', `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创造时间, `gonghao` varchar(200) NOT NULL COMMENT '工号', `mima` varchar(200) NOT NULL COMMENT '密码', `jiaoshixingming` varchar(200) NOT NULL COMMENT "教师姓名", `xingbie` varchar(200) DEFAULT NULL COMMENT '性别', `youxiang` varchar(200) DEFAULT NULL COMMENT '邮箱', `lianxishouji` varchar(200) DEFAULT NULL COMMENT “联系手机”, `shoukezhuanye` varchar(200) DEFAULT NULL COMMENT 教学专业, `xueli` varchar(200) DEFAULT NULL COMMENT '学历', `touxiang` longtext COMMENT '头像', `jiajiaofeiyong` varchar(200) DEFAULT NULL COMMENT "家教费用", `gerenjianjie` longtext COMMENT 个人简介, `rongyuxinxi` longtext COMMENT "荣誉信息", PRIMARY KEY (`id`), UNIQUE KEY `gonghao` (`gonghao`)) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8 COMMENT='教员';/*!40101 SET character_set_client = @saved_cs_client */;---- Table structure for table `jiaoyuanfankui`--DROP TABLE IF EXISTS `jiaoyuanfankui`;/*!40101 SET @saved_cs_client = @@character_set_client */;/*!40101 SET character_set_client = utf8 */;CREATE TABLE `jiaoyuanfankui` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键', `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创造时间, `fankuibianhao` varchar(200) DEFAULT NULL COMMENT 反馈编号, `fankuibiaoti` varchar(200) NOT NULL COMMENT "反馈标题", `fankuineirong` longtext COMMENT "反馈内容", `fankuishijian` datetime DEFAULT NULL COMMENT "反馈时间", `gonghao` varchar(200) DEFAULT NULL COMMENT '工号', `jiaoshixingming` varchar(200) DEFAULT NULL COMMENT “老师的名字”, `shhf` longtext COMMENT 回复内容, PRIMARY KEY (`id`), UNIQUE KEY `fankuibianhao` (`fankuibianhao`)) ENGINE=InnoDB AUTO_INCREMENT=119 DEFAULT CHARSET=utf8 COMMENT=“教师反馈”;/*!40101 SET character_set_client = @saved_cs_client */;---- Dumping data for table `jiaoyuanfankui`--LOCK TABLES `jiaoyuanfankui` WRITE;/*!40000 ALTER TABLE `jiaoyuanfankui` DISABLE KEYS */;INSERT INTO `jiaoyuanfankui` VALUES (111,'2023-03-05 09:51:“111111111111”,“反馈标题1”,“反馈内容1”,'2023-03-05 17:51:“工号1”、“教师姓名1”、“112”、“2023-03-05” 09:51:25、“222222222”、“反馈标题2”、“反馈内容2”、“2023-03-05” 17:51:"工号2","教师姓名2","'2023-03-05 09:51:25、“3333333333”、“反馈标题3”、“反馈内容3”、“2023-03-05” 17:51:25、工号3',教师姓名3',114,2023-03-05 09:51:“44444444444”,“反馈标题4”,“反馈内容4’,'2023-03-05 17:51:25、工号4',教师姓名4',115,2023-03-05 09:51:“55555555555”,“反馈标题5”,“反馈内容5”,“2023-03-055” 17:51:"工号5","教师姓名5","'2023-03-05 09:51:25、“666666666”、“反馈标题6”、“反馈内容6”、“2023-03-05” 17:51:25、工号6',教师姓名6',117,2023-03-05 09:51:25','777777','反馈标题7','反馈内容7','2023-03-05 17:51:工号7',教师姓名7',118,2023-03-05 09:51:25'888888','反馈标题8','反馈内容8','2023-03-05' 17:51:"工号8","教师名8",";/*!40000 ALTER TABLE `jiaoyuanfankui` ENABLE KEYS */;UNLOCK TABLES;---- Table structure for table `ketijiangjie`--DROP TABLE IF EXISTS `ketijiangjie`;/*!40101 SET @saved_cs_client = @@character_set_client */;/*!40101 SET character_set_client = utf8 */;CREATE TABLE `ketijiangjie` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键', `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创造时间, `gonghao` varchar(200) DEFAULT NULL COMMENT '工号', `jiaoshixingming` varchar(200) DEFAULT NULL COMMENT "教师姓名", `xueli` varchar(200) DEFAULT NULL COMMENT '学历', `yuyueshijian` varchar(200) NOT NULL COMMENT "预约时间", `ketimingcheng` varchar(200) DEFAULT NULL COMMENT “主题名称”, `jiangjieshipin` longtext COMMENT "解释视频", `dizhi` varchar(200) DEFAULT NULL COMMENT '地址', `zhanghao` varchar(200) DEFAULT NULL COMMENT '账号', `xingming` varchar(200) DEFAULT NULL COMMENT '姓名', `shoujihaoma` varchar(200) DEFAULT NULL COMMENT 手机号码, `neirong` longtext COMMENT '内容', PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=79 DEFAULT CHARSET=utf8 COMMENT=“课题讲解”;/*!40101 SET character_set_client = @saved_cs_client */;
七、代码参考@IgnoreAuth@PostMapping(value = "/login")public R login(String username, String password, String captcha, HttpServletRequest request) { UsersEntity user = userService.selectOne(new EntityWrapper<UsersEntity>().eq("username", username)); if(user==null || !user.getPassword().equals(password)) { return R.error("帐号或密码不正确"); } String token = tokenService.generateToken(user.getId(),username, "users", user.getRole()); return R.ok().put("token", token);}@Overridepublic String generateToken(Long userid,String username, String tableName, String role) {TokenEntity tokenEntity = this.selectOne(new EntityWrapper<TokenEntity>().eq("userid", userid).eq("role", role));String token = CommonUtil.getRandomString(32);Calendar cal = Calendar.getInstance(); cal.setTime(new Date()); cal.add(Calendar.HOUR_OF_DAY, 1);if(tokenEntity!=null) {tokenEntity.setToken(token);tokenEntity.setExpiratedtime(cal.getTime());this.updateById(tokenEntity);} else {this.insert(new TokenEntity(userid,username, tableName, role, token, cal.getTime()));}return token;}/** * 权限(Token)验证 */@Componentpublic class AuthorizationInterceptor implements HandlerInterceptor { public static final String LOGIN_TOKEN_KEY = "Token"; @Autowired private TokenService tokenService; @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {//支持跨域请求 response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); response.setHeader("Access-Control-Max-Age", "3600"); response.setHeader("Access-Control-Allow-Credentials", "true"); response.setHeader("Access-Control-Allow-Headers", "x-requested-with,request-source,Token, Origin,imgType, Content-Type, cache-control,postman-token,Cookie, Accept,authorization"); response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));// OPTIONS请求将首先发送到跨域,在这里,我们要求OPTIONS直接返回正常状态 (request.getMethod().equals(RequestMethod.OPTIONS.name())) { response.setStatus(HttpStatus.OK.value()); return false; } IgnoreAuth annotation; if (handler instanceof HandlerMethod) { annotation = ((HandlerMethod) handler).getMethodAnnotation(IgnoreAuth.class); } else { return true; } ///从header中获取token String token = request.getHeader(LOGIN_TOKEN_KEY); /** * 不需要验证权限的方法可以直接放过 */ if(annotation!=null) { return true; } TokenEntity tokenEntity = null; if(StringUtils.isNotBlank(token)) { tokenEntity = tokenService.getTokenEntity(token); } if(tokenEntity != null) { request.getSession().setAttribute("userId", tokenEntity.getUserid()); request.getSession().setAttribute("role", tokenEntity.getRole()); request.getSession().setAttribute("tableName", tokenEntity.getTablename()); request.getSession().setAttribute("username", tokenEntity.getUsername()); return true; } PrintWriter writer = null;response.setCharacterEncoding("UTF-8");response.setContentType("application/json; charset=utf-8");try { writer = response.getWriter(); writer.print(JSONObject.toJSONString(R.error(401, "请先登录")));} finally { if(writer != null){ writer.close(); }}//throw new EIException("请先登录", 401);return false; }}
