搜档网
当前位置:搜档网 › 用ucenter实现discuz与javaweb单点应用

用ucenter实现discuz与javaweb单点应用

用ucenter实现discuz与javaweb单点应用
用ucenter实现discuz与javaweb单点应用

uncenter实现两系统单点登入,注册与退出

(说明:本系统用的ucenter版本是1.6;discuz版本是2.0)

ucenter定义:

Ucenter俗称用户中心,是康盛科技公司发布的用于实现各系统相互联调与通讯的桥梁系统,比如实现用户的一站式登入,一站式退出或注册!以下阐述ucenter如何实现discuz 与javaweb跨语言单点注册,登入和退出

1:环境的搭建

Ucenter与discuz均属php语言开发的web站点,首先创建php服务器,其次把需要部署的php项目放入www目录下即可,如discuz项目与ucenter项目同时部署!Discuz与ucenter 项目启动后有一个安装的过程,过程包括设数据库连接的用户名,密码,数据库表前缀等的操作,数据库可不用服务器默认安装的mysql

2:ucenter的配置

登入uncenter系统,在应用管理菜单下进行添加新应用

2.1 :discuz项目的配置

注意点:

应用类型::discuzx

用的主URL::是你访问discuz应用程序的路径

通信密钥: 秘钥则是discuz项目中config_ucenter.php文件的UC_KEY属性,直拷:

为保持更好的通讯将配置提交后生成的如下框框里的信息覆盖config_ucenter.php的文件内容

2.2:javaweb项目的配置

2.1.1:在web项目的classpath目录新建一配置文件config.properties,默认加载文件名不可变,文件内容:

UC_API:访问ucenter的路径

UC_KEY:随便设的秘钥,要与随后uncenter中的配置一致

UC_IP:ucenter所在ip地址

UC_APPID:该值随后由uncenter配置生成

2.1.2:在uncenter中新增javaweb应用:

说明:

应用类型::其它

用的主URL::就是你访问javaweb应用程序的路径

通信密钥: :与在项目中config.properties配置的UC_KEY一致

ucenter提交配置后生成的ID值就和配置文件中UC_APPID值要一样

2.1.3:在javaweb项目中新建package引入ucenter for java api的源码

,同时在web.xml引入uc拦截,是引入的uc.java

到此时基本已完成ucenter与javaweb的配置,但依然不可实现注册后立即单点登入,ucenter 大体原理如下:

当javaweb进行注册时,同步记录注册信息的是在uncenter库中的uc_member表,discuz 暂无还无任何注册信息,当用户进行首次登入激活后,系统就往discuz库中的discuz_common_member表插用户信息数据!

所以当用户首次手动登入后就可以实现单点登入,为避免激活操作,我们要解决的问题就是当注册时手动同步往discuz中的discuz_common_member表插数据!插数据我们要注意的就是password加密问题!

2.1.4 用户注册密码加密方式

Discuz密码加密方式是采用MD5两次盐值加密方式,盐值用户注册时已在ucenter库中uc_member表salt字段存在

所以我们要首先从uc_member表中取出对应用户名的salt值

"select u.salt from uc16_members u where https://www.sodocs.net/doc/5014881745.html,ername='"

+ username + "'";

网友分享的可用加密源码如下

private String inStr;

private MessageDigest md5;

/**

* Constructs the MD5 object and sets the string whose MD5 is to be * computed.

*

* @param inStr

* the String whose MD5 is to be computed */

public MD5ForDiscuz(String inStr) {

this.inStr = inStr;

try {

this.md5 = MessageDigest.getInstance("MD5");

} catch (Exception e) {

System.out.println(e.toString());

e.printStackTrace();

}

}

/**

* Computes the MD5 fingerprint of a string.

*

* @return the MD5 digest of the input String

*/

public String compute() {

char[] charArray = this.inStr.toCharArray();

byte[] byteArray = new byte[charArray.length];

for (int i = 0; i < charArray.length; i++)

byteArray[i] = (byte) charArray[i];

byte[] md5Bytes = this.md5.digest(byteArray);

StringBuffer hexValue = new StringBuffer();

for (int i = 0; i < md5Bytes.length; i++) {

int val = ((int) md5Bytes[i]) & 0xff;

if (val < 16)

hexValue.append("0");

hexValue.append(Integer.toHexString(val));

}

return hexValue.toString();

}

public static String entryPaaword(String password,String salt) { MD5ForDiscuz md5 = new MD5ForDiscuz(password);

String pwd = https://www.sodocs.net/doc/5014881745.html,pute();

pwd = pwd + salt;

MD5ForDiscuz m = new MD5ForDiscuz(pwd);

String npwd = https://www.sodocs.net/doc/5014881745.html,pute();

return npwd;

}

我们只需调用entryPaaword方法,传入密码与盐值就可以实现有效的加密

3:discuz与javaweb实现单点登入,注册,退出的关键方法与源码

3.1:注册只要调api中client类的uc_user_register方法

Client uc = new Client();

uc.uc_user_register(registerusername,registerpassswor d, registerremail)

同步往discuz库discuz_common_member表插注册用户信息需自己实现!

我的实现方式如下:

/*

* 往discuz库discuz_common__member表插用户注册数据

*/

