jeesite中怎样修改后台心态的窗口标题修改器窗口标题修改器

jeesite(9)
1.&管理功能
1.1.&内容管理
1.1.1.&内容发布
1.1.1.1.&概述
l&栏目列表:以树结构方式显示网站整体设置的栏目,点击在右侧可管理当前栏目的信息。
l&文章列表:当前栏目如果为文章模型的话,左侧则显示文章列表,如果为链接模型,左侧则显示链接列表。
l&内容模型,包括:新闻文章、友情链接:
1、&文章模型:对新闻、资料进行管理
1)&强大的可视化内容在线编辑器:提供常用的内容排版工具条;Word内容直接复制,格式不乱;提供通用模板排版格式;图片、Flash上传及添加附件功能。
2)&文件管理:提供上传的照片、文件增删功能。
3)&关键字:提供文章关键字功能。
4)&权重:提供文章排序功能,值越大越靠前。
5)&缩略图:文章缩略图片。
6)&相关文章:关联相关文章。
7)&推荐位:可推荐到首页焦点图、栏目文章推荐等。
8)&发布时间:可修改发布时间。
2、&链接模型:如友情链接内容。
1.1.1.2.&文章列表
l&查询:可通过栏目选择,文章标题(模糊),文档状态查询。
l&栏目列:点击后可快速进行查询当前点击的栏目。
l&标题列:点击后可会计进入文章查看或修改页面。
l&操作列:提供文章的操作;
n&访问:快速预览发布后的页面;
n&修改:进行文章编辑修改
n&删除:删除当前文章,删除操作为逻辑删除,删除后在文章状态删除中可查询到,可恢复。
1.1.1.3.&添加/修改文章
l&归属栏目:该栏目下有子栏目的不能选择。
l&标题:必填项,文章标题,最长255个汉字;颜色:标题颜色。
l&外部链接:如果当前文章不是本站文档,可选择“外部链接”设置外部链接地址,打开改文章时直接执行改地址。
l&关键字:发布文章关键字信息,设置后显示在页面的关键字标签里,录入可提高搜索引擎优化排名。
l&权重:设置文章的排列顺序,数值越大越靠前;可通过“置顶”复选框快速设置权重为999;也可通过设置“过期时间”设置置顶时间,超过指定时间后,置顶自动失效,并设置为0;过期时间为空,表示不过期。
l&摘要:文章的摘要信息,不超过255个汉字。
l&缩略图:提供文章图片功能,如图片新闻(438
× 268像素)等。
l&正文:文章的正文,可视化在线编辑器,提供常用的内容排版工具条;Word内容直接复制,格式不乱;提供通用模板排版格式;图片、Flash上传及添加附件功能。
n&添加图片:可进行从服务器上浏览一副以前上传的图片,也可链接其它网站图片,可以自己手动上传一副图片,操作界面如下:
n&添加附件:可进行修改链接标题,可服务器上选择或手动上传(小于5M),同图片,操作界面如下:
l&来源:填写文章的出处,来源等信息。
l&相关文章:可选择与该文章相关的文章,提供阅读者进行延伸阅读。
l&发布状态:文章的状态(发布、审核、删除),如果当前登录无发布权限,则直接进入审核状态,文章审核后才可进行正式发布。
l&查看评论:如果当前为意见征集模块,则可查看征集信息。
1.1.1.4.&发布信息审核
审核需要审核的文章,如通知通告,有信息员发布后,管理员可通过此功能对信息进行审核发布。
1.1.2.&统计分析
1.1.2.1.&信息量统计
统计一段时间内的信息发布量及点击量。
1.1.3.&评论管理
1.1.3.1.&管理列表
允许评论的文章,评论后需管理员进行审核后才能展示到页面上。有该功能的人员可对待审核的评论进行审核操作。
1.1.4.&栏目管理
1.1.4.1.&概述
树形表格界面,可折叠;设置灵活,可随意调整栏目父子关系;支持无限级子栏目;支持栏目排序;支持多种内容模型(文章模型、链接模型等),支持上传栏目缩了图;支持设置栏目描述及关键字,提升搜索引擎排行。
1、&导航栏显示:设置是否在网站主导航栏中显示。
2、&分类页中显示列表:是否在二级页面中显示内容列表。
3、&展现方式:
1)&默认方式:有子栏目,显示子栏目内容列表;无子栏目,直接显示该栏目的内容列表。
2)&首栏目内容列表:显示第一个子栏目的内容列表。
3)&栏目第一条内容:显示该栏目中的第一篇内容。
1.1.4.2.&列表
1.1.4.3.&添加、修改
1.1.5.&站点管理
1.1.5.1.&概述
对站点进行维护,支持多站点发布,可设置站点标题、描述、关键字、版权信息、模板风格等。
1.1.5.2.&列表
1.1.5.3.&添加、修改
1.1.5.4.&站点切换
当存在多站点发布的情况下,可通过该功能进行站点切换。
1.1.6.&公共留言
1.1.6.1.&概述
留言管理:姓名、邮箱、单位、电话、留言分类(咨询、建议、批评、其它)留言内容。
1.1.6.2.&列表
1.1.6.3.&审核
2.&网站开发步骤
2.1.&基础数据维护
1、&进入站点设置,并确定默认站点为当前站点。
2、&进入栏目设置,给当前站点设置和维护栏目,维护完成可访问:http://127.0.0.1:8080/jeesite/f&预览站点。
2.2.&建立自己的主题
1、&完成数据维护下一步开始新建站点主题风格,进入字典管理,给“内容管理-站点主题
| cms_theme”字典,增加一个主题。
2、&进入站点设置,设置默认站点的:名称、描述、版权、主题(刚建立的主题)、首页视图等信息。
3、&复制&/src/main/webapp/WEB-INF/views/modules/cms/front/themes下的basic文件夹(为了对照方便,不要直接修改),重命名为自己设计的主题名称(刚建立的主题,字典键值)。
4、&到这里初始化工作基本完成,下一步开始编辑你的主题文件即可。
2.3.&主题模板介绍
1、&首页模板:frontIndex.jsp,
命名格式:frontIndex*.jsp
2、&文章列表页:frontList.jsp,
命名格式:frontList*.jsp
3、&文章详情页:frontViewArticle.jsp,命名格式:frontViewArticle*.jsp
4、&文章评论:frontComment.jsp
5、&公众留言:frontGuestbook.jsp
6、&站点地图:frontMap.jsp
7、&站点搜索:frontSearch.jsp
模板中的标签可参看fnc.tld文件。具体用法可参看以上模板文件;使用它,你可以不用动后台一处代码,只需要修改你配置和模板文件,即可快速完成网站开发。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1155次
排名:千里之外
原创:30篇
(30)(3)(1)Jeesite Login 登录 分析-爱编程
Jeesite Login 登录 分析
&1.sysLogin.jsp
&&本文采用从前端到后台的形式,整体的阐述一下jeesite中login模块的交互流程,整个jeesite的重要功能我拟将他分为login,list,权限三个部分,应该包括了我们需要实现的大部分功能,计划将这三个部分逐一写出。 &&&&&&&&jsp这部分我并不太熟,详见嘉炜的jsp讲解,我这里只挑出重要部分介绍:
&form id="loginForm"
class="form login-form" action="${ctx}/login" method="post"&
整个jsp页面其实就是一个表单,它的主要目的就是接受用户输入的用户名和密码字段,然后交给后台处理。action变量指定了该表达的提交方式,既是交由/a/login所对应的函数来处理。
&input type="text" id="username" name="username" class="required" value="${username}" placeholder="登录名"&
&input type="password" id="password" name="password" class="required" placeholder="密码"/&
&&&以上就是表单里的两个属性,一个属性名为username,一个名为password,表单会借由request属性传到函数当中,届时就能通过getUsername和getPassword两个函数从request中取出。这部分是在FormAuthenticationFilter中的createToken函数中实现,下文中会详细介绍。 &&&&&&&&Login模块中的jsp非常简单,难点主要在于shiro的应用上,这也是该模块与普通list模块的区别之处。
&&&&&&&&之前已经写过一篇shiro相关的文章,只是之前的shiro文章是作为简单的shiro教程来写的,内容大而全,所以知识点之间的串联难免会差一些,这次只做为jeesite应用来写,更注重在逻辑方面,若有问题可以参考前一篇文章。 &&&&&&&&其实这里也设计到一些spring-mvc的内容,不过之前也已经写过了,而且也很简单,就不作为单独的一章了。
&&&&&&&&上回合说到,jsp将username和password打包扔给后台,那么后台是由什么接受呢?在spring-mvc中,负责接受前台数据的是controller部分,而form中所指定的action是/a/login。
@RequestMapping(value = "${adminPath}/login", method = RequestMethod.GET)
public String login(HttpServletRequest request, HttpServletResponse response, Model model) {
User user = UserUtils.getUser();
// 如果已经登录,则跳转到管理首页
if(user.getId() != null){
return "redirect:"+Global.getAdminPath();
return "modules/sys/sysLogin";
@RequestMapping(value = "${adminPath}/login", method = RequestMethod.POST)
public String login(@RequestParam(FormAuthenticationFilter.DEFAULT_USERNAME_PARAM) String username, HttpServletRequest request, HttpServletResponse response, Model model) {
User user = UserUtils.getUser();
// 如果已经登录,则跳转到管理首页
if(user.getId() != null){
return "redirect:"+Global.getAdminPath();
model.addAttribute(FormAuthenticationFilter.DEFAULT_USERNAME_PARAM, username);
model.addAttribute("isValidateCodeLogin", isValidateCodeLogin(username, true, false));
return "modules/sys/sysLogin";
&很容易就能定位到,以上两个函数就是处理form的函数,或者说正常情况下是由这两个函数来处理。但是仔细看这两个函数,并没有进行逻辑处理,只是简单的检查和跳转。这是因为shiro的登陆功能在controller之前加入了一个filter。这个filter被配置在文件spring-context-shiro.xml文件里。
&bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean"&
&property name="securityManager" ref="securityManager" /&
&property name="loginUrl" value="${adminPath}/login" /&
&property name="successUrl" value="${adminPath}" /&
&property name="filters"&
&entry key="authc" value-ref="formAuthenticationFilter"/&
&/property&
&property name="filterChainDefinitions"&
/static/** = anon
/userfiles/** = anon
${adminPath}/login = authc
${adminPath}/logout = logout
${adminPath}/** = user
&/property&
&以上就是配置过程最关键的部分。loginuUrl属性所指定的url表示的是所有未通过验证的url所访问的位置,此处就是登录界面;successUrl表示的是成功登陆的url访问的位置,此处就是主页。filters则是配置具体验证方法的位置。在此处,${adminPath}/login = authc指定了/a/login,既登陆页面,所需要的验证权限名为authc,又配置了authc所用的filter为formAuthenticationFilter。 &&&&&&&&因此整个逻辑是:如果任何地方未登陆,则访问/a/login页面,而/a/login页面的验证权限中又指定了formAuthenticationFilter做为过滤,如果过滤中验证成功,则访问/a这个主页。所以,login.jsp中的表单信息则首先交由formAuthenticationFilter首先处理。
&&&&&&&&再来看formAuthenticationFilter中的处理,需要关注的类主要在com.thinkgem.jeesite.modules.sys.security这个包里。通常FormAuthenticationFilter是主要逻辑管理类,SystemAuthorizingRealm这个类则是数据处理类,相当于DAO。但是直接从代码里没发看出功能,这是因为jeesite中的这两个类都是继承于shiro的类,有很多逻辑并没有在jeesite中实现,所以我并不能贴出全部代码,某些地方只用语言来描述。 &&&&&&&&大致来讲,首先表单的request被formAuthenticationFilter接收到,然后传给createToken函数,该函数从request中取出name和password,然后生成自定义的一个token传给SystemAuthorizingRealm中的doGetAuthenticationInfo验证。SystemAuthorizingRealm中有systemService的实例,该实例含有userDAO能取出数据库中的name和password。接着由这两个密码生成SimpleAuthenticationInfo,再由info中的逻辑来验证。以上过程中jeesite实现的代码分别如下:
protected AuthenticationToken createToken(ServletRequest request, ServletResponse response) {
String username = getUsername(request);
String password = getPassword(request);
if (password==null){
password = "";
boolean rememberMe = isRememberMe(request);
String host = getHost(request);
String captcha = getCaptcha(request);
return new UsernamePasswordToken(username, password.toCharArray(), rememberMe, host, captcha);
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authcToken) throws AuthenticationException {
UsernamePasswordToken token = (UsernamePasswordToken) authcT
if (LoginController.isValidateCodeLogin(token.getUsername(), false, false)){
// 判断验证码
Session session = SecurityUtils.getSubject().getSession();
String code = (String)session.getAttribute(ValidateCodeServlet.VALIDATE_CODE);
if (token.getCaptcha() == null || !token.getCaptcha().toUpperCase().equals(code)){
throw new CaptchaException("验证码错误.");
User user = getSystemService().getUserByLoginName(token.getUsername());
if (user != null) {
byte[] salt = Encodes.decodeHex(user.getPassword().substring(0,16));
return new SimpleAuthenticationInfo(new Principal(user),
user.getPassword().substring(16), ByteSource.Util.bytes(salt), getName());
版权所有 爱编程 (C) Copyright 2012. . All Rights Reserved.
闽ICP备号-3
微信扫一扫关注爱编程,每天为您推送一篇经典技术文章。

我要回帖

更多关于 od修改软件标题 的文章

 

随机推荐