jsp+javaScript结合dom4j动态生成网站配置文件

AutoCAD 2024 LISP实用技巧:自定义快捷命令与高效绘图工具集 本文详细介绍了如何在AutoCAD 2024中部署和使用LISP脚本,打造高效绘图工具集。通过自定义快捷命令,如WFF(超级文字查找替换)、GQT(图层隔离)和LLTJ(智能长度统计),可大幅简化图层管理、文字编辑和测量统计等重复性操作,显著提升绘图效率。 阅读详情

 

 

 

   
   
前两天项目经理给我个问题让我玩,在jsp程序中动态生成xml网站配置程序,大概的模样是
Common.xml
<?xml version="1.0" encoding="UTF-8"?>
<page>
<item>
  <lanmu>
    <module>首  页</module>
    <superlink>../cn/index.jsp</superlink>
  </lanmu>
  <lanmu>
    <module>人才信息</module>
    <superlink>../personal/more.jsp?type=1</superlink>
  </lanmu>
  <lanmu>
    <module>招聘信息</module>
    <superlink>../enterprise/more.jsp?type=1</superlink>
  </lanmu>
  <lanmu>
    <module>企业风采</module>
    <superlink>../qiye/more.jsp?type=1</superlink>
  </lanmu>
  <lanmu>
    <module>新闻中心</module>
    <superlink>../index/index.jsp</superlink>
  </lanmu>
  <lanmu>
    <module>建议留言</module>
    <superlink>../sony/index.jsp</superlink>
  </lanmu>
  <lanmu>
    <module>使用说明</module>
    <superlink>../jianjie/index.jsp</superlink>
  </lanmu>
    
  <warning>
    <manual>服务声明 </manual>
    <link>../cn/index.jsp</link>
  </warning>
  <warning>
    <manual>| 联络我们 </manual>
    <link>http://wangrunxin</link>
  </warning>
   <warning>
    <manual>| 关于我们 </manual>
    <link>../personal/more.jsp?type=1</link>
  </warning>
  <warning>
    <manual>| 法律声明 </manual>
    <link>../enterprise/more.jsp?type=1</link>
  </warning> 
  <warning>
    <manual>| 帮助 </manual>
    <link>../index/index.jsp</link>
  </warning> 
   <warning>
    <manual>| 更多友情链接</manual>
    <link>../index/index.jsp</link>
  </warning> 
</item>
<toppage>
    <advt>images/wanjie_banner.gif </advt>
</toppage>
<webhead>
    <title>中铁十三局集团第五工程有限公司财务部</title>
</webhead>
<webfoot>
  <company>中铁十三局集团第五工程有限公司财务部</company>
  <tel>电话:传真:邮编:130033 </tel>
  <email>wangrunxin@hotmail.com</email>
  <copyright>地址:长春市 吉ICP备05002347号</copyright>
</webfoot>
<bgcolor>
 <value>#ffffff</value>
</bgcolor>
<background>
 <value>#ffffff</value>
</background>
<friendship>
  <linkto1>
    <home>银河公司</home>
    <homepage>http://www.yhweb.com</homepage>
  </linkto1>
  <linkto2>
    <home>大连IT人才网</home>
    <homepage>http://www.dlithr.com</homepage>
  </linkto2>
  <linkto3>
    <home>中华英才网</home>
    <homepage>http://www.chinahr。com</homepage>
  </linkto3>
  <linkto4>
    <home>招聘网</home>
    <homepage>http://www.51job.com</homepage>
  </linkto4>
</friendship>
<websub>
<sub1>药 品 招 商</sub1><link1>../comm/index.jsp</link1>
<sub2>生 产 技 术</sub2><link2>../jianjie/shengchanjishu.jsp</link2>
<sub3>荣 誉 证 书</sub3><link3>../comm/index.jsp</link3>
</websub>
</page>

