`

发表代码测试

阅读更多
PetStore 代码 MainServlet.java
package com.sun.j2ee.blueprints.waf.controller.web;

import java.io.PrintWriter;
import java.io.OutputStreamWriter;
import java.io.IOException;
import java.util.HashMap;
import java.util.Locale;

import javax.servlet.ServletException;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletConfig;

// J2EE Imports
import javax.naming.NamingException;

// WAF imports
import com.sun.j2ee.blueprints.waf.util.I18nUtil;
import com.sun.j2ee.blueprints.waf.exceptions.GeneralFailureException;
import com.sun.j2ee.blueprints.util.tracer.Debug;
import com.sun.j2ee.blueprints.waf.controller.web.URLMappingsXmlDAO;
import com.sun.j2ee.blueprints.waf.controller.web.RequestProcessor;
import com.sun.j2ee.blueprints.waf.controller.web.util.WebKeys;
import com.sun.j2ee.blueprints.waf.util.JNDINames;
import com.sun.j2ee.blueprints.waf.controller.web.flow.FlowHandlerException;
import com.sun.j2ee.blueprints.waf.controller.web.flow.ScreenFlowManager;
import com.sun.j2ee.blueprints.waf.controller.web.WebController;

public class MainServlet extends HttpServlet {

    private ServletContext context;
    private HashMap urlMappings;
    private HashMap eventMappings;
    private Locale defaultLocale = null;

    private RequestProcessor requestProcessor;


    public void init(ServletConfig config) throws ServletException {
        String defaultLocaleString = config.getInitParameter("default_locale");
        defaultLocale = I18nUtil.getLocaleFromString(defaultLocaleString);
        this.context = config.getServletContext();
        String requestMappingsURL = null;
        try {
            requestMappingsURL = context.getResource("/WEB-INF/mappings.xml").toString();
        } catch (java.net.MalformedURLException ex) {
            System.err.println("MainServlet: initializing ScreenFlowManager malformed URL exception: " + ex);
        }
       urlMappings = URLMappingsXmlDAO.loadRequestMappings(requestMappingsURL);
       context.setAttribute(WebKeys.URL_MAPPINGS, urlMappings);
       eventMappings = URLMappingsXmlDAO.loadEventMappings(requestMappingsURL);
       context.setAttribute(WebKeys.EVENT_MAPPINGS, eventMappings);
       getScreenFlowManager();
       getRequestProcessor();
    }

     public  void doGet(HttpServletRequest request, HttpServletResponse  response)
        throws IOException, ServletException {
        doProcess(request, response);
    }

    public  void doPost(HttpServletRequest request, HttpServletResponse  response)
        throws IOException, ServletException {
        doProcess(request, response);

    }

    private void doProcess(HttpServletRequest request, HttpServletResponse response)
                   throws IOException, ServletException {
        // set the locale of the user to default if not set
        if (request.getSession().getAttribute(WebKeys.LOCALE) == null) {
            request.getSession().setAttribute(WebKeys.LOCALE, defaultLocale);
        }
        try {
                 getRequestProcessor().processRequest(request);
                 getScreenFlowManager().forwardToNextScreen(request,response);
        } catch (Throwable ex) {
            String className = ex.getClass().getName();
            String nextScreen = getScreenFlowManager().getExceptionScreen(ex);
            // put the exception in the request
            request.setAttribute("javax.servlet.jsp.jspException", ex);
            if (nextScreen == null) {
                // send to general error screen
                ex.printStackTrace();
                throw new ServletException("MainServlet: unknown exception: " + className);
            }
            context.getRequestDispatcher(nextScreen).forward(request, response);
      }



    }

    private RequestProcessor getRequestProcessor() {
         RequestProcessor rp = (RequestProcessor)context.getAttribute(WebKeys.REQUEST_PROCESSOR);
         if ( rp == null ) {
             rp = new RequestProcessor();
             rp.init(context);
             context.setAttribute(WebKeys.REQUEST_PROCESSOR, rp);
        }
       return rp;
    }

    private ScreenFlowManager getScreenFlowManager() {
            ScreenFlowManager screenManager = (ScreenFlowManager)context.getAttribute(WebKeys.SCREEN_FLOW_MANAGER);
            if (screenManager == null ) {
                screenManager = new ScreenFlowManager();
                screenManager.init(context);
                context.setAttribute(WebKeys.SCREEN_FLOW_MANAGER, screenManager);
             }
        return screenManager;
    }

    /**
     * The UrlMapping object contains information that will match
     * a url to a mapping object that contains information about
     * the current screen, the HTMLAction that is needed to
     * process a request, and the HTMLAction that is needed
     * to insure that the propper screen is displayed.
    */

    private URLMapping getURLMapping(String urlPattern) {
        if ((urlMappings != null) && urlMappings.containsKey(urlPattern)) {
            return (URLMapping)urlMappings.get(urlPattern);
        } else {
            return null;
        }
    }
}





        //读取Hibernate.cfg.xml配置文件,并读到内存中为后续操作作准备 
        Configuration config = new Configuration().configure(); 
        //SessionFactory缓存了生成的SQL语句和Hibernate在运行时使用的映射元数据。 
        SessionFactory sessionFactory = config.buildSessionFactory(); 
        //Session是持久层操作的基础,相当于JDBC中的Connection。 
        Session session = sessionFactory.openSession(); 

        try{  
//为保持事务的原子性,必须捕捉异常。所有事务都放在这一代码块里。 
            //操作事务时(增、删、改)必须显式的调用Transaction(默认:autoCommit=false)。 
            Transaction tx = session.beginTransaction(); 
            for(int i=0; i<=1000; i++){ 
              Student stu = new Student(...); 
              session.save(stu);//set value to stu 
              //批量更新:为防止内存不足,分成每20个一批发送过去。  
              if(i%20==0){session.flush();session.clear();}//不是大批量更新,则不需要写这一行 
              //默认时,会自动flush:查询之前、提交时。 
            } tx.commit();//提交事务,Hibernate不喜欢抛异常,如有需要,自己捕捉。 

            //查询方法。如果有必要,也可以用事务(调用Transaction)  
            String hql = "from Student s where s.stuNo like ? and s.Sal > ?";//Student是类而不是表 
            List list = session.createQuery(hql) 
                               .setString(0, "a00_").setDouble(1, 3000.0)//设置HQL的第一二个问号取值 
                               .list();//Hibernate里面,没有返回值的都默认返回List 
            StringBuffer sb = new StringBuffer(); 
            for(Student st :(List<Student>)list){//(List<Student>)强制类型转换 
              sb.append(st.getOid()+"  "+st.getName()+"\n");//拿到Student类里的属性 
            }System.out.print(sb.toString());//直接打印sb也可以,它也是调用toString,但这样写效率更高 
        } catch (HibernateException e) { 
            e.printStackTrace(); 
            session.getTransaction().rollback();//如果事务不成功,则rollback 
        } finally { 
            session.close();//注意关闭顺序,session先关,Factory最后关(因为它可以启动多个session)  
            sessionFactory.close();//关闭SessionFactory,虽然这里没看到它,但在HbnUtil里开启了。 
        } 
分享到:
评论

相关推荐

    SIFT算法Matlab测试代码的资源

    加拿大University of British Columbia 大学计算机科学系教授 David G....作者在其学术网站上发表的Matlab程序代码(注意,这个程序代码的初始版本是 D. Alvaro and J.J. Guerrero, 来自Universidad de Zaragoza。)

    Android代码-android-unit-testing-tutorial

    本文是一系列发表在我的个人博客,关于安卓单元测试的文章的实例代码。 代码与文章的对应关系如下: Android单元测试: 首先,从是什么开始 代码和测试代码都在what子package下面 Android单元测试(三):JUnit单元测试...

    N层研习01的测试代码

    这是我在研习如何使用LINQ to SQL在N层体系架构中进行开放式并发冲突检查时的一个测试代码。欢迎各位下载。关于此代码的相信说明可以查看:http://blog.csdn.net/GJYSK/archive/2010/10/11/5933250.aspx 如果你只想...

    R语言并行计算spearman相关系数代码和测试文件.zip

    共现(co-occurrence network)网络分析日益成为微生物生态学分析中重要的组成部分,成为目前文章发表的热点技术。利用spearman相关性分析是构建共现网络的重要方法,但由于OTU table往往有成千上万行,用R自带的...

    测试覆盖率

     樱花西街一座不太显眼的大厦里,迈捷实验室技术总监武友文从软件测试说起,以第三方的视角分析了制约国内软件发展的瓶颈,发表了不同意见,提出了自己的建议。 为什么需要软件测试  “我是清华大学77级的学生,...

    STC的测试代码+红外学习遥控器

    没办法要用stc的,居然还有块最老的型号,就凑合着先写了些测试代码,最后选型了60s2做红外学习遥控,其实不需要选这个,画原理图的人图方便随便画了一个,失败的一个项目,个人上传只为留个脚印,也供大家参考 ************...

    R语言并行计算beta-NTI代码和测试文件.zip

    群落构建分析是微生物生态学分析中重要的组成部分,成为目前文章发表的热点技术。beta-NTI(beta nearest taxon index)是对群落构建进行量化的常用指数。beta-NTI的计算需要根据观察数据(OTU表和遗传发育树)多次...

    结合 Transformer 与非对称学习策略的图像检索,2023年发表于中国图象图形学报+源代码+文档说明+模型+数据+数据集

    结合 Transformer 与非对称学习策略的图像检索,2023年发表于中国图象图形学报+源代码+文档说明+模型+数据 - 小白不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行...

    C代码测试覆盖率matlab-ocpp:最优覆盖路径规划

    C代码测试覆盖率matlab 最佳覆盖路径规划器的实现 版权所有 (c) 2017,Juan Irving Vasquez-Gomez,BSD Licese 由以下机构支持制作:Consejo Nacional de Ciencia y Tecnología (CONACYT) 和 Instituto Polité...

    Eclipser:二进制代码灰盒共模测试

    该技术的详细信息可以在我们的论文《二进制代码上的灰盒共模测试》中找到,该论文发表于ICSE 2019。安装Eclipser当前支持Linux ELF二进制文件,并且已经在Debian和Ubuntu上进行了测试。 Eclipser用F#编写,并在...

    重磅灰色关联分析模型Stata代码计算,含测试数据、完整代码及详细过程步骤说明!

    灰色关联分析模型Stata代码完整版详解 (附件含Stata详细计算过程等资料) 步骤非常详细,没有任何跳步 适合实证小白学习 灰色关联分析说明 1.灰色关联模 型分析基本思想(邓聚龙,1985;刘思峰等,2017): 根据...

    [完整][中文][WEB安全测试].(美)霍普.扫描版.pdf

    他也曾对开放式Web应用程序安全项目(0WAsP)的成员就w曲应用测试工具发表过演讲。 目录 序 1 前言 3 第1章 绪论 13 1.1 什么是安全测试 13 1.2 什么是Web应用 17 1.3 Web应用基础 21 1.4 Web应用安全测试 25 1.5 ...

    该课题为基于Matlab的发票识别 可以识别发票里面的编号,金额和日期等多个字段可以进行发表了查询+源代码+文档说明

    该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! &lt;项目介绍&gt; 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! ...

    代码大全pdf版

    &lt;br&gt; &lt;br&gt; A、新特性 --------------------------------------------------------------------------- 《代码大全》电子版 1.0 新增特性如下: 1、在测试版的基础上修改了500处以上的缺陷,主要...

    超棒的基于.net的支持向量机及其分类测试代码

    该支持向量机分类程序基于.NET2008编写,并配有简单直观的测试程序,可以直接用于影像分类,用于高光谱遥感影像分类精度达到90%,水体更是达到99%,植被达97%,是不可多多得的优秀的分类算法,用于研究或发表科技...

    代码大全中文版

    但是直到现在,这些技术中的大部分仍然没有在软件编程中广泛采用,其主要原因是这些研究成果主要发表在高度专业性的学术刊物中,普通的程序员们无心顾及。Sridhar Raghavan 和 Donald Chand(1989)的研究表明,一...

    MNIST 神经网络训练和测试:用于训练和测试简单神经网络以识别 0 到 9 之间的单个数字的完整代码和函数-matlab开发

    用于训练和测试简单神经网络以识别 0 到 9 之间的单个数字的完整代码和函数。该网络有两个隐藏层,分别具有 80 和 60 个神经元(易于更改)。 准确度约 97%。 如果您发现任何更好的参数,请发表评论! 如何运行: 1...

    ThinkPHP在线校园论坛网站+源代码+文档说明+数据库.zip

    该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! &lt;项目介绍&gt; 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! ...

    rest_test_mocha:使用 Mocha 测试 RESTful API 的幻灯片和代码

    Ombud 的乔纳森·格里格斯 (Jonathan Griggs) 和蒂姆·迈尔斯 (Tim Myers) 于 2015 年 2 月 24 日在 RefactorU 上发表的客座演讲 甲板 幻灯片是使用reveal.js 实现的,可以通过克隆这个存储库并从命令行运行以下命令...

    MFC Windows程序设计(第2版修订版)--源代码

     本书随附的CD-ROM包括书中全部示例程序的源代码,它们都在Visual C十十6.0和MFC 6.0环境下编写、编译而成,并在Win32平台上测试通过。如果没有特别说明它们都与Windows 98、WindowsNT4.0及Windows 2000兼容,...

Global site tag (gtag.js) - Google Analytics