public void insertDiscuzUserinfo(String username, String password,

String email) {

ResultSet resultSet;

// 获取ucenter用户密码加班盐值

String salt = null;

try {

resultSet = getUcenterDatabaseMysqlCon().prepareStatement("")

.executeQuery("select u.salt from uc16_members u where https://www.sodocs.net/doc/5014881745.html,ername='"

+ username + "'");

while (resultSet.next()) {

salt = resultSet.getString(1);

System.out.println(salt);

}

} catch (Exception e) {

e.printStackTrace();

}

// 获取用户最大id值,以便获取下一个id值

Integer maxDiscuzCommneMemberId = null;

try {

Statement statement = getDiscuzDatabaseMysqlCon().createStatement();

resultSet = statement

.executeQuery("select max(uid) from discuz20_common_member");

while (resultSet.next()) {

maxDiscuzCommneMemberId = resultSet.getInt(1);

System.out.println(maxDiscuzCommneMemberId);

}

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

// discuz库也同步插入注册的用户信息

String userId = String.valueOf(maxDiscuzCommneMemberId + 1);

password = MD5ForDiscuz.entryPaaword(password, salt);//返回密码加密值

try {

getDiscuzDatabaseMysqlCon()

.prepareStatement(

"INSERT INTO discuz20_common_member VALUES"

+ "('"+ userId+ "', '"+ email+ "', '"+ username+ "', '"+ password+ "',"

+ "'0', '0', '0', '0', '0', '10', '0', '', "+ "'1394940642','2', '0', '9999', '0', '0', '0', '0', '0', '0')")

.execute();

} catch (Exception e) {

e.printStackTrace();

}

}

3.2:登入如下

/*

* 用户登入

*/

public String ucenterLogin(HttpServletRequest request,

HttpServletResponse response, String username, String password)

throws IOException {

Client uc = new Client();

String result = uc.uc_user_login(username, password);

System.out.println("result:" + result);

LinkedList rs = XMLHelper.uc_unserialize(result);

if (rs.size() > 0) {

int $uid = Integer.parseInt(rs.get(0));

String $username = rs.get(1);

String $password = rs.get(2);

String $email = rs.get(3);

if ($uid > 0) {

response.reset();

response.setContentType("text/html,charset=utf-8");

response.addHeader(

"P3P",

" CP=\"CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA

PRE COM NAV OTC NOI DSP COR\"");

response.getWriter().write("login success");

response.getWriter().write($username);

response.getWriter().write($password);

response.getWriter().write($email);

String $ucsynlogin = uc.uc_user_synlogin($uid);

response.getWriter().write($ucsynlogin);

// 本地登陆代码

// TODO ... ....

/*

* $password=uc.uc_authcode($password + "\t" + $uid, "ENCODE")

*/;

delCookie("user", response);

Cookie user = new Cookie("user", $username + ":" + $password);

user.setPath("/");

response.addCookie(user);

return result;

} else if ($uid == -1) {

response.getWriter().write("this user not exist");

return"-1";

} else if ($uid == -2) {

response.getWriter().write("password is wrong");

return"-2";

} else {

response.getWriter().write("undfine");

return"none";

}

} else {

response.getWriter().write("Login failed");

System.out.println(result);

return"0";

}

}

3.3:退出只需如下

uc.uc_user_synlogout();

4《Java_Web应用开发实用教程》练习答案.

1.7 习题 1. 单选题 (1)在HTML中超链接标记为() A. B. C. 和 D. 和 答案:A (2)表单中的数据要提交到的处理文件由表单的()属性指定。 A.method B. name C. action D. 以上都不对 答案:C (3)当标记的type属性值为()时,代表一个多选框。 A.text B. radio C. checkbox D. button 答案:C (4)以下URL中语法不正确的是() A.https://www.sodocs.net/doc/5014881745.html,:80/software/home.html B.telnet://https://www.sodocs.net/doc/5014881745.html,:70 C.ftp://https://www.sodocs.net/doc/5014881745.html, https://www.sodocs.net/doc/5014881745.html, 答案:D 2. 上机练习 用记事本或Dreamweaver制作如下几个页面(建议用Dreamweaver制作): link.html:此页面只有一个超级链接,用户单击此链接后将链接到login.html登录页面。 login.html:此页面为用户登录页面,用户可以在此页面输入用户名和密码,然后提交表单。 login_success.jsp:接收用户输入并显示“登录成功!”。三个页面运行后的效果如图1.8所示。 图1.8 练习题页面运行效果 答案: link.html代码如下: HTML练习 点击这里登录 login.html代码如下:

有关如何搭建运行discuz论坛环境的相关步骤

安装与配置discuz论坛 一、软件准备(所有用到的软件都已经放到旁边的文件夹中): (1) 二、安装Apache (2) 三、php的安装、以module方式,将php与apache结合使服务器支持php服务器脚本程序 (16) 四、安装MYSQL (22) 五、安装Zend Optimizer (30) 六、phpMyAdmin (30) 七、论坛的安装 (31) 一、软件准备(所有用到的软件都已经放到旁边的文件夹中): Discuz_X1.5_SC_GBK.zip 下载地址:https://www.sodocs.net/doc/5014881745.html,/DiscuzX/1.5/Discuz_X1.5_SC_GBK.zip apache_2.2.4-win32-x86-no_ssl.msi 下载地址: https://www.sodocs.net/doc/5014881745.html,/fs/800/1/1570c8b16fa3e66b3138d64dec054e3434621253/msi/apache_2.2.4-win32-x86-no_ssl.msi?origin=https://www.sodocs.net/doc/5014881745.html, php-5.2.4-Win32.zip 下载地址: https://www.sodocs.net/doc/5014881745.html,/fs/800/1/62b77f449f6e327f40a45d038a4a5dd631710188/zip/php-5.2.5-Win 32.zip?origin=https://www.sodocs.net/doc/5014881745.html, 官方网站:https://www.sodocs.net/doc/5014881745.html,/download/ ZendOptimizer-3.2.8-Windows-i386.exe 下载地址: https://www.sodocs.net/doc/5014881745.html,/fs/800/1/3ea37a32591fedd003eb368ab48364d340588654/rar/ZendOptimiz er-3.3.0a-Windows-i386.rar phpMyAdmin-2.11.0-rc1-all-languages-utf-8-only.zip 下载地址: https://www.sodocs.net/doc/5014881745.html,/fs/800/1/911635277c14979697c7e2ea863c558a28758732/zip/phpMyAdmi n-3.2.5-all-languages.zip 官网:https://www.sodocs.net/doc/5014881745.html,/home_page/downloads.php mysql-essential-5.0.27-win32.rar

dz模板开发教程

Discuz!模板二次开发的模板语法介绍: 相信大多数朋友都看过discuz的模板文件的代码了。不同于传统的静态html代码,dz的静态模板可以说是动态化得模板文件了。这里集合了,一些特有的php变量和逻辑判断。下面我将为大家整理一下常用的dz模板二次开发规范,希望有助于大家更好的制作模板。DZ的模板引擎原理是通过特殊的Discuz!模板标签来完成特定的循环和判断的。它不同于PHP本身自带的脚本语言。大家可能有很多人写过PHP的程序,也都使用过类似if($abc == 1) {} else {}的判断。Discuz!模板引擎会将Discuz!模板标签中的关键字替换成php自身的脚本语句,然后存入缓存目录forumdata/templates目录中生成一个可供PHP程序包含和调用的模板文件。 那在DZ的模板引擎中我们该如何使用Discuz!模板标签呢? 下面给大家列举DZ模板引擎中常见、常用的模板语句: 一、直接输出变量:{$abc}或{echo $abc} 二、输出数组中某个变量:{$arr[0]} 三、IF判断语句: 我abc小于1 我abc为1 我abc大于1 四、Loop循环语句: 这里是{$val} 上面这段loop语句,DZ会将其转换成php自身的循环语句: If(is_array($abc)) { Foreach($abc AS $key => $val) { } } 五、在模版文件中使用PHP语句:{eval $abc = 1;}注意:这里必须带”;”结尾。

六、在本模板中引用其他的模板:如我们要包含头部模板文件(header.htm)可以这样写:{subtemplate header} 在模版中使用语言包中的中文语句:{lang xxxxx},在这里xxxxx就是语言包中任意一个数组的键值。 如:templates/default/https://www.sodocs.net/doc/5014881745.html,ng.php(语言包)内有下面的数组 $language = array ( 'discuz_lang' => 'templates', 'click_here' => '点击这里', 'ban_member' => '禁止', 'input_invalid' => '填写无效', 'title_none' => '无标题', 'title' => '标题', } 大家可以使用{lang title},这样在模板输出的时候则会显示”标题”两个字。 当你了解了Discuz!模板开发语法之后,我们就一起来熟悉一下,常用的数据库表含义,与主题表中常用字段的含义,这样方便你使用sql语句灵活调用个性的内容,如:按会员性别调用头像,在首页右侧边栏调用女性会员头像等等这样各个性的需求,在此我们丛老师为我们讲解常用数据库表、字段及sql语句。 数据常用的帖子表有:cdb_threads,cdb_posts 我们仅以了解数据库中该如何根据结构来获得自己需要的信息。 用户名和密码均为root。也可以查看安装后的readme.txt说明文件 接着我们还是来围绕今天的题目,来知道哪些数据表和数据字段对调用“帖子列表”有帮助。 打开phpmyadmin,找到现在你们本机用于演示的数据库。如图: cdb_threads表红色标记的,则是discuz!中最重要的主题列表。,回复主题在哪个表呢? 其实,回复帖子的库文件是:cdb_posts。我们在这里先只使用cdb_thread,以数据库的方式获取,最新的帖子列表数据和第一讲标签调用有区别,大家一起跟我做。 cdb_threads中有几个重要的字段: tid (大家很熟悉了),每个主题唯一的一个帖子ID fid(所在论坛版块的ID号)

discuz模板制作彷站教程

接触Discuz!有一段时间了,使用的风格都是别人的免费品。一来自己的美工水平实在不行,二来网上很少有比较完整的模板制作教程。因为工作的需要,现特写了一份模板的制作教程。小弟才疏学浅,不对之处还请指正。 模板制作前请将你的界面设计好,并制作成html+CSS 的格式。这里我就 以大魔王的“蓝色经典”作为样版(知识共享,希望大魔王不要介意,如有侵权,请及时通知我)。效果图如下: (图1) 在开始前,先了介绍一下discuz!的几个模板文件:1、header.htm --------------------------------------页面头部2、discus.htm---------------------------------------------------------------论坛首页3、footer.htm---------------------------------------------------------------页面底部4、viewthread--------------------------------------------------------------查看帖子内容 discuz!论坛的页面通常是几个模板文件共同作用下达到的效果,如图1就是header.htm+discus.htm+footer.htm 这三个文件共同作用的效果。Heaer.htm 对应的是: (图2) w w w .a i w a n s h a .c o m

Footer.htm 对应的是: (图3) 剩下的就是discuz.htm 文件显示的了。 当然你要将首页显示的效果就制作成一个文件模板也是可以的,这里之所以分开,是因为header.htm 和footer.hmt 文件通常还会被其它的模版文件引用。也就是说,其它的页面(比如发贴的页面)的头部、底部与首页的头部、底部完全一样,分开来写就可以达到重复利用,减少劳动的效果。下面我们就开始制作: 首先,现在我要制作的这套模板叫test,那么我就在templates 目录下建立一个test 目录。在test 目录下再新建一个images 文件夹用于存放这套模板的图片,把切好的所有图片保存到这个文件夹中。templates/test 文件夹用于存放这套模板的htm 文件,在这个目录中新建三个文件header.htm、discuz.htm、footer.htm,打开你设计好的主页html 文件,将你想作为头部的那一段代码复制粘贴到header.htm 文件中, 相应的将作为底部的那一段代码复制粘贴到footer.htm 文件中,其余的代码复制粘贴到discuz.htm 文件中。 最后在discuz.htm 文件的最顶部和最底部分别加上:{subtemplate header}和{subtemplate footer} 这两句算是discuz 的语言,意思是将header.htm 和footer.htm 文件包含进来,这样就构成了一个完整的主页面了。接下来的工作要在论坛后台设置中来完成(1)进入论坛点击“系统设置——>界面——>模板管理”,在新增模板后填入模板名称,模板文件所在目录,板权信息然后提交即可!如图 4: (图4) (2)在“界面——>风格管理”中,在新增界面风格后填入方案名称“test”然后提交即可!(3)提交方案名称后,您就可以在界面风格中看到您所定义的新的风格方案。如下图: w w w .a i w a n s h a .c o m

Discuz教程

Discuz教程 插件制作的基本思路是:(初学者适用) 1.形成插件思路 2.制作插件界面 3.构架程序模块 4.搭建存储数据 5.填充功能语句 6.检查应用错误 7.完善插件功能 前言:为方便互联网数万Discuz!爱好者,更加深入了解Discuz!软件,本人在熟悉Discuz!过程中,顺便将个人经验写给大家。本贴内容由本人定期更新。本贴只介绍Discuz!中部分技术点,本贴紧属个人观点,不足之处,请各位多多指教,在下先此谢过!。“Discuz!”在下文中简称“DZ”。要弄DZ二次开发,必须至少具备如下技能:1)能够理很好理解MVC构架的原理(虽然DZ不是MVC架构的) 2)扎实的PHP基础,熟悉结构化程序,OOP程序的写法及应用 3)熟悉MYSQL就用,掌握SQL语言,懂SQL优化者更佳 4)熟悉使用Discuz!的各项功能 一)Discuz!的文件系统目录 注:想搞DZ开发,就得弄懂DZ中每个文件的功能。 a) Admin:后台管理功能模块 b) Api:DZ系统与其它系统之间接口程序 c) Archiver:DZ中,用以搜索引擎优化的无图版 d) Attachments:DZ中,用户上传附件的存放目录 e) Customavatars:DZ中,用户自定义头像的目录 f) Forumdata:DZ缓存数据的存放目录 g) Images:DZ模板中的图片存放目录 h) Include:DZ常用函数库,基本功能模块目录 i) Ipdata:DZ统计IP来路用的数据 j) Plugins:DZ插件信息的存放目录 k) Templates:DZ模板文件的存放目录 l) Wap:DZ无线,Wap程序处理目录 二)必须记熟Discuz!数据库设计的每个表的功能,每个表中每个字段的功能。 关于DZ数据库设计文档,请参阅DZ相关的项目文档(请从本贴附件中下载) 三)Discuz!的流程控制 a) 后台流程控:DZ后台所有的功能,均需要注册到admincp.php文件,每个功能都至少有一个或一个以上的Action(动作),在admincp.php中,可以定义Action的执行权限,分别为:“admin==1”管理员,或“admin==2 || admin==3”超级版主和版主,每个Action对应一个脚本文件,脚本文件的命名为action.inc.php(*.inc.php),并存放在admin目录下,如执行:admincp.php?action=dodo,相当于执行admin目录下的dodo.inc.php文件 b) 前台流程控制:前台的流程控制比较简单:流程是自由的,如: 首页:index.php 会员注册:register.php; 会员登录:logging.php 发贴程序:post.php 会员信息:member.php 论坛内容:forumdisplay.php 查看贴子:member.php …大部分功能,此处不一一列出… c) DZ根目下的config.inc.php属于整个DZ系统的配置文件 四)Discuz!的数据处理过程 a) DZ对mysql的数据库操作处理全部封装在dbstuff(db_mysql.class.php)类中 b) 所在的外部数据均通过“daddslashes()”初步过滤,然后再过滤,再根据需要处理 五)Discuz!的显示控制(网站多样式风格输出) a) 显示层就是大家通常所看到的网站风格了。DZ中每套风络分别在templates及images下对应一个风格文件的存放目录。网站风格的制作,请参阅详细的DZ风格制作文档 b) DZ网站风格文件处理的原理:其实很简单,DZ使用template.func.php中的parse_template()以PHP正则运算把htm模文件中的模板标签,转换成了PHP代码,并根据styleid保存在forumdata/templates下,这个有点像Smarty 中的技术。 六)DZ中的语言处理 a) DZ前台及后台中、英语言的实现,均是把语句定义成了语变量,然后在模板输入,语句变量的赋值,均放在模板目录中的*.lang.php文件中,DZ在生成网站风格时就加载了这相应的语言包。 七)DZ如何处理用户信息(存取、计算、更新过程)