这个common.xml中重复的节点是动态的,单独的节点是静态的,研究了很久,也找了很多资料,
现在把心得给大家分享一下o(∩_∩)o…


首先们建立这么一个common.jsp
<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
</head>
<body>
<script language="javascript">
var i=0;
function addFile() {
i++;
currRow=conditionTable.insertRow();
cellc=currRow.insertCell();
cellcContext= '<input type="text" NAME="lanmu">栏目:输入格式为:(首页@index.jsp 冷漠大神@Iloveyou.jsp)<br>';
cellc.innerHTML=cellcContext;
}
function addwarning() {
i++;
currRow=conditionTable.insertRow();
cellc=currRow.insertCell();
cellcContext= '<input type="text" NAME="warning">warning:输入格式为:(首页@index.jsp 冷漠大神@Iloveyou.jsp)<br>';
cellc.innerHTML=cellcContext;
}
function addyouq() {
i++;
currRow=conditionTable.insertRow();
cellc=currRow.insertCell();
cellcContext= '<input type="text" NAME="youq">添加友情连接:输入格式为:(冷漠大神@http://qiulovehack.skpay.net)<br>';
cellc.innerHTML=cellcContext;
}
function addwebsub() {
i++;
currRow=conditionTable.insertRow();
cellc=currRow.insertCell();
cellcContext= '<input type="text" NAME="websub">添加websub:输入格式为:(药品招商@../comm/index.jsp)<br>';
cellc.innerHTML=cellcContext;
}
</script>
<form action="common2.jsp" name="form" method="post">
<a href="javascript:void(addFile());" >添加栏目</a>
<a href="javascript:void(addwarning());" >添加warning</a>
<a href="javascript:void(addyouq());" >添加友情连接</a>
<a href="javascript:void(addwebsub());" >添加websub</a>
<div id="fileDiv" style='height:150px;top:150px;left:0px;overflow-x:auto;overflow-y:auto ;border-style:outset;border-width:1pt;border-color: black;'>
<table id=conditionTable border=1 >
</table>
</div>
toppage_advt<input type="text" name="toppage_advt">
web_head<input type="text" name="web_head">
<hr width="500" align="left">
foot_company<input type="text" name="foot_company">
foot_tel<input type="text" name="foot_tel">
foot_email<input type="text" name="foot_email">
foot_copyright<input type="text" name="foot_copyright">
<hr width="500" align="left">
bgcolor<input type="text" name="bgcolor">
background<input type="text" name="background">
<input type="submit" value="生成common.xml文件"/>
</form>
</body>
</html>
这个common.jsp中有javaScript因为要动态的往xml里添加节点嘛,所以必须得用到javaScript啦,form表单会提交到common2.jsp

common2.jsp
<%@page contentType="text/html"%>
<%@page pageEncoding="gbk"%>
<%@ page import="cn.CCmingzhou.jsp.Chinese,test.common,java.util.*" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
    <%
       Chinese qiu=new Chinese();
       String lanmu2[] = request.getParameterValues("lanmu");
       String warning2[]=request.getParameterValues("warning");
       String youq2[]=request.getParameterValues("youq");
       String websub2[]=request.getParameterValues("websub");
       String toppage_advt=request.getParameter("toppage_advt");
       String web_head=request.getParameter("web_head");
       String foot_company=request.getParameter("foot_company");
       String foot_tel=request.getParameter("foot_tel");
       String foot_email=request.getParameter("foot_email");
       String foot_copyright=request.getParameter("foot_copyright");
       String bgcolor=request.getParameter("bgcolor");
       String background=request.getParameter("background");
      
       List lanmu=new ArrayList();
       for(int i=0;i<lanmu2.length;i++)
       {
           lanmu.add(qiu.getGBK(lanmu2[i]));
           out.println()
       }
       List warning=new ArrayList();
       for(int i=0;i<warning2.length;i++)
       {
           warning.add(qiu.getGBK(warning2[i]));
       }
       List youq=new ArrayList();
       for(int i=0;i<youq2.length;i++)
       {
           youq.add(qiu.getGBK(youq2[i]));
       }
       List websub=new ArrayList();
       for(int i=0;i<websub2.length;i++)
       {
           websub.add(qiu.getGBK(websub2[i]));
       }
       common c=new common();
       c.createCommon(lanmu,warning,toppage_advt,qiu.getGBK(web_head),qiu.getGBK(foot_company),qiu.getGBK(foot_tel),qiu.getGBK(foot_email),qiu.getGBK(foot_copyright),bgcolor,background,youq,websub);
      
 %>
    </body>
