当前位置: 首页 > news >正文

校园网站建设的目的网页制作模板ppt制作

校园网站建设的目的,网页制作模板ppt制作,桂电做网站的毕设容易过嘛,河南省重点项目建设网官网一、 个人博客系统 一#xff09;限制强制登录 问题#xff1a;限制用户登录后才能进行相关操作解决#xff1a; 1#xff09;前端#xff1a; ① 写一个函数用于判断登录状态#xff0c;如果返回的状态码是200就不进行任何操作#xff0c;否则Ajax实现页面的跳转操作…一、 个人博客系统 一限制强制登录 问题限制用户登录后才能进行相关操作解决 1前端 ① 写一个函数用于判断登录状态如果返回的状态码是200就不进行任何操作否则Ajax实现页面的跳转操作。 ② 因为 登录限制及跳转 在很多页面中都使用但是我们没必要进行重复性的工作所以直接在前端代码中新建一个文件夹js并新建文件 app.js 来存储这些重复的代码以此来实现代码的复用。 2后端 ① 重写doGet方法获取当前会话并判断如果session存在则继续从session中获取user如果user不存在则返回403只有session存在且user也存在才是登录状态。 ② 如果用户未登录或者session过期就会出现session存在但用户未登录的情况。 二列表页限制博客长度 问题博客列表页展示的是摘要信息而不是文章的所有内容需要对展示的文章长度做限制。获取到文章的长度然后进行判断如果大于规定长度就使用subString进行截断 // 3. 直接查询博客列表 --博客列表页public ListBlog selectAll() {// 链表用来存储blogListBlog blogs new ArrayList();Connection connection null;PreparedStatement statement null;ResultSet resultSet null;try {// 1. 和数据库建立连接connection DBUtil.getConnection();// 2. 构造sqlString sql select * from blog order by postTime desc;statement connection.prepareStatement(sql);// 3. 执行sqlresultSet statement.executeQuery();// 4. 遍历结果集合拿到结果(while)while (resultSet.next()) {Blog blog new Blog();blog.setBlogId(resultSet.getInt(blogId));blog.setTitle(resultSet.getString(title));// blog.setContent(resultSet.getString(content));// 进行内容截断作为摘要避免博客列表页内容过长String content resultSet.getString(content);if(content.length() 100) {content content.substring(0,100) ...;}blog.setContent(content);blog.setPostTime(resultSet.getTimestamp(postTime));blog.setUserId(resultSet.getInt(userId));blogs.add(blog);}} catch (SQLException throwables) {throwables.printStackTrace();} finally {// 释放资源一定不要忘记DBUtil.close(connection,statement,null);}return blogs;}三删除文章做限制 问题作者/登录用户只能删除自己的文章不能删除别人的文章暂时没有设置管理员的角色解决校验当前登录用户就是文章作者并且删除时将session中的user对象给移除并重新定位到login页面 if(blog.getUserId() ! user.getUserId()) {// 如果不一样则说明作者与登录用户不是一个人// 直接返回403resp.setStatus(403);resp.setContentType(text/html; charsetutf8);resp.getWriter().write(抱歉 您没有权限删除别人的文章);return;}WebServlet(/logout) public class LogoutServlet extends HttpServlet {Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 获取会话HttpSession session req.getSession();if(session null) {resp.setStatus(403);return;}// 直接将session中的user对象给删除就行session.removeAttribute(user);// 重定向到登录页面resp.sendRedirect(login.html);} }四空指针异常提示 问题如直接在url中输入博客id此时如果该博客不存在则会报空指针异常解决如果该id不存在给出友好提示后端使用resp.getWriter().write()给出友好提示在前端页面中定义一个div元素用于显示后端输出的内容document // 2. 获取到blogIdString blogId req.getParameter(blogId);if(blogId null) {resp.setStatus(404);resp.setContentType(text/html; charsetutf8);resp.getWriter().write(当前删除的blogId有误);return;}// 3. 查询出该blogId对应的Blog对象BlogDao blogDao new BlogDao();Blog blog blogDao.selectOne(Integer.parseInt(blogId));if(blog null) {resp.setStatus(404);resp.setContentType(text/html; charsetutf8);resp.getWriter().write(当前删除的博客不存在 blogIdblogId);return;}五时间格式化 问题插入数据库中的数据经查询将其转换为json字符串之后返回的是TimeStamp类型的是时间戳的形式 // 从数据库中获取数据 // executeQuery执行select的sql并将结果进行保存resultSet遍历结果集合next()并使用getString等获取结果使用封装的setTimeStamp等来获取到值 public Blog selectOne(int blogId) {Connection connection null;PreparedStatement statement null;ResultSet resultSet null;try {// 1. 和数据库建立连接connection DBUtil.getConnection();// 2. 构造sqlString sql select * from blog where blogId ?;statement connection.prepareStatement(sql);statement.setInt(1,blogId);// 3. 执行sqlresultSet statement.executeQuery();// 4. 遍历结果集合(if)if (resultSet.next()) {Blog blog new Blog();blog.setBlogId(resultSet.getInt(blogId));blog.setTitle(resultSet.getString(title));blog.setContent(resultSet.getString(content));blog.setPostTime(resultSet.getTimestamp(postTime));blog.setUserId(resultSet.getInt(userId));return blog;}} catch (SQLException throwables) {throwables.printStackTrace();} finally {// 释放资源一定不要忘记DBUtil.close(connection,statement,resultSet);}return null;}解决修改getPostTime方法使其返回值从TimeStamp变为String然后又使用SimpleDateFormat函数进行格式化。 SimpleDateFormat sdf new SimpleDateFormat(yyyy-MM-dd HH:mm:ss); sdf.format(postTime); // postTime是String类型补充 浏览器访问到的是之前的结果这是触发了浏览器的缓存。 ① 理由浏览器需要通过网络从远程服务器获取到当前的页面数据可能比较耗时此时为了提高效率做法就是让浏览器把必要的数据进行缓存下次访问就不必访问网络了而是直接读取缓存。 ② 解决进行强制刷新保证数据从网络获取。 区分location.href完整路径 和 location.seachquery string 后端302重定向 // 返回302重定向resp.sendRedirect(blog_list.html);Ajax中把对象转成字符串 data: JSON.stringify(body) 二、 在线OJ 一容错能力如id不存在则友好提示 二编译运行临时文件uuid 问题解决 1获取当前工作路径 System.out.println(System.getProperty(user.dir)); // 获取当前工作路径 public Task() {// 使用UUID这个类就能生成一个UUIDWORK_DIR ./tmp/ UUID.randomUUID().toString() /;CLASS Solution;CODE WORK_DIR CLASS .java;COMPILE_ERROR WORK_DIR compileError.txt;STDOUT WORK_DIR stdout.txt;STDERR WORK_DIR stderr.txt;}三黑名单扫描代码 简单方法使用一个黑名单把有危险代码的特征都放到黑名单中。在获取到用户提交的代码时就查找一下看当前是否命中了黑名单如果命中了就提示出错不去编译执行。实现 // 0. 进行安全性判断if (!checkCodeSecurity(question.getCode())) {System.out.println(用户提交了不安全的代码);answer.setError(3);answer.setReason(您提交的代码可能会危害到服务器禁止运行);return answer;}// 1. 将question里的code写入到一个Solution.java文件中FileUtil.writeFile(CODE,question.getCode()); private boolean checkCodeSecurity(String code) {// 设定一个黑名单ListString blackList new ArrayList();// 防止提交的代码运行恶意程序blackList.add(Runtime);blackList.add(exec);// 禁止提交的代码读写文件blackList.add(java.io);// 禁止提交的代码访问网络blackList.add(java.net);// 进行校验for (String str: blackList) {int pos code.indexOf(str);if(pos 0) {// 找到了恶意代码特征就不安全返回falsereturn false;}}// 遍历结束后还没有发现恶意代码特征安全return true;}难点 题目详情直接从数据库中获取会发现题目都挤到一行中了。 1原因数据库中对题目要求的描述都是使用\n来表示换行的而HTML不识别\n HTML中的换行是br标签 2解决 ① 让服务器返回的数据中\n都替换成在后端代码ProblemServlet.java中获取到题目详情之后使用replaceAll进行替换 ② 给页面的标签里套一层标签标签中的内容是可以识别\n的 点击提交之后代码不能进行编译查看服务器生成的临时文件发现提交过来的代码时编辑框的初始代码 解决为了查看codeEditor的哪个属性可以看到实时代码就在console中使用dir(codeEditor)进行查看发现使用value属性可以看到提交的实时代码。因此在构造请求的时候使用value来替换innerHTML。
http://www.yingshimen.cn/news/60250/