JavaWeb应用开发项目设计方案

《Java Web应用开发》项目设计参考方案(学时:84)项目一网上商城项目开发环境的搭建(学时:8) 一、教学目标 最终目标:学会Java Web 开发环境搭建,了解如何在集成开发环境中开发JSP、Servlet程序,能在Web服务器上进行运行测试。 促成目标: 1. 了解JSP、Servlet技术; 2. 了解Java Web 开发模式; 3. 了解Java Web服务器运行条件,掌握如何安装、配置Jdk、Tommcat和集成开。 二、工作任务 1.任务1 Java Web 环境搭建 2. 任务2 简单JSP、Servlet测试 三、活动设计 1.活动思路 首先介绍动态网页技术及相关开发模式,并将相关技术进行比较,从而引出本门课的重点。接着指出建立Web服务器的条件,引出如何搭建Java Web运行环境;最后学习集成开发环境的安装与设置,并学习如何写JSP程序、Servlet 程序,并掌握如何在客户端进行运行测试。 2.活动组织 3.活动评价 评价内容:根据学生具体任务完成情况、课后作业等情况进行评价。 评价标准: 实践部分评价:能基本完成相关软件的安装、环境配置为及格;独立完成相关软件的安装、环境配置,基本能进行代码编写及测试为良好;独立完成相关软件的安装、环境配置,并能进行正确的代码编写及测试为优秀。