</html>
cn.CCmingzhou.jsp.Chinese这个类是处理中文
test.common这个类就是重点的啦,我们就靠它去实现生成common.xml文件了

common.java
/*
 * common.java
 *
 * Created on 2007年11月6日, 上午10:02
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package test;
import java.util.ArrayList;
import org.dom4j.*;
import org.dom4j.io.*;
import java.io.*;
import java.util.Iterator;
import java.util.List;

/**
 *冷漠大神 qq 361619004
 * @author Angel
 */
public class common {
   
    /** Creates a new instance of common */
    public common() {
    }
   
    /**
     *创建common.xml文件
     *
     */
    public void createCommon(List lanmu,List warning,
            String toppage_advt,String web_head,
            String foot_company,String foot_tel, String foot_email,String foot_copyright,
            String bgcolor,String background,
            List friendship,List websub)
    {
       
        String path=null;
        path=this.getClass().getResource("/").toString();
 path=path.substring(6,path.length()-8)+"common.xml";
        //System.out.println("love "+path);
       
        Document document=DocumentHelper.createDocument();
        Element page=document.addElement("page");
        Element item=page.addElement("item");
        for(int i=0;i<lanmu.size();i++)
        {
            String qian="";
            String hou="";
            String zong=(String)lanmu.get(i);
            int zz=zong.indexOf("@");
            qian=zong.substring(0,zz);
            hou=zong.substring(zz+1);
            Element lanmu2=item.addElement("lanmu");
            Element module=lanmu2.addElement("module");
                module.setText(qian);
            Element superlink=lanmu2.addElement("superlink");
                superlink.setText(hou);
        }
        for(int i=0;i<warning.size();i++)
        {
            String qian="";
            String hou="";
            String zong=(String)warning.get(i);
            int zz=zong.indexOf("@");
            qian=zong.substring(0,zz);
            hou=zong.substring(zz+1);
            Element lanmu2=item.addElement("warning");
            Element module=lanmu2.addElement("manual");
                module.setText(qian);
            Element superlink=lanmu2.addElement("link");
                superlink.setText(hou);
        }
        Element toppage=page.addElement("toppage");
            Element advt=toppage.addElement("advt");
            advt.setText(toppage_advt);
           
        Element webhead=page.addElement("webhead");
            Element title=webhead.addElement("title");
            title.setText(web_head);
           
        Element foot=page.addElement("webfoot");
            Element company=foot.addElement("company");
            company.setText(foot_company);
            Element tel=foot.addElement("tel");
            tel.setText(foot_tel);
            Element email=foot.addElement("email");
            email.setText(foot_email);
            Element copyright=foot.addElement("copyright");
            copyright.setText(foot_copyright);
           
        Element bg=page.addElement("bgcolor");
            Element bgv=bg.addElement("value");
            bgv.setText(bgcolor);
        Element back=page.addElement("background");
            Element backv=back.addElement("value");
            backv.setText(background);
       
        Element youq=page.addElement("friendship");
        for(int i=0;i<friendship.size();i++)
        {
            int s=i+1;
            Element linkto=youq.addElement("linkto"+s);
             String qian="";
            String hou="";
            String zong=(String)friendship.get(i);
            int zz=zong.indexOf("@");
            qian=zong.substring(0,zz);
            hou=zong.substring(zz+1);
            Element home=linkto.addElement("home");
                home.setText(qian);
            Element homepage=linkto.addElement("homepage");
                homepage.setText(hou);
        }
        Element sub=page.addElement("websub");
        for(int i=0;i<websub.size();i++)
        {
            int aa=i+1;
             String qian="";
            String hou="";
            String zong=(String)websub.get(i);
            int zz=zong.indexOf("@");
            qian=zong.substring(0,zz);
            hou=zong.substring(zz+1);
            Element sub2=sub.addElement("sub"+aa);
                sub2.setText(qian);
            Element link=sub.addElement("link"+aa);
                link.setText(hou);
        }
        /*
        StringWriter sw = new StringWriter();
         XMLWriter writer = null;
         OutputFormat format = OutputFormat.createPrettyPrint();
         format.setEncoding("GBK");
          try {
           writer = new XMLWriter(format);
           writer.setWriter(sw);
           writer.write(document);
          } catch (Exception ex) {
           ex.printStackTrace();
          }
         
         */
        try{
        XMLWriter output = new XMLWriter(
            new FileWriter( new File(path)));
            output.write( document );
            output.close();
            //System.out.println(path);
            }
         catch(IOException e){System.out.println(e.getMessage());}
       
       
    }
   
