【JAVA EE#4】【传智书城·源码阅读】首页逻辑:页面头部登陆前后不同状态+分类显示图书+搜索查询图书+轮播图+本周热卖推荐+公告展示

本文详细介绍了Java EE应用中首页的逻辑实现,包括登录状态对头部信息的影响,如登录前后显示的区别;图书分类的展示逻辑,依赖于特定的查询参数;搜索图书功能,处理搜索框的输入,通过后台服务进行查询;轮播图的实现,涉及CSS和JS;公告的展示,从数据库获取最新公告内容;以及本周热卖推荐的逻辑,可能存在的问题及数据库查询方法。

主要逻辑:
在这里插入图片描述

页面头部登陆前后不同状态
登陆前后主要区别体现在首页的头部:
登录前,右上角最后一个为新用户注册,下面并无登陆者信息:
在这里插入图片描述
登陆后,右上角最后一个为退出登录,下面同时显示登陆者信息:
在这里插入图片描述
jsp中实现原理:

<% 
User user = (User) request.getSession().getAttribute("user");
if(null == user){
   
   
%>
| <a href="${pageContext.request.contextPath}/client/register.jsp">新用户注册</a>							
<% 	
}else{
   
   
%>
| <a href="${pageContext.request.contextPath}/logout" onclick="javascript:return confirm_logout()">用户退出</a>
<br><br><br>欢迎您: ${
   
   user.username}
<% 	
}
%>		

可见骚气的if语句分开显示不同情况下的页面内容,登陆前显示新用户注册登陆后变为退出登录,onclick属性指向一个自定义函数,弹出一个确认退出的提示,在接受到确定之后才调用LogoutServlet后直接销毁Session。值得注意在Session获取User之前,要导包,不然js中不能识别该类。

<%@ page import="cn.itcast.itcaststore.entity.User"%>

除此之外,视有无登录情况,头部我的账户会有变化,没有登录就会跳转登录界面,已经登陆就会重定向到账户信息页面,除此之外,根据角色的不同,登陆后我的账户也会有不同的目标页面,普通用户跳转至home.jsp,超级用户跳转至myAccount.jsp后台管理页面,这一套逻辑由web.xml映射的MyAccountServlet完成。

<a href="${pageContext.request.contextPath}/myAccount">我的帐户</a>

MyAccountServlet:

//在session中查找名为“user”的会话
		User user = (User) request.getSession().getAttribute("user");
		//如果找到没有名为“user”的会话,说明用户没有登录,此时跳转到登录页面
		if (user == null) {
   
   
			response.sendRedirect(request.getContextPath() + "/client/login.jsp");
			return;
		}
		//如果是超级用户,进入到网上书城后台管理系统;否则进入到普通用户的账户信息页面
		if ("超级用户".equals(user.getRole())) {
   
   
			response.sendRedirect(request.getContextPath() + "/admin/login/home.jsp");
//			return;
		}else{
   
   
			response.sendRedirect(request.getContextPath() + "/client/myAccount.jsp");
//			return;
		}

分类显示图书
menu_search.jsp文件中分类栏:<

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值