模块一 Java Web 环境搭建(学时:4) 一、教学目标 最终目标:掌握浏览静态网页和动态网页的技能,掌握分析网页所采用的技术的技能,能独立完成JSP运行环境的安装及配置 促成目标: 1.了解静态网页中的静态的概念; 2.了解动态网页中的动态的概念; 3. 了解JSP、Servlet技术; 4. 了解Java Web 开发模式; 5.学会JDK、Tomcat的下载、安装及配置。 二、工作任务 1. JDK、Tomcat的安装及配置; 2.浏览各种类型的网页,分析出网页采用的技术; 三、活动设计 1.活动内容 通过浏览多种类型的网页、导出静态网站与动态网站的概念,继而引出对各种网页开发技术的分析,引入JSP动态网页开发技术、开发模式及运行环境;浏览电子商务网站,导出网上商城的项目;分析JSP的基本概念,导出Web服务器的概念,引出JSP常用的Web服务品Tomcat。构建JSP运行环境,为下一步开发工作做好准备。 子任务一:JDK安装与配置 子任务二:Tomcat的安装与配置,服务器运行测试。 2.活动组织

教你Discuz模板制作详细步骤

接触Discuz! 有一段时间了,使用的风格都是别人的免费品。一来自己的美工水平实在不行,二来网上很少有比较完整的模板制作教程。因为工作的需要,现特写了一份模板的制作教程。小弟才疏学浅,不对之处还请指正。 模板制作前请将你的界面设计好,并制作成html+CSS的格式。这里我就以大魔王的“蓝色经典”作为样版(知识共享,希望大魔王不要介意,如有侵权,请及时通知我)。效果图如下: (图1) 在开始前,先了介绍一下discuz!的几个模板文件: 1、header.htm --------------------------------------页面头部 2、discus.htm---------------------------------------------------------------论坛首页 3、footer.htm---------------------------------------------------------------页面底部 4、viewthread--------------------------------------------------------------查看帖子容 discuz!论坛的页面通常是几个模板文件共同作用下达到的效果,如图1就是header.htm+discus.htm+footer.htm这三个文件共同作用的效果。 Heaer.htm对应的是:

(图2) Footer.htm对应的是: (图3) 剩下的就是discuz.htm文件显示的了。 当然你要将首页显示的效果就制作成一个文件模板也是可以的,这里之所以分开,是因为header.htm和footer.hmt文件通常还会被其它的模版文件引用。也就是说,其它的页面(比如发贴的页面)的头部、底部与首页的头部、底部完全一样,分开来写就可以达到重复利用,减少劳动的效果。 下面我们就开始制作: 首先,现在我要制作的这套模板叫test,那么我就在templates目录下建立一个test目录。在test目录下再新建一个images文件夹用于存放这套模板的图片,把切好的所有图片保存到这个文件夹中。templates/test文件夹用于存放这套模板的htm文件,在这个目录中新建三个文件 header.htm、discuz.htm、footer.htm,打开你设计好的主页html文件,将你想作为头部的那一段代码复制粘贴到 header.htm文件中, 相应的将作为底部的那一段代码复制粘贴到footer.htm文件中,其余的代码复制粘贴到discuz.htm文件中。 最后在discuz.htm文件的最顶部和最底部分别加上:{subtemplate header} 和{subtemplate footer} 这两句算是discuz的语言,意思是将header.htm和footer.htm文件包含进来,这样就构成了一个完整的主页面了。 接下来的工作要在论坛后台设置中来完成 (1)进入论坛点击“系统设置——> 界面——> 模板管理”,在新增模板后填入模板名称,模板文件所在目录,板权信息然后提交即可!如图4: (图4) (2)在“界面——> 风格管理” 中,在新增界面风格后填入方

Discuz模板教程

Discuz模板教程 接触Discuz! 有一段时间了,使用的风格都是别人的免费品。一来自己的美工水平实在不行,二来网上很少有比较完整的模板制作教程。因为工作的需要,现特写了一份模板的制作教程。小弟才疏学浅,不对之处还请指正。 模板制作前请将你的界面设计好,并制作成html+CSS的格式。这里我就以大魔王的“蓝色经典”作为样版(知识共享,希望大魔王不要介意,如有侵权,请及时通知我)。效果图如下: (图1) 在开始前,先了介绍一下discuz!的几个模板文件: 1、 header.htm --------------------------------------页面头部 2、 discus.htm---------------------------------------------------------------论坛首页 3、 footer.htm---------------------------------------------------------------页面底部 4、 viewthread--------------------------------------------------------------查看帖子内容 discuz!论坛的页面通常是几个模板文件共同作用下达到的效果,如图1就是 header.htm+discus.htm+footer.htm这三个文件共同作用的效果。 Heaer.htm对应的是:

(图2) Footer.htm对应的是: (图3) 剩下的就是discuz.htm文件显示的了。 当然你要将首页显示的效果就制作成一个文件模板也是可以的,这里之所以分开,是因为header.htm和footer.hmt文件通常还会被其它的模版文件引用。也就是说,其它的页面(比如发贴的页面)的头部、底部与首页的头部、底部完全一样,分开来写就可以达到重复利用,减少劳动的效果。 下面我们就开始制作: 首先,现在我要制作的这套模板叫test,那么我就在templates目录下建立一个test目录。在test目录下再新建一个images文件夹用于存放这套模板的图片,把切好的所有图片保存到这个文件夹中。templates/test文件夹用于存放这套模板的htm文件,在这个目录中新建三个文件header.htm、discuz.htm、footer.htm,打开你设计好的主页html文件,将你想作为头部的那一段代码复制粘贴到header.htm文件中, 相应的将作为底部的那一段代码复制粘贴到footer.htm文件中,其余的代码复制粘贴到discuz.htm文件中。 最后在discuz.htm文件的最顶部和最底部分别加上:{subtemplate header} 和{subtemplate footer} 这两句算是discuz的语言,意思是将header.htm和footer.htm文件包含进来,这样就构成了一个完整的主页面了。 接下来的工作要在论坛后台设置中来完成 (1)进入论坛点击“系统设置——> 界面——> 模板管理”,在新增模板后填入模板名称,模板文件所在目录,板权信息然后提交即可!如图4: (图4) (2)在“界面——> 风格管理” 中,在新增界面风格后填入方案名称“test”然后提交即可!

Java Web应用开发中的一些概念

Java Web应用开发中的一些概念 [导读]概念一直是学习计算机软件开发中经常遇到的问题,也是软件行业最喜欢创造的东西。很多时候,学习计算机软件开发遇到困难都是因为对某些概念的不理解,而不是因为技术本身有多么复杂。 概念一直是学习计算机软件开发中经常遇到的问题,也是软件行业最喜欢创造的东西。很多时候,学习计算机软件开发遇到困难都是因为对某些概念的不理解,而不是因为技术本身有多么复杂。JavaWeb作为JavaEE技术体系的一部分,应该是目前所有Web开发技术中最复杂的一种,很多初学者,或者是从ASP、PHP 转移过来的开发者都会遇到概念方面的困难。 其实很多概念都是非产简单的,只是因为厂家为了宣传需要,将概念复杂化、学术化,导致学习者觉得这些概念非常深奥,难以理解。在这里,我们首先去澄清JavaWeb开发中几个常用的基本概念。当然理解这些概念的前提是需要你具备一定的计算机系统、面向对象等方面基础知识。 1、Web容器 所有的程序运行都需要有一个必要的运行环境。这个环境可以是软件,也可以是硬件,或者是软件和硬件的结合。比如说Windows操作系统需要运行在硬件基础上;Office软件需要运行在操作系统上。并且程序与运行环境之间会有一定的数据交换,比如操作系统会将运行指令传递给硬件,硬件也会将指令运行结果传递给操作系统。JavaWeb程序也需要一个运行环境才能够执行。这种运行JavaWeb程序的环境被称为Web容器,JavaWeb程序与Web容器之间存在数据交互。目前主要存在两种类型的JavaWeb容器:一种是独立的JavaWeb容器,在这种容器里面只能运行Web程序,这种容器一般也叫做Web服务器,如Tomcat等;另一种是与其他JavaEE容器混合在一起的Web容器,Web容器负责运行Web程序,其他容器负责运行EJB等程序,如WebLogic等。 当用户通过浏览器等Web客户端软件向服务器发出一个请求之后,首先接收到这个请求的是Web容器,Web容器会将请求信息封装到一个HttpServletRequest类型的Java对象中,并将对象传递给JavaWeb程序。对于每个请求,Web容器还会创建一个HttpServletResponse类型对象,该对象的作用是用来保存需要返回到浏览器等客户端的内容。JavaWeb程序可以从HttpServletRequest提取用户发出的请求信息,进行适当的处理之后,将处理结果放置到HttpServletResponse中,然或由Web容器解析HttpServletResponse对象内容,并将解析结果以浏览器能够识别的HTML等格式返回给浏览器等客户端。在这个过程中,HttpServletRequest和HttpServletResponse就如同两条渡船,负责在Web容器和JavaWeb程序之间传递信息。需要注意的是,这两个对象仅存在于Web容器和JavaWeb程序当中,与浏览器没有关系。 2、Web应用

《Java Web应用开发》课程标准

课程标准 所属系部:信息工程系 课程名称:JavaWeb应用开发 课程性质:专业必修课 课程学时:96 适用专业:云计算技术与应用()