    public static void main(String args[])
    {
        List lanmu=new ArrayList();
        lanmu.add("首页@index.jsp");
        lanmu.add("新闻中心@news.jsp");
        lanmu.add("图片管理@images.jsp");
        lanmu.add("体育频道@tiyu.jsp");
        lanmu.add("帮助@help.jsp");
        lanmu.add("新闻@love.jsp");
       
        List warning=new ArrayList();
        warning.add("服务声明@fuwu.jsp");
        warning.add("联系我们@wangrunxin.jsp");
        warning.add("更多友情连接@lianjie.jsp");
       
        String toppage_advt="images/wanjie_banner.gif";
        String web_head="中铁十三局集团第五工程有限公司财务部";
       
        String foot_company="中铁十三局集团第五工程有限公司财务部";
        String foot_tel="电话:传真:邮编:130033 ";
        String foot_email="wangrunxin@hotmail.com";
        String foot_copyright="地址:长春市 吉ICP备05002347号";
       
        String bgcolor="#ffffff";;
        String background="#ffffff";
       
        List youq=new ArrayList();
        youq.add("银河公司@http://www.yhweb.com");
        youq.add("大连IT人才网@http://www.dlithr.com");
        youq.add("中华英才网@http://www.chinahr.com");
       
        List websub=new ArrayList();
        websub.add("药品招商@../comm/index.jsp");
        websub.add("生产技术@../jianjie/shengchanjishu.jsp");
        websub.add("荣誉证书@../comm/index.jsp");
       
        new common().createCommon(lanmu,warning,toppage_advt,web_head,foot_company,foot_tel,foot_email,foot_copyright,bgcolor,background,youq,websub);
    }
   
   
}

这个执行之后会把common.xml生成到WEB-INF/目录,大家如果想看看结果的话那就自己把这些东西都考过去自己运行一下吧 o(∩_∩)o…


作者:高秋
网名:冷漠大神
Qq:361619004
Mail:hackq@163.com
Time:2007年11月9日星期五 

【运筹学】什么是基变量?对于线性规划问题中“基”概念的理解(3月3日学习笔记) 在学习《线性规划与目标规划》的过程中,课程的主讲老师郭韧给出了对于基概念的定义如下图 图片来源:运筹学(中国大学mooc网) 由此我产生了几个疑惑:1.如何理解B是线性规划问题的一个基?2.为什么说最多有CnmC_n^mCnm​个基呢?     1.如何理解B是线性规划问题的一个基?1.如何理解B是线性规划问题的一个基?1.如何理解B是线性规划问题的一个基? 在回答第一个... 阅读详情

