理工學(xué)院信息技術(shù)工程師實(shí)訓(xùn)實(shí)訓(xùn)報(bào)告
-
資源ID:34693509
資源大?。?span id="7zhwbet" class="font-tahoma">284.50KB
全文頁數(shù):21頁
- 資源格式: DOC
下載積分:10積分
快捷下載
會(huì)員登錄下載
微信登錄下載
微信掃一掃登錄
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開,此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請(qǐng)知曉。
|
理工學(xué)院信息技術(shù)工程師實(shí)訓(xùn)實(shí)訓(xùn)報(bào)告
編 號(hào): B04900056學(xué) 號(hào): 實(shí)訓(xùn)報(bào)告教 學(xué) 院計(jì)算機(jī)課程名稱信息技術(shù)工程師實(shí)訓(xùn)專 業(yè)計(jì)算機(jī)科學(xué)與技術(shù)班 級(jí)姓 名指導(dǎo)教師2014年6月22日目錄一實(shí)訓(xùn)內(nèi)容21、數(shù)據(jù)庫實(shí)現(xiàn)22、功能的實(shí)現(xiàn)33、三大配置文件的主要內(nèi)容31)Struts.xml文件的配置32)web.xml文件的配置53)applicationContext.xml文件的配置64、用戶登陸功能的實(shí)現(xiàn)81)登陸頁面92)用戶登陸的后臺(tái)代碼105、用戶查詢商品功能的實(shí)現(xiàn)101)商品查詢頁面102)商品查詢的后臺(tái)代碼116、商品添加功能的實(shí)現(xiàn)121)商品添加頁面122)商品添加的后臺(tái)代碼14二.程序調(diào)試與測(cè)試161、用戶登陸162、商品查詢163、商品添加17三.結(jié)果分析181、用戶登陸功能182、商品查詢功能183、商品添加功能18四.實(shí)訓(xùn)總結(jié)19一實(shí)訓(xùn)內(nèi)容 1、數(shù)據(jù)庫實(shí)現(xiàn) 1)用戶表的創(chuàng)建 2)訂單表之詳細(xì)表的創(chuàng)建 3)產(chǎn)品表的創(chuàng)建 4)用戶-訂單表的創(chuàng)建 5)訂單項(xiàng)表的創(chuàng)建 6)郵遞表的創(chuàng)建 2、功能的實(shí)現(xiàn) 本網(wǎng)站主要實(shí)現(xiàn)的功能如下: 1)登陸功能:未登錄的用戶可以瀏覽部分商品,但不能購物,只有登陸的用戶可以實(shí)現(xiàn)購物和結(jié)算等功能。 2)注冊(cè)功能:當(dāng)瀏覽者想要通過該網(wǎng)站進(jìn)行購物而又沒有注冊(cè),則可通過該功能實(shí)現(xiàn)注冊(cè)。 3)用戶管理功能:該功能普通用戶無法使用,只有管理者可以使用,通過該功能添加用戶和刪除用戶以及修改用戶的信息等。 4)商品添加功能:管理員可以通過該功能向系統(tǒng)添加商品。 5)商品查詢功能:用戶可以通過該功能查詢自己所需要的商品。6)訂單管理功能:管理員通過該功能管理用戶提交的訂單,并產(chǎn)生貨物配送的信息。3、三大配置文件的主要內(nèi)容1)Struts.xml文件的配置<struts> <package name="struts2" extends="json-default"><action name="usrLoginAction" class="cn.hbpu.Action.UsrLoginAction"><result name="success">/products.jsp</result><result name="error">/products.jsp</result><result name="input">/products.jsp</result></action><action name="clearSession" class="cn.hbpu.Action.ClearSessionAction"><result>/index.jsp</result></action><action name="*ProductManagerAction" class="cn.hbpu.Action.ProductManagerAction" method="1"><interceptor-ref name="fileUpload"><!- 設(shè)置上傳文件類型 -><param name="allowedTypes">image/bmp,image/png,image/jpg,image/pjpeg,image/gif,application/vnd.ms-excel </param><!- 設(shè)置上傳文件大小 -><param name="maximumSize">200000</param></interceptor-ref><!- 必須顯示配置引用struts默認(rèn)的攔截器棧:defaultStack -><interceptor-ref name="defaultStack"></interceptor-ref><!- 設(shè)置上傳路徑 -><param name="savePath">/upload</param><result name="searchproductshow">/products_search_show.jsp</result><result name="guestproductsshow">/products_show.jsp</result><result name="adminproductsshow">/admin_products_show.jsp</result><result name="saveOnesuccess">/admin_products_show.jsp</result><result name="input">/upload_error.jsp</result><result name="index">/index.jsp</result><result name="productdetail">/productdetail.jsp</result></action><action name="registCheckAction" class="cn.hbpu.Action.RegistCheckAction"><result type="json"></result></action><action name="registAction" class="cn.hbpu.Action.RegistAction" ><result>/regist_succ.jsp</result><result name="error">/register.jsp</result></action><action name="*CartManagerAction" class="cn.hbpu.Action.CartManagerAction" method="1"><result name="ok" type="json"></result><result name="cartshow">/cartshow.jsp</result></action><action name="*OrdersManagerAction" class="cn.hbpu.Action.OrdersManagerAction" method=1><result name="checkoutsucc">/checkoutsucc.jsp</result><result name="ordershow">/ordershow.jsp</result></action><action name="*OrderitemManagerAction" class="cn.hbpu.Action.OrderitemManagerAction" method=1><result name="orderitemshow">/orderitem_show.jsp</result></action></package><constant name="struts.i18n.encoding" value="utf-8"></constant><constant name="struts.devMode" value="true"></constant><constant name="struts.multipart.parser" value="jakarta"></constant><constant name="struts.custom.i18n.resources" value="properties/messageResource"/></struts>通過定義不同的action,可以使JSP頁面調(diào)用后臺(tái)程序,是前臺(tái)程序與后臺(tái)程序的連接樞紐。2)web.xml文件的配置<listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>*.action</url-pattern></filter-mapping><filter-mapping> <filter-name>struts2</filter-name> <url-pattern>*.jsp</url-pattern> </filter-mapping><servlet><servlet-name>CheckCodeServlet</servlet-name><servlet-class>cn.hbpu.util.CheckCodeServlet</servlet-class> </servlet> <servlet-mapping><servlet-name>CheckCodeServlet</servlet-name><url-pattern>/authImg</url-pattern> </servlet-mapping></web-app> 該配置文件用來配置控制器,使得JSP頁面的action請(qǐng)求都能夠通過struts的配置文件找到相應(yīng)的后臺(tái)實(shí)現(xiàn)程序。其角色是為action提供激活信號(hào)。3)applicationContext.xml文件的配置<bean id="dataSource"class="mons.dbcp.BasicDataSource"><property name="driverClassName"value="com.mysql.jdbc.Driver"></property><property name="url"value="jdbc:mysql:/localhost:3306/acesys"></property><property name="username" value="root"></property><property name="password" value="123456"></property></bean><bean id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><property name="dataSource"><ref bean="dataSource" /></property><property name="hibernateProperties"><props><prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop><prop key="hibernate.show_sql">true</prop><prop key="hibernate.format_sql">true</prop></props></property><property name="mappingResources"><list><value>cn/hbpu/po/Usr.hbm.xml</value><value>cn/hbpu/po/Product.hbm.xml</value><value>cn/hbpu/po/Orders.hbm.xml</value><value>cn/hbpu/po/Orderitem.hbm.xml</value></list></property></bean><bean id="usrDao" class="cn.hbpu.DAO.impl.UsrDAOHib"><property name="sessionFactory" ref="sessionFactory"></property></bean><bean id="usrService" class="cn.hbpu.service.impl.UsrServiceImpl"><property name="usrDao" ref="usrDao"></property></bean><bean class="cn.hbpu.Action.UsrLoginAction"><property name="usrService" ref="usrService"></property></bean><bean id="productDao" class="cn.hbpu.DAO.impl.ProductImpl"><property name="sessionFactory" ref="sessionFactory"></property></bean><bean id="productService" class="cn.hbpu.service.impl.ProductServiceImpl"><property name="productDAO" ref="productDao"></property></bean><bean id="ordersDao" class="cn.hbpu.DAO.impl.OrdersDAOImpl"><property name="sessionFactory" ref="sessionFactory"></property></bean><bean id="ordersService" class="cn.hbpu.service.impl.OrdersServiceImpl"><property name="ordersDao" ref="ordersDao"></property></bean><bean id="orderitemService" class="cn.hbpu.service.impl.OrderitemServiceImpl"><property name="orderitemDAO" ref="orderitemDAO"></property></bean><bean id="orderitemDAO" class="cn.hbpu.DAO.impl.OrderitemDAOImpl"><property name="sessionFactory" ref="sessionFactory"></property></bean><bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"><property name="sessionFactory" ref="sessionFactory"></property></bean><bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor"><property name="transactionManager" ref="transactionManager"></property><property name="transactionAttributes"><props><prop key="find*,get*">PROPAGATION_REQUIRED,readOnly</prop><prop key="save*,update*,delete*">PROPAGATION_REQUIRED</prop></props></property></bean><bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator"><property name="beanNames"><list><value>usrDao</value><value>productDao</value><value>ordersDao</value><value>orderitemDAO</value></list></property><property name="interceptorNames"><list><value>transactionInterceptor</value></list></property></bean></beans> 該配置文件是配置數(shù)據(jù)庫連接信息以及各個(gè)表的持久化配置,是后臺(tái)操作數(shù)據(jù)庫與數(shù)據(jù)庫之間的連接橋梁,方便系統(tǒng)開發(fā)人員操作數(shù)據(jù)庫。4、用戶登陸功能的實(shí)現(xiàn) 1)登陸頁面index.jsp<head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>AscentWeb電子商務(wù)</title><link href="<%=request.getContextPath()%>/css/index.css" rel="stylesheet" type="text/css" /> <script src="javascript/jquery.js" type="text/javascript"></script><script language="javascript">function denglu()if(form.username.value = "") alert("用戶名不能為空"); form.username.focus(); return false; if(form.password.value = "") alert("密碼不能為空"); form.password.focus(); return false; form.action="<%=request.getContextPath()%>/usrLoginAction.action"form.submit();</script></head><body><div id="login_2"> <div id="Layer1" style="position:absolute; width:300px; height:37px; z-index:1; left: 550px; top:20px;"> <table width="300" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="132" valign="middle"> <img src="<%=request.getContextPath()%>/images/username.jpg" width="61" height="17" align="bottom" /> <input name="username" type="text" size="6"/> </td> <td width="131"><img src="<%=request.getContextPath()%>/images/password.jpg" width="61" height="17" /> <input name="password" type="password" size="6" /> </td> <td width="37"><input type="image" src="<%=request.getContextPath()%>/images/login_1_7.jpg" onclick="return denglu()" width="44" height="17" border="0" alt="登錄"/></td> </tr> </table> </div> </div></body>該頁面通過javascript代碼實(shí)現(xiàn)客戶端檢驗(yàn)用戶信息的填寫時(shí)候符合要求,當(dāng)用戶信息的填寫符合要求時(shí),則調(diào)用usrLoginAction.action,實(shí)現(xiàn)后臺(tái)對(duì)數(shù)據(jù)庫的操作。2)用戶登陸的后臺(tái)代碼login.javapackage cn.hbpu.Action;SuppressWarnings("unchecked")public String execute() throws ExceptionUsr u=usrService.checkUsr(username, password);if(u=null)return ERROR;elseActionContext.getContext().getSession().put("usr", u);return SUCCESS; 該類利用usrService中的checkUsr()方法實(shí)現(xiàn)數(shù)據(jù)庫的查詢功能,并將查詢結(jié)果存放到session里面。5、用戶查詢商品功能的實(shí)現(xiàn) 1)商品查詢頁面Product_Search.jsp:<head><script language="javascript">function check()if(form.searchValue.value = "") alert("請(qǐng)輸入查詢條件!"); form.searchValue.focus(); return false; return true;</script></head><body><form name="form" method="post" action="searchProductManagerAction.action"><table><tr><td class="table_hui"> <div align="right">請(qǐng)選擇:</div></td><td class="table_hui"> <select name="searchName"> <option value="category" selected="selected">類別</option> <option value="productname">名稱</option> <option value="cas">CAS</option> <option value="formula">Formula</option> </select></td> <td><input type=text name="searchValue"/></td></tr><tr><td height="30" class="table_hui"> </td><td height="30" class="table_hui"><input type="submit" name="Submit" value="查詢" onclick="return check();"/></td><td height="30" class="table_hui"><input type="reset" name="Reset" value="取消" /></td></tr></table></form></body>2)商品查詢的后臺(tái)代碼ProductManagerAction.java/根據(jù)選擇字段查詢商品SuppressWarnings("unchecked")public String search()throws ExceptionList search_product_list = productService.findBySearchProperty(this.getSearchName(), this.getSearchValue();ActionContext.getContext().getSession().put("search_product_list",search_product_list);return "searchproductshow"6、商品添加功能的實(shí)現(xiàn) 1)商品添加頁面add_products_admin.jsp:<form name="form" method="post" action="saveOneProductManagerAction.action" encType=multipart/form-data><table width="580"> <tr> <td width="157" height="20" bgcolor="#B4E4FE" class="table_c">商品信息 <a href="javascript:history.back()"><<< 返回</a></td> <td width="411"></td> </tr> </table><table width="500" border="0" cellspacing="0" bordercolor="#9EA7AB" bgcolor="#DFEFFD"> <tr> <td height="10" colspan="4"><s:property value="tip"/></td> </tr> <tr> <td width="122" height="30" class="table_c"><div align="right">編號(hào):</div></td> <td width="122"><input id="productId" name="productId" type="text" onblur="checkId()"/> <div id="productIdCheckDiv" class="warning"></div> </td> <td width="85" class="table_c"><div align="right">產(chǎn)品名稱:</div></td> <td width="163" height="30"><input name="productname" type="text" /></td> </tr> <tr> <td width="122" height="30" class="table_c"><div align="right">CatalogNo:</div></td> <td width="122"><input name="catalogno" type="text" /></td> <td width="85" class="table_c"><div align="right">CAS:</div></td> <td width="163" height="35"><input name="cas" type="text" /></td> </tr> <tr> <td width="122" height="30" class="table_c"><div align="right">MDL Number:</div></td> <td width="122"> <input name="mdlnumber" type="text" /></td> <td width="85" class="table_c"><div align="right">新產(chǎn)品:</div></td> <!- <td width="163" height="35"><input name="newproduct" type="text" /></td> -> <td height="30" class="table_c"> 是: <input type="radio" name="newproduct" value="1" /> 否: <input type="radio" name="newproduct" value="0" checked/> </td> </tr> <tr> <td width="122" height="22" class="table_c"><div align="right">Formula:</div></td> <td width="122"> <input name="formula" type="text" /></td> <td width="85" class="table_c"><div align="right">MW:</div></td> <td width="163" height="35"><input name="mw" type="text" /></td> </tr> <tr> <td width="122" height="22" class="table_c"><div align="right">Category:</div></td> <td width="122"><input name="category" type="text" /></td> <td width="85" class="table_c"><div align="right">備注:</div></td> <td width="163" height="30"><input name="note" type="text" /></td> </tr> <tr> <td width="122" height="22" class="table_c"><div align="right">價(jià)格1:</div></td> <td width="122"> <input name="price1" type="text" /></td> <td width="85" class="table_c"><div align="right">Stock:</div></td> <td width="163" height="35"><input name="stock" type="text" /></td> </tr> <tr> <td width="122" height="30" class="table_c"><div align="right">價(jià)格2:</div></td> <td width="122"><input name="price2" type="text" /></td> <td width="85" class="table_c"><div align="right">Real Stock:</div></td> <td width="163" height="30"><input name="realstock" type="text" /></td> </tr> <tr> <!- td width="122" height="22" class="table_c"><div align="right">Quantity:</div></td> <td width="122"> <input name="quantity" type="text" /></td-> <td width="85" class="table_c"><div align="right">圖片:</div></td> <td width="163" height="35"> <input type="file" name="upload" /> </td> </tr> <tr> <td height="45" colspan="4"><div align="center"> <div class="loading_ll"><input type="image" src="<%=request.getContextPath()%>/images/Add.jpg" border="0"/></div> </div></td> </tr> </table></div></form><%else %><center><h3>對(duì)不起,您沒有權(quán)限查看!</h3></center><% %>2)商品添加的后臺(tái)代碼ProductManagerAction.java:SuppressWarnings("unchecked")public String saveOne()throws Exceptionif(productService.findByProductId(this.getProductId()!=null)this.setTip(this.getText("productM_tip.id.used");/商品編號(hào)被占用,請(qǐng)重新添加商品return INPUT;elseif(this.getUpload()!=null)if(this.getUploadContentType().equals("application/vnd.ms-excel")this.setTip(this.getText("productM_tip.upload.file.type");/此處只允許上傳圖片類型文件,請(qǐng)返回重新選擇return INPUT;/保存圖片名稱到數(shù)據(jù)庫字段structurethis.setStructure(getUploadFileName();/以服務(wù)器的文件保存地址和原文件的名 建立上傳文件輸出流FileOutputStream fos = new FileOutputStream(this.getSavePath()+""+this.getUploadFileName()/以上傳文件建立一個(gè)文件上傳流FileInputStream fis = new FileInputStream(this.getUpload();/將上傳文件的內(nèi)容寫入服務(wù)器byte buffer = new byte1024;int len=0;while(len=fis.read(buffer)>0)fos.write(buffer, 0, len);System.out.println("結(jié)束上傳單個(gè)文件-");Product product = new Product();product.setCas(this.getCas();product.setCategoryno(this.getCatalogno();product.setCategory(this.getCategory();product.setDelsoft("0");product.setFormula(this.getFormula();product.setMdlint(this.getMdlnumber();product.setWeight(this.getMw();product.setIsnewproduct(this.getNewproduct();product.setPrice1(Float.parseFloat(this.getPrice1();product.setPrice2(Float.parseFloat(this.getPrice2();product.setProductnumber(this.getProductId();product.setProductname(this.getProductname();product.setRealstock(this.getRealstock();product.setStock(this.getStock();product.setImagepath(this.getStructure();productService.saveProduct(product);this.pageReturn();return "saveOnesuccess"二.程序調(diào)試與測(cè)試1、用戶登陸輸入用戶名和密碼,并點(diǎn)擊“Login”按鈕圖2-1登陸成功后:圖2-22、商品查詢 在登陸成功后,點(diǎn)擊“查詢產(chǎn)品瀏覽產(chǎn)品”的超鏈接圖2-3點(diǎn)擊“查詢產(chǎn)品瀏覽產(chǎn)品”的超鏈接之后,進(jìn)入商品查詢頁面圖2-4選擇查詢方式,并輸入查詢內(nèi)容圖2-5點(diǎn)擊查詢之后,獲得查詢的結(jié)果如下:圖2-63、商品添加 在以管理員用戶登陸成功后,點(diǎn)擊“添加商品”的超鏈接圖2-7點(diǎn)擊“添加商品”的超鏈接之后,進(jìn)入商品添加頁面圖2-8輸入產(chǎn)品的信息圖2-9點(diǎn)擊“添加”按鈕之后,在尾頁可以看到剛添加的商品信息圖2-10三.結(jié)果分析1、用戶登陸功能 在index.jsp頁面中輸入用戶名和密碼,然后點(diǎn)擊“Login”按鈕,通過usrLoginAction.action將參數(shù)傳遞給cn.hbpu.Action.UsrLoginAction類中,經(jīng)過處理后返回相應(yīng)的參數(shù),并調(diào)用相應(yīng)的jsp頁面,效果如圖2-2所示。2、商品查詢功能 在Product_Search.jsp頁面中,選擇查詢的方式,并在文本框中輸入要查詢的內(nèi)容,當(dāng)點(diǎn)擊“查詢”按鈕后,通過searchProductManagerAction.action將參數(shù)傳遞給cn.hbpu.Action.ProductManagerAction類中,然后通過search方法返回參數(shù)searchproductshow,最后調(diào)用products_search_show.jsp顯示查詢的結(jié)果,效果如圖2-6所示。3、商品添加功能 在add_products_admin.jsp頁面中,輸入產(chǎn)品的信息,當(dāng)點(diǎn)擊“添加”按鈕后,通過saveOneProductManagerAction.action將參數(shù)傳遞給cn.hbpu.Action.ProductManagerAction類中,然后通過saveOne方法返回參數(shù)saveOnesuccess,最后調(diào)用admin_products_show.jsp頁面顯示結(jié)果,效果如圖2-10所示。四.實(shí)訓(xùn)總結(jié) 在這兩個(gè)星期的實(shí)訓(xùn)中,我學(xué)到了很多書本上沒有學(xué)到的東西。在整個(gè)實(shí)訓(xùn)過程中,老師的悉心指導(dǎo)和同學(xué)們的幫助使我能順利地完成本次實(shí)訓(xùn)。本次實(shí)訓(xùn)是做一個(gè)電子商務(wù)系統(tǒng),在該系統(tǒng)中可以實(shí)現(xiàn)商品的添加、商品的查詢、以及用戶購買商品等一些功能。我們雖然是跟著老師一步一步做的,但是在做的過程中還是遇到了很多問題,有些東西看起來很簡(jiǎn)單,但是真正應(yīng)用起來時(shí)卻不是那么容易,有時(shí)難以跟上老師的節(jié)奏,這說明我的基礎(chǔ)掌握的還不是很好,不能很好的將所學(xué)的知識(shí)融會(huì)在一起,我會(huì)在以后多練習(xí)基礎(chǔ)知識(shí),使自己在做項(xiàng)目時(shí)盡量不被一些很微小的知識(shí)難住。通過本次實(shí)訓(xùn),我發(fā)現(xiàn)了自己還存在很多的不足,我會(huì)在今后的時(shí)間里,好好地改正與補(bǔ)足,讓自己的能力變得更好,使自己對(duì)事物的想法變得更加完善,讓自己以后做起事來變得更加輕松、快捷。信息技術(shù)工程師實(shí)訓(xùn)成績(jī)?cè)u(píng)定表1、實(shí)訓(xùn)報(bào)告a)內(nèi)容: 不完整 完整 詳細(xì) b)方案設(shè)計(jì): 較 差 合理 非常合理 c)實(shí)現(xiàn): 未實(shí)現(xiàn) 部分實(shí)現(xiàn) 全部實(shí)現(xiàn) d)文檔格式: 不規(guī)范 基本規(guī)范 規(guī)范 考勤成績(jī): ,占總成績(jī)比例10%平時(shí)成績(jī): ,占總成績(jī)比例20%實(shí)訓(xùn)報(bào)告成績(jī): ,占總成績(jī)比例70%實(shí)訓(xùn)總成績(jī): 2、實(shí)訓(xùn)評(píng)語 指導(dǎo)教師簽字: 年 月 日