《JavaWeb应用开发》课程标准 1、课程概述 1.1课程定位 JavaWeb应用开发是云计算技术与应用专业的核心课程之一,是该专业的专业必修课。通过本课程的学习,使学生具备JavaWeb应用开发相关知识、良好的编程习惯和手机应用软件开发的能力,能胜任基于JavaWeb开发等工作任务。Java的J2EE体系中,JSP/Servlct/J avaBcan占据了非常重要的位置,不仅成为web项目开发的利器,而且也是人们接触和使用J 2EE的一个基础。通过详实的内容和丰富的案例,引领学生学习JSP/Scrvlet/JavaBcan的开发体系,以及这套技术在项目开发中的实际应用。同时,通过教学过程中的实际开发过程的规范要求,培养学生分析和解决实际问题的能力,强化学生的职业道德意识、职业素质养意识和创新意识,为学生以后从事更专业化的软件开发工作奠定基础。《JavaWeb程序开发入门》是面向计算机相关专业的一门专业JavaWeb入门课程,涉及XML基础、Tomcat服务器、HTTP协议、Servlet技术以及JSP技术等内容,通过本课程的学习,学生能够了解XML的语法及其约束的定义,能够掌握JSP和Servlet技术并开发简单的JavaWeb项目、使用Tomcat 服务器发布和运行JavaWeb项目。前导课程有《Java程序设计》、《数据库技术基础》,后续课程有《J2EE项目开发》、《JavaWeb应用开发实训》、《毕业实习》等。 1.2课程设计思路 本课程标准以“开发”、“应用”为原则,彻底打破原来学科课程链路模式,根据基于工作过程专业建设模式,以能力为本位,构建以实际工作情境为单位的课程体系。课程内容的选取按照软件开发市场、软件企业、行业对Web开发程序员的需求情况,确定了“初级We b程序员”的职业岗位培养目标。在教学实施过程中基于实际工作的教学模式、通过各种各样的教学方法和教学手段,培养Web程序员应具备的能力。 每个项目的学习都是围绕职业能力的形成组织课程内容,以真实项目为核心整合Web程序员的所需的知识、技能和态度。实践中创设职业情境,围绕着软件企业、软件行业中的实际项目而展开的,学生通过各个环节的技能训练,感受职业环境,实现编程技能的逐步提升。本课程课时为96学时。 本课程在教学过程中,倡导自主学习,启发学生对设定问题积极思考、分析,鼓励多种思维方式并将其表达出来,尊重个体差异。采用项目教学法进行教学,每个项目的成绩采取自评、互评、教师综合评价相结合的方式能激励学生的学习兴趣和自主学习能力的发展。教

Discuz论坛安装及使用全过程

D i s c u z论坛……………………… 安装说明文档 北京XXX二合开甲X号XXX宿舍 2009年9月

目录 一、目录 (3) 二、MySQL数据库的安装 (4) 三、Apache网页服务的安装 (6) 四、libxml的安装 (7) 五、PHP编译语言的安装 (7) 六、Discuz论坛文件的权限设置 (8)

一、目录 开始写这篇技术文档之前,我已经为了Discuz论坛忙了一个星期,最开始安装、排错、再安装、再排错,一直到后来的安装成功,费了不少的脑细胞。在此期间,我要鸣谢网上的一篇“Redhat Linux AS4下的LAMP与Discuz安装”的文章,而我写的内容也是再它的基础上上详细了一点,所以也说不上是原创,还要感谢宿舍的一位兄弟,若没有他的强大技术做后盾,恐怕也就没有今天的文章。OK.说道正题。论坛搭建在RedHat 9的系统之上,主要的几个软件如下。 (1)mysql-5.0.67 版本 ----MySQL数据库 (2)httpd-2.2.9版本 ----Apache安装文件 (3)php-5.2.6 ----PHP包文件 (4)upload Discuz 7.0.0版本 ----论坛安装文件 (5)libxml2-2.6.11 -----libxml包 以上五个文件是最主要的,其中包的版本只可高不可低,安装的系统可以是linux的其他版本,具体的步骤也是大同小异,废话不说,开装。

二、MySQL数据库的安装 1:useradd mysql (首先建立MYSQL用户,为创建MYSQL数据库做铺垫) 2:tar -zxvf mysql-5.0.67.tar.gz -C /use/local/src(把MySQLTAR包解压到SRC目录里面。这里面的-C指定的解压目录,如果不写上会解压到当前目录里面) 3:cd /usr/local/src/mysql-5.0.67/ (进入到解压后的目录) 4:./configure --prefix=/usr/local/mysql --with-charset='gbk' (指定安装目录到/USR/LOCAL/MYSQL,进行编译前的准备。然后添加GBK模块,在安装Discuz!的时候会出现gbk错误,加上--with-charset='gbk'就可以) 5:make (编译) make install (执行安装命令) 6:cp support-files/https://www.sodocs.net/doc/5014881745.html,f /etc/https://www.sodocs.net/doc/5014881745.html,f (拷贝MYSQL的配置文件)7:cd /usr/local/mysql/bin (进入MYSQL的BIN目录下) 8:./mysql_install_db --user=mysql (使用MYSQL用户执行MYSQL脚本)9:chown -R mysql. (改变BIN目录所有者为MYSQL) 10:chown -R mysql var (改变VAR目录所有者为mysql,在这里需要进入/usr/local/mysql) 11:bin/mysqld_safe --user=mysql & (用MySQL启动数据库) 12:ps -ef | grep mysql (检查MYSQL是否已经启动) 13:vi /etc/rc.d/rc.local →进入自动启动目录,添加 /etc/init.d/mysql start,以后开机后会自动启动。 14:vi ~/.bashrc →→→export PATH=“$PATH:/usr/local/mysql/bin“(添加MySQL家目录的环境变量。在这里的路径是家目录,需要注销一下,Exit命令) 15:cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysql (复制mysql服务启动项文件) 16:chmod +x /etc/rc.d/init.d/mysql (给MySQL启动脚本加执行权限)

discuz模版制作

模板制作前请将你的界面设计好,并制作成html+CSS的格式。这里我就以大魔王的“蓝色经典”作为样版(知识共享,希望大魔王不要介意,如有侵权,请及时通知我)。效果图如下: (图1) 在开始前,先了介绍一下discuz!的几个模板文件: 1、 header.htm --------------------------------------页面头部 2、 discus.htm---------------------------------------------------------------论坛首页 3、 footer.htm---------------------------------------------------------------页面底部 4、 viewthread--------------------------------------------------------------查看帖子内容 discuz!论坛的页面通常是几个模板文件共同作用下达到的效果,如图1就是 header.htm+discus.htm+footer.htm这三个文件共同作用的效果。