相关推荐

【项目分享】RailTracker: 火车票务数据采集与分析

从12306使用爬虫爬取火车站及车次信息、火车票价 通过本项目,我们将带领访问者手把手完成火车票数据采集、数据清洗、数据集成、可视化的一整个流程!

zhushatong的博客 3343

XPath 详解,总结

XPath简介 XPath是W3C的一个标准。它最主要的目的是为了在XML1.0或XML1.1文档节点树中定位节点所设计。目前有XPath1.0和 XPath2.0两个版本。其中Xpath1.0是1999年成为W3C标准,而XPath2.0标准的确立是在2007年。W3C关于XPath的英文 详细文档请见:http://www.w3.org/TR/xpath20/ 。 XPath是一种表达式...

ljl_xyf的专栏 172

Dify部署后访问报502?手把手教你排查和修复Nginx反向代理问题

本文针对Dify部署后常见的502 Bad Gateway错误,提供了从基础容器状态检查到Nginx配置与Docker网络诊断的完整排查流程。详细解析了错误本质,并给出动态服务发现修复与静态IP配置两种解决方案,帮助开发者彻底解决Nginx反向代理问题,确保Dify平台稳定访问。

rnn9storyteller的博客 1096

使用DOM4J来解析xml字符串,也适用于webservice的xml格式报文

先上需要的依赖 <!-- https://mvnrepository.com/artifact/org.dom4j/dom4j --> <dependency> <groupId>org.dom4j</groupId> <artifactId>dom4j</artifactId> <version>2.1.1</version> </dependency> 先上一张概括图 Dom4J的常用方

奔跑的菜鸡 1362

VHDL按键消抖(状态机版本)

检测下降沿:设置一个和,分别代表之前的之前和之前的信号状态,若两个信号key_in_d2=1,key_in_d1=0,他俩的not key_in_d2 and key_in_d1为1,则说明下降沿产生,把它设置为标志位key_flag。延时计数:50MHz的板子每次计数需要20ns,而抖动时间大约为5-10ms。所以取7ms,作为延时时间。可以看见当检测到下降沿时,开始计数计数计满再次检测,若为低电平则为按下按键,否则为抖动。通过检测下降沿来临,延时计数再次检测,如果为低电平则为按键按下。

qq_69639216的博客 1083

数字IC设计避坑指南:为什么477条net的DRV问题无法修复?解析don‘t touch hierarchy的影响

本文深入解析了数字IC后端实现中,因“don't touch hierarchy”约束导致大量DRV违规(如477条net)无法自动修复的根本原因。文章以Cadence Innovus工具为例,详细阐述了DRV修复机制与设计保护约束的冲突原理,并提供了从日志定位、风险评估到分级解除约束的完整实战策略,帮助工程师有效解决此类设计收敛难题。

hope8的博客 288

JSP页面动态生成树形结构

     以公司组织结构为例,建立如下表:   create table t_part(    sjid int not null,---上级部门ID    zjid int not null,---自己所在部门ID    zjmc varchar(50),----自己部门名称    zjjs text, ----------自己介绍   ) insert into t_part value...

麦田小屋 800

SAP-ABAP:BAPI_INSPOPER_RECORDRESULTS 记录检验操作结果更新检验批状态详细解析

SAP-ABAP:BAPI_INSPOPER_RECORDRESULTS 记录检验操作结果更新检验批状态详细解析

baidu_35680696的博客 964

jsp ajax网站代码解析,JSPajax

JSP+Ajax实例演示\使用说明.txt................\webapp\ajax\index.html................\......\....\intro.html................\......\....\menu.html................\......\....\title.gif................\......\....

weixin_34765290的博客 539

31、双相不锈钢直齿轮加工与性能研究及人工神经网络在焊接中的应用

