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

绵阳营销型网站建设郑州网站建设制作

绵阳营销型网站建设,郑州网站建设制作,wordpress免费大学主题,烟台做网站公司文章目录 1. 显示用户信息1.1 约定前后端交互接口1.2 修改列表页的前段代码1.3 实现详情页的后端代码1.4 实现详情页的前端代码 2. 注销2.1 确定前后端交互接口2.2 实现后端代码2.3 修改前端代码 1. 显示用户信息 此处的用户名是写死的,我们希望的是此处是能够动态生…

文章目录

  • 1. 显示用户信息
    • 1.1 约定前后端交互接口
    • 1.2 修改列表页的前段代码
    • 1.3 实现详情页的后端代码
    • 1.4 实现详情页的前端代码
  • 2. 注销
    • 2.1 确定前后端交互接口
    • 2.2 实现后端代码
    • 2.3 修改前端代码

1. 显示用户信息


此处的用户名是写死的,我们希望的是此处是能够动态生成的。



如果是此时登录的列表页,此处显示的是登录用户的信息。
如果此时登录的是详情页,此处显示的是该文章的作者信息。

1.1 约定前后端交互接口


由于列表页和详情页显示的信息是不一样的,在约定前后端交互接口的时候要分为两种不同的情况。

这里先来约定列表页:

请求使用 GET 路径是 /login

响应是 HTTP/1.1 200 OK
它的格式如下:

{userId: 1,username: 'zhangsan'.password: '123'
}



接下里约定详情页:

请求使用 GET 路径是 /author?blogId=1

响应是 HTTP/1.1 200 OK
它的格式如下:

{userId: 1,username: 'zhangsan'.password: '123'
}


列表页的后端已经实现了,稍微修改前端代码即可,把得到的用户信息显示出来。

详情页是重新实现的。

1.2 修改列表页的前段代码


let h3 = document.querySelector(‘.container-left .card h3’);
h3.innerHTML = body.username;

以上的两条语句把当前的用户信息显示到界面上。

function checkLogin() {$.ajax({type: 'get',url: 'login',success: function(body) {if (body.userId && body.userId > 0) {// 登录成功!console.log("当前用户已经登录!!!");// 加上这个功能,把当前的用户信息显示在界面上let h3 = document.querySelector('.container-left .card h3');h3.innerHTML = body.username;} else {// 当前未登录,跳转到登录页面location.assign('blog.in.html');}}});
}checkLogin();

1.3 实现详情页的后端代码


新建一个 AuthorServlet 类。

public class AuthorServlet extends HttpServlet {private ObjectMapper objectMapper = new ObjectMapper();@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String blogId = req.getParameter("blogId");if (blogId == null) {resp.setContentType("text/html; charset=utf8");resp.getWriter().write("参数非法,缺少 blogId");return;}// 根据 blogId 查询,Blog 对象BlogDao blogDao = new BlogDao();Blog blog = blogDao.selectById(Integer.parseInt(blogId));if (blog == null) {// 博客不存在resp.setContentType("text/html; charset=utf8");resp.getWriter().write("没有找到指定博客 blogId = " + blogId);return;}// 根据 blog 中的 userId 找到对应的用户信息UserDao userDao = new UserDao();User author = userDao.selectById(blog.getUserId());String repJson = objectMapper.writeValueAsString(author);resp.setContentType("application/json; charset=utf8");resp.getWriter().write(repJson);}
}

1.4 实现详情页的前端代码


在详情页中创建一个新的方法。

 // 显示用户信息function getAuthor() {$.ajax({type: 'get',url: 'author',success: function(body) {// 把 username 设置到界面上let h3 = document.querySelector('.container-left .card h3');h3.innerHTML = body.username;}});
}getAuthor();

2. 注销


要想实现注销功能。需要判定当前的 登录状态;这里一共有两种方式:

1、看看是否能查到 http session 对象

2、看看 session 对象里有没有 user。

鉴于以上两种方式都可以实现注销功能,因此要么把 HttpSession 删掉;要么把 User 删掉,
满足以上一种情况即可。

getSession 有创建/获取会话的方法,但是没有删除会话的方法,因此想要删除会话会比较麻烦。
更好的办法就是 删除 user 对象,直接使用 removeAttribute 即可删除。

之前实现的逻辑中,httpsession 和 user 一定是一损俱损,一荣俱荣的。
但是在引入了注销逻辑之后,就会出现有 httpsession 无 user 的情况。

2.1 确定前后端交互接口


通过点击页面中的注销按钮,来实现注销功能,也就是通过点击注销按钮来触发请求。

请求使用 GET,路径是 /logout

响应使用 HTTP/1.1 302

2.2 实现后端代码


新建一个 LogoutServlet 类。

@WebServlet("/logout")
public class LogoutServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {HttpSession httpSession = req.getSession(false);if (httpSession == null) {// 未登录状态,直接提示错误resp.setContentType("text/html; charset=utf8");resp.getWriter().write("当前未登录!!!");return;}httpSession.removeAttribute("user");// 跳转到登录页面resp.sendRedirect("blog.in.html");}
}

2.3 修改前端代码


在之前写好的前端代码中的 a 标签里加上一个 logout 路径。

<a href="blog.list.html">主页</a>
<a href="blog.edit.html">写博客</a>
<a href="logout">注销</a>


主页 和 写博客跳转的就是对应的页面,以上代码要在列表页、详情页、编辑页都实现一遍。
只是登录页无注销功能,不需要给注销按钮加上一个 logout 路径,其他一样。

此时点击按钮就可以实现对应的功能了。

http://www.jinmujx.cn/news/118021.html

相关文章:

  • html5建设的网站百度电话怎么转人工
  • 特产网站设计百度搜索风云榜小说排行榜
  • 网站制作软件被起诉海外营销推广
  • 刚做的网站怎么在百度搜到苏州百度代理公司
  • 电商购物网站建设网站快速有排名
  • 江苏建设人才无纸化考核网站百度关键词指数
  • 做视频网站用什么语言万网域名查询工具
  • 网站logo怎么换沈阳seo合作
  • 古典asp网站源码微信视频号小店
  • mui做浏览器网站跳转网络排名优化软件
  • 买奢侈品去哪个网站有正品优化网站排名公司
  • 怎么查看一个网站有没有做推广淘宝直通车推广怎么收费
  • 做网站如何文字链接文字外贸怎么建立自己的网站
  • 自己怎么做优惠卷网站什么是搜索引擎销售
  • 西安网站建设专业网络推广方法的分类
  • 深圳电商平台网站建设谷歌推广哪家公司好
  • php网站开发说明一键清理加速
  • 网站和做游戏seo排名优化代理
  • 公司怎样做网站南宁网络推广热线
  • 如果自己做网站比百度好用的搜索软件手机版
  • 塘沽网吧开门了吗电商seo什么意思
  • 网页设计精选网站百度人工电话
  • 世界工厂采购网官网百度关键词seo排名
  • 做的网站在百度找不到了百度权重3的网站值多少
  • 记事本做网站怎么加图片制作网页的代码
  • vr 全景 网站建设企业推广平台
  • 做电影网站技术公司软文推广
  • 现在由哪些网站可以做外链东莞网站定制开发
  • 自己如何创建一个网站新手小白怎么学做运营
  • 阿里云服务器建网站永州网站seo