相关文章:

  • 西安市网站搭建天门网站
  • 东莞seo建站优化方法影响网站pr的主要因素有哪些
  • 网站服务器可以自己做吗公主岭网站建设规划
  • 上海做网站的网站做宣传图片的网站
  • 阿里云 网站建设方案书12306网站是哪家公司做开发的
  • php mysql网站开发书商丘seo排名
  • 商城网站互动性广西壮族自治区行政执法人员网络培训系统
  • wap商城网站模板素材网站开发的目的和意义
  • thinkphp 网站模版wordpress分类含有中文
  • 单位如何建设网站株洲seo优化
  • 数据库能上传网站模板广东模板网站建设
  • 室内设计招标网站北京企业网站模板建站怎么用
  • 网站突然消失了如何做漂亮的网站首页
  • 大型新型网站网站建设要多少钱
  • 苏州网站建设系统电话哈尔滨网站建设方案外包
  • 网站开发多用什么语言网站首页添加代码
  • 营口网站建设做app挣钱还是网站
  • 网站建设是不是要有营业执照北京网站开发哪里好薇
  • 深圳网站开发企业黄冈黄页88网黄冈房产估价
  • 网站导航背景 蓝色深圳建网站兴田德润团队
  • 电商 网站建设黄江镇网站建设公司
  • 北京网站seowyhseowordpress用户名无效
  • 无锡游戏网站建设公司指数运算法则
  • wordpress搭建学校网站网站域名批量查询注册
  • wordpress比价插件seo优化排名经验
  • 伍壹捌网站建设佛山网站建设公司点精小胡
  • 外贸网站建设定制开发旅游预定型网站建设
  • 四川省住房城乡建设厅网站首页有趣的网站游戏
  • 南昌网站网站建设重庆短视频seo搜索多少钱
  • 平面设计网站灵感2 网站内部链接优化