本文研究了双相不锈钢直齿轮在不同加工方法(WEDM与滚齿加工)下的磨损行为,分析了表面粗糙度、齿厚变化、磨损率及润滑性能随转速的变化规律,并对比了两种工艺的优劣。同时,探讨了人工神经网络(ANN)在AA7050铝合金搅拌摩擦焊中的应用,通过建立工艺参数与焊接质量之间的预测模型,实现了对焊缝硬度和峰值温度的准确预测。研究为高性能齿轮制造和铝合金焊接提供了理论支持和技术参考,并提出了未来在润滑优化、加工工艺改进及智能控制方面的研究方向。

ggg99的专栏 150

基于语义分割的实时建图:HDMap动态更新

基于语义分割的实时建图:HDMap动态更新​ ,人工智能,计算机视觉,大模型,AI,本文围绕基于语义分割的实时建图技术在HDMap动态更新中的应用展开,介绍了语义分割基础、HDMap概述、相关实时建图技术、动态更新关键技术、系统性能评估指标、实际应用案例、面临的挑战与解决方案及未来发展趋势。阐述了该技术如何利用传感器数据和语义分割算法,解决传统HDMap构建与更新的弊端,分析了其在精度、实时性、鲁棒性等方面的表现,以及在自动驾驶和智能交通中的应用,还探讨了现存问题及未来优化方向。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 22万+

jsp mvc案例

 mvc的简单架构: 1.搭建开发环境  1.1导开发包     dom4j开发包     jstl开发包     beanutils开发包     log4j开发包 1.2创建组织程序的包      cn.it.domin     cn.it.dao     cn.it.dao.impl     cn.it.service     cn.it.service.impl...

qq_38125626的博客 616

华为OD机试 - 项目规划 - 深度优先搜索dfs(Java 2024 C卷 100分)

每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天优快云在线答疑。

学Java,找哪吒 1153

常用JSP资源

Java SE 8 API文档:http://http://docs.oracle.com/javase/8/docs/api/ Java EE 7 API文档:http://http://docs.oracle.com/javaee/7/api/ JSTL 官方网站:https://jstl.java.net/download.html JFreechat官方网站:http://http:

u010523770的专栏 619

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

jsp、jstl、MVC模式

Jsp 标签 <jsp:useBean id=“” class=“” scope=“”>:表示查找id后面的类,如果没有的话就创建。 id后面跟的是实例对象的名称,比如person class后面的完整类名 比如com.cn.dom.person scope指的是域的范围 只能是page、request、session、appl...

weixin_34273481的博客 134

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

企业门户网站前后台开发——油画商城

设计技巧:MVC模式的视图,因为显示jsp时,数据来自Controller,在觉大多数情况下,jsp文件不允许直接访问,要先访问Controller再跳转到jsp,所以将jsp放再/WEB-INF目录下,无法直接放问jsp,通过Controller跳转访问。一般比较固定,上方是导航栏,包含系统的logo和名称,右上角是登录信息(本次开发暂不涉及登录注册的功能,之后的项目再详细研究),左侧是功能区,实现功能跳转,右侧主题页面功能展示区。前台:可以分页展示油画信息,还可以根据分类展示特定类别的油画。...

日常记录 960

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

JavaEE学习大纲

一个JavaCoder学习WEB的路径 主要是注重效率,别揪着一个HTML就看一天,许多东西基本了解个大概. 剩下的就是熟能生巧了!不敲代码的程序员就不是程序员好么! 以下的时间只是估测的了解大概知识的时间 1.HTML(1小时):了解标签即可 2.CSS(2小时):知道一些属性,例如id,class,style.知道选择器 3.JS(2小时):知道语句如何写,知道Browser对象,学会使用基本...

qq_38827988的博客 398

java后端主要做什么_java后端开发需要学什么