(图2) Footer.htm对应的是: (图3) 剩下的就是discuz.htm文件显示的了。 当然你要将首页显示的效果就制作成一个文件模板也是可以的,这里之所以分开,是因为header.htm和footer.hmt文件通常还会被其它的模版文件引用。也就是说,其它的页面(比如发贴的页面)的头部、底部与首页的头部、底部完全一样,分开来写就可以达到重复利用,减少劳动的效果。 下面我们就开始制作: 首先,现在我要制作的这套模板叫test,那么我就在templates目录下建立一个test目录。在test目录下再新建一个images文件夹用于存放这套模板的图片,把切好的所有图片保存到这个文件夹中。templates/test文件夹用于存放这套模板的htm文件,在这个目录中新建三个文件header.htm、discuz.htm、footer.htm,打开你设计好的主页html文件,将你想作为头部的那一段代码复制粘贴到header.htm文件中, 相应的将作为底部的那一段代码复制粘贴到footer.htm文件中,其余的代码复制粘贴到discuz.htm文件中。 最后在discuz.htm文件的最顶部和最底部分别加上:{subtemplate header} 和{subtemplate footer} 这两句算是discuz的语言,意思是将header.htm和footer.htm文件包含进来,这样就构成了一个完整的主页 面了。 接下来的工作要在论坛后台设置中来完成 (1)进入论坛点击“系统设置——> 界面——> 模板管理”,在新增模板后填入模板名称,模板文 件所在目录,板权信息然后提交即可!如图4: (图4)

Discuz!X2.5 论坛安装图文教程

Discuz! 是腾讯旗下 Comsenz 公司推出的以社区为基础的专业建站平台,帮助网站实现一站式服务。让论坛(BBS)、个人空间(SNS)、门户(Portal)、群组(Group)、应用开放平台(Open Platform)充分融合于一体,帮助网站实现一站式服务。 说明:本文档用于帮助您全新安装完整的 Discuz! X2.5 一、下载 Discuz! X2.5 官方版到本地或者服务器上 下载地址:点击这里开始下载 二、解压并上传 Discuz! X2.5 程序到服务器且修改相应目录权限 1、上传 Discuz! X2.5 程序到服务器上 解压缩得到如下图所示的三个文件: upload 这个目录下面的所有文件是我们需要上传到服务器上的可用程序文件; readme 目录为产品介绍、授权、安装、升级、转换以及版本更新日志说明; utility 目录为论坛附带工具,包括升级程序。 将其中 upload 目录下的所有文件使用 FTP 软件以二进制方式(常见 FTP 软件二进制的设置方法:点击查看详细说明)上传到空间。如下图所示: ———————————————————————————————————————青年论坛https://www.sodocs.net/doc/5014881745.html,/电影吧https://www.sodocs.net/doc/5014881745.html,/ 欢迎访问

2、设置相关目录的文件属性,以便数据文件可以被程序正确读写 使用 FTP 软件登录您的服务器,将服务器上以下目录、以及该目录下面的所有文件的属性设置为 777,Win 主机请设置internet 来宾帐户可读写属性。 ./config/config_global.php ./config/config_ucenter.php ./config ./data ./data/avatar ./data/plugindata ./data/template ./data/threadcache ./data/attachment ./data/attachment/album ./data/attachment/forum ./data/attachment/group ./data/log ./uc_client/data/cache ./uc_server/data/ ./uc_server/data/cache ./uc_server/data/avatar ./uc_server/data/backup ./uc_server/data/logs ./uc_server/data/tmp ./uc_server/data/view 关于目录权限修改可以参考:点击查看详细说明 三、安装过程 上传完毕后,开始在浏览器中安装 Discuz! X2.5,在浏览器中运行 https://www.sodocs.net/doc/5014881745.html,/bbs/install/开始全新安装(其中https://www.sodocs.net/doc/5014881745.html,/bbs 为你的站点访问地址)

(完整版)《JavaWeb程序开发入门》课后练习(含答案)

第一章 【测一测】 1、请编写一个格式良好的XML文档,要求包含足球队一支,队名为Madrid,球员5人:Ronaldo、Casillas、Ramos、Modric、Benzema;篮球队一支,队名为Lakers,队员2人:Oneal,Bryant。要含有注释。 2、在XML Schema文档中,定义一个雇员的年龄为18~58周岁之间。请写出相应的元素声明。 ------第1题答案------ <球队列表> <球队类型="足球队"> <队名>Madrid <队员> <姓名>Ronaldo <姓名>Casillas <姓名>Ramos <姓名>Modric <姓名>Benzema <球队类型="篮球队"> <队名>Lakers <队员> <姓名>Oneal <姓名>Bryant ------第2题答案------

第二章 【测一测】 1、如何将web应用发布到tomcat上localhost主机,请写出至少3种实现方式? 2、请问在chapter02应用的web.xml文件中进行哪些配置,可以将welcome.html页面配置成该应用的默认页面? ------第1题答案------ 1、直接将web应用部署到tomcat/webapps下 2、将web应用通过tomcat/conf/server.xml进行配置 3、创建一个xml文件,并配置web应用信息,将xml文件放置tomcat\conf\Catalina\localhost ------第2题答案------ 在web-app标签中进行如下配置即可: welcome.html 第三章 【测一测】 1、简述HTTP1.1协议的通信过程? 2、简述POST请求和GET请求有什么不同? ------第1题答案------ 1、客户端与服务器端建立TCP连接。

相关主题