1java后端开发需要学什么互联网的时代就会产出时代的成果,成果也将不止一个,虽然我要了解就可以了,但是我们学会了一种会更好。今天我们就了解一下java,毕竟java现在是真的非常流行,而想学的人也很多。下面小编给大家说说java后端开发需要学什么,希望能对你有些帮助。首先要学习java的基础知识。不要被新技术迷惑,所谓万变不离其宗,新技术都是基于java的基础之上,如果基础不扎实,对于这些新技术...

weixin_39528366的博客 2325

JAVA-WEB

1、Java 解析 XML 文件 DOM4J。 2、MySql 数据库的应用、多表连接查询的应用。 3、Jsp 和 Servlet 应用。 4、Http 协议解析。 5、Tomcat 服务器的应用配置。 6、WebService 服务配置应用。     命名: 与用户打交道:UI(user interface)包 添加,与数据库交互:dao(Dataaccess Object)

sinat_24196195的博客 515

javaweb学习总结(二十二):基于Servlet+JSP+JavaBean开发模式的用户登录注册

一、Servlet+JSP+JavaBean开发模式(MVC)介绍  Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp负责数据显示,javabean负责封装数据。 Servlet+JSP+JavaBean模式程序各个模块之间层次清晰,web开发推荐采用此种模式。  这里以一个最常用的用户登录注册程序来讲解Servl...

hellozhxy的博客 2191

JavaEEDay31 XML

tags: XML JavaEEDay31 XML @toc 一、前言 HTML:HyperText Markup Language 超文本标记语言 ,不经过任何的编译,浏览器通过标记进行对应的响应; CSS: 层级样式表; JavaScript: 让页面完成一些动态的特效; HTML+CSS+JavaScript:用来制作静态网站 HTML 由标签组成,不区分大小写,是 ...

GJXAIOU 的 优快云 博客 235

XML和JSON

XML XML(EXtensible Markup Language),可扩展标记语言 特点 XML与操作系统、编程语言的开发平台无关 实现不同系统之间的数据交换 作用: 数据交互 配置应用程序和网站 Ajax基石 基于XML的DOM4J: 一,新建一个XML文件 <?xml version="1.0" encoding="GBK"?> <Books>...

weixin_33787529的博客 231

web网站结构

war结构 -war + META-INF/ + WEB-INF/ | + classes/ | | + ServletA.class | | + ServletB.class | | + ........ | | | + lib/ | | + dom4j-1.4.1.jar | | + mail-1.4.1.

fox_lht的专栏 1591

ewebeditor上传文件大小及在线编辑器jsp版使用心得

做项目大家都少不了要跟html在线编辑器打交道,这里我把我的一些使用经验及遇到的问题发出来和大家交流一下。 Ewebeditor使用说明: 一、部署方式: 1、直接把压缩目录中的文件拷贝到您的网站发布目录下; 2、配置对应WEB-INF下文件,把eWebEditor文件夹下WEB-INF/web.xml中 display-name>defaultrootdisplay-name>

JellyLv的专栏 3012

电子书城练手项目

功能模块:注册,登陆,购物车,订单 使用Servlet+JSP实现 开发步骤: 1.导入静态页面 2.修改为动态页面 3.建表 4.导入jar包 ojdbc standard jstl log4j dom4j 5.建立目录结构 bean 实体类 util exception jdbc dao impl service impl web filter l...

WiQin 846

开发WEB项目的步骤

1.搭建开发环境 1.1 导开发包 dom4j开发包 jstl开发包 (页面作显示) beanUtils开发包 log4j开发包 1.2 创建组织程序的包 com.baidu.domain,网站的实体,放javabeancom.baidu.dao,数据的来源com.baidu.dao.implcom.baidu.service,对数据处理com.baidu.service.impl co...

weixin_30478619的博客 131
上一篇: 冷漠大神中间件
下一篇: sqlserver&amp;&amp;mysql分页sql语句总结
hackq
博客等级 码龄20年 19粉丝 14原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值