第一篇:javaweb學習心得
學習心得
在寫心得之前總結下中級部分學習的內容,我們的中級部分主要學習了html,css,javacript,xml,dtd/scheam,以及java ee 中的jsp,servlet,過濾器,監聽器,JSTL,EL,jQuery,Ajax。
下面就各個模塊進行總結:在學習html時,我是對這個沒太在意的,因為里面全部是標簽,沒有需要理解的內容,全部是屬于識記的,所以在學習時相對輕松,對于html常用的標簽都是非常清楚的form中的十一種類型,常用的有text,password,hidden,submit,button,radio,checkbox,等其他的標簽如div,table,span,select都是重要的標簽.Css的學習:雖然說在標簽中也可以定義樣式,但是這么做看起來不是那么明智,我在學CSS時還是比較努力的,所有的樣式效果都測試過,并且寫了相應的案例,只是過了不到3個月就忘了一大半,很多時候都是查文檔才能寫出來的,雖然CSS對于我們來說不必要非常精通,但是我覺得掌握的東西越多,以后的工作就越輕松,所以在中級結束后也會去看看前面的筆記和案例。
Javascript:js 我認為是最重要的,甚至于超過servlet,jsp,在上課期間,講的內容還是比較少的,就javascript中創建對象來說吧,應該只講過3中方法,雖然在一般的情況下是用不上的,但是我覺得還是有必要學習的,這樣有助于看懂別人寫的框架,在javascript這部分學習中講的最多的還是dom操作,不過我覺得用dom操作太繁瑣了,寫的代碼太多,而且效率看起來也不高,后面就是講的事件,事件也算是簡單的,只是對觸發的事件進行相應的響應。除了這些就是javascript流程控制,對象一些基本語法,這些和java類似,所以在上課時沒有講得太多。
Xml: Markup Language可擴展標記語言。它是由SGML(Standard Gerneralized Markup language)發展而來的,允許開發者自定標簽,可以將標簽和內容有效的分離。在XML技術里,可以編寫一個文檔來約束XML文檔的書寫規范,稱之為XML約束。本文主要介紹DTD與Schema兩種約束,在這里學習了dtd,scheama,定義XML約束,這部分的學習是我感覺最累的一部分,DTD還算好,SCheama里面的內容,現在都忘了,沒有任何記憶,只知道在XML約束中有著兩中方式,還好這些在剛開始工作時是用不上的,因此我也沒有用很多時間來學習。
Servlet:我覺得是比較簡單的,可能是因為它是java代碼,容易理解。首先講的是開發環境的配置,安裝tomcat,了解tomcat下的目錄,以及web工程下的目錄。后來是講了servlet的訪問方式,post和get的區別,處理中文亂碼是servlet中一個重要的知識點,幾乎每個項目都會遇到這個問題。主要亂碼有get,post亂碼,是通過設置request或者response的編碼方式來實現的。Servlet間的跳轉方式有重定向和轉發,對于重定向和轉發的區別,現在理解的很透徹了,重定向是不能獲取request中參數,是客戶端的兩次請求,而轉發是服務器內部跳轉,不過,兩種在設置過濾器的情況下,都要通過過濾器才能跳轉。Servlet的生命周期是筆試的必考題,其實這是很簡單的,只需要理解,沒必要死記硬背的,session算是重要的知識點,很多數據都是存儲在內存中,如購物車,用戶信息等,還可以對session設置生存時間。說到session就必須說說四種會話跟蹤技術,cookie,URL重寫,表單域隱藏和session。
JSP:JSP實際上和servlet是一樣的,只不過兩者側重點不同,JSP的內置對象和作用域大致是一樣的,JSP中還有動作,常用的有操作JavaBean的動作,頁面跳轉的動作,以及包含的動作。這里重點提到兩種包含的區別。在JSP還講過jstl和EL表達式,都是基礎的應用,不過寫自定義的標簽還是要有一定的java基礎的,我開始不太理解標簽的解析過程,后來看了幾個例子,發現自定義的已不是那么難。
jQuery:jQuery可以說是中級部分學的最好的,主要是它方便了,特別是選擇器,而且避免了一些瀏覽器的差異,所以在學習jQuery后,就再也不想用javascript來獲取元素了。不僅如此,jQuery中封裝的Ajax操作也是非常簡單,不需要自己封裝一個類,$.get和$.post 能夠省去很多麻煩,jQuery的監聽事件也是很簡單,不需要在標簽中添加對應事件,可以動態的綁定事件。還有就是dom操作更是方便。我在學習完Ajax,json后就發現,即使是沒有JSP,也能做出一個動態頁面出來,只是會存在效率問題。
總結:雖然說這上面的知識大部分都掌握了,但是能否靈活運用才是重點,所以在今后的學習中多思考問題是否有多種解決方法。
第二篇:大二實訓JavaWeb學習心得
大二實訓JavaWeb學習心得
容我先說句廢話,經過同學們多次的互相理論與向上建議,對于第二次次實習地點安排在學校這個結果我還是非常高興的,畢竟少了很多旅途勞累。
這次實習內容是java web,我想應該與本學期開過javaweb這門課有關,畢竟上學期學過java和數據庫,本覺得應該會比較輕松,開始之前大家都說這實習可是可以放松了,可是等老師開始講之后發現這個東西理論上知識點不多,可是應用起來還是感到非常困難。
這次實習老師風格與上次實習的那位不同,去年那簡直是從零開始講,這次上來沒細講java和SQL,直接jsp。于是上學期開過的、紙上談兵的java課就露出破綻了,簡直要從頭學起,更別說與jsp、sql融合了。另外用jsp寫網頁嘛,這個語言不是很火,去Github上找,開發web應用的大多是php、python,而servlet這個東西非常基礎,甚至并不能算作一個開發框架,所以網上的資料也并不好找,網上都是些Struts2、Spring3、Hibernate,總之這開始的時候就很是艱難,晚上回到宿舍也經常要花很多時間來補之前的知識,java封裝繼承什么的,當然,這很累。
白天聽課并不能高效的吸收老師所講的,下來問了一下同學們是差不多的情況,可能是老師的節奏我們不太習慣。不過這學完也終究是會了一些,大概說一下,JSP全名 Java Server Pages,一種動態網頁技術,所謂動態就是可以與用戶交互就像論壇什么的,而html靜態頁面就是只能給用戶看的。首先,我們配置了幾個環境:java的JDK和服務器Tomcat。至于IDE,我還是用我比較順手的jetbrain家的IntelliJ IDEA,對了,不用Eclipse是因為它丑。
之前都是寫靜態頁面,對于動態頁面的環境配置還真是頭疼了一段時間,看了一些博客,發現這個主要是在File——ProjectStructure配置依賴的jar包,還有就是 tomcat服務器的配置。配置好了開始學JSP內部對象及內部對象所對應的一些方法。再就是JSP與數據庫的聯系,怎么樣操作Mysql數據庫等等。
在用一種語言寫程序的時候,demo通常是零星幾個功能的嘗試,而去寫一個偏實戰的項目時,是需要從需求分析、模塊設計到實現功能的一整套流程,這些我們從來沒有做過,當我們C05開源盛世(項目組)開始做項目的時候,第一步的需求分析就費了好多功夫,功能點想的不全面,導致中途還要進行改動。模塊設計也是類似的情況,低內聚高耦合這種理念可是不好理解。此處多謝伙伴們抬舉,我這個組長也是個沒當過組長的新手,可能是命題選的比較偏(做的東西類似知乎),在開始時就遇到了一些棘手的問題。
做這個項目對團隊的協作能力要求很高,在這里,我作為組長出了這么幾個大的紕漏:程序框架搭的不夠細致、項目約定不夠全面、沒有及時收集組員的進度反饋、同步項目文件的頻率太低,實現順序不當導致功率浪費。這些導致我們5個人開始不久就發生了如下問題:類名沖突、同一個模塊寫了兩遍、制作前臺的進度沒有與后臺進度同步,導致了不能及時測試與調試程序。
最后,這個項目讓我看到了很多,尤其是分工和成員之間的同步方面,發揮出團隊合作的力量對于我還是個巨大的挑戰,以及再一次強調了實踐的重要性,從中也看出了我們相比于那些真正開發團隊的的青澀與弱小。歷練方能不死,活著真難!QAQ 作者:AzureChen 2015.7.16 陰
第三篇:javaweb課程設計
課程設計:基于Java Web的討論區BBS系統的設計與實現
本系統要求實現以下主要功能:
(1)登錄:提供用戶登錄系統的功能,需要輸入用戶名和密碼
(2)注冊:提供用戶注冊的功能,需要輸入用戶名、密碼、密碼確認、Email、QQ
(3)修改注冊信息:提供用戶修改注冊信息的功能,可以修改密碼、Email、QQ
(4)瀏覽討論區:用戶登錄后就可以瀏覽系統中已存在的討論區,用戶可以查看某討論
區的詳細信息,也可以進入該討論區瀏覽已發表的帖子,以及回帖
(5)創建討論區:用戶可以創建討論區,每個討論區包含一個名稱和順序號,每個討論
區的名稱在系統中是唯一的,順序號表示討論區在列表中的排序
(6)修改討論區:提供討論區名稱和順序號的修改功能
(7)刪除討論區:提供討論區刪除的功能,方便管理員進行討論區管理
(8)瀏覽帖子:用戶進入一個討論區后,可以看到帖子列表,包含帖子主題、作者、創
建時間、回復次數,點擊一個帖子,可以查看該帖子的內容和回帖
(9)創建帖子:用戶進入一個討論區后,可以選擇創建一個新帖子,需要輸入帖子標題
和內容
(10)修改帖子:提供給管理員使用,修改帖子標題和內容
(11)刪除帖子:提供給管理員使用,方便管理員進行帖子整理
(12)回復帖子:用戶在瀏覽帖子信息的時候,可以進行回復
第四篇:javaweb筆試題
(1)假設在helloapp應用中有一個hello.jsp,它的文件路徑如下:
%CATALINA_HOME%/webapps/helloapp/hello/hello.jsp c 那么在瀏覽器端訪問hello.jsp的URL是什么? 選項:
(A)http://localhost:8080/hello.jsp(B)http://localhost:8080/helloapp/hello.jsp(C)http://localhost:8080/helloapp/hello/hello.jsp
(2)假設在helloapp應用中有一個HelloServlet類,它位于org.javathinker包下,那么這個類的class文件應該放在什么目錄下?(2)選項:
(A)helloapp/HelloServlet.class(B)helloapp/WEB-INF/HelloServlet.class(C)helloapp/WEB-INF/classes/HelloServlet.class(D)helloapp/WEB-INF/classes/org/javathinker/HelloServlet.class
(3)假設在helloapp應用中有一個HelloServlet類,它在web.xml文件中的配置如下:
那么在瀏覽器端訪問HelloServlet的URL是什么? 選項:
(A)http://localhost:8080/HelloServlet(B)http://localhost:8080/helloapp/HelloServlet(C)http://localhost:8080/helloapp/org/javathinker/hello(D)http://localhost:8080/helloapp/hello
(4)客戶請求訪問HTML頁面與訪問Servlet有什么異同? 選項:
(A)相同:都使用HTTP協議
(B)區別:前者Web服務器直接返回HTML頁面,后者Web服務器調用Servlet的方法,由Servlet動態生成HTML頁面
(C)相同:前者Web服務器直接返回HTML頁面,后者Web服務器直接返回Servlet的源代碼。(D)區別:后者需要在web.xml中配置URL路徑。(E)區別:前者使用HTTP協議,后者使用RMI協議。
(5)HttpServletRequest對象是由誰創建的? 選項:
(A)由Servlet容器負責創建,對于每個HTTP請求,Servlet容器都會創建一個HttpServletRequest對象
(B)由JavaWeb應用的Servlet或JSP組件負責創建,當Servlet或JSP組件響應HTTP請求時,先創建
HttpServletRequest對象
(6)從HTTP請求中,獲得請求參數,應該調用哪個方法? 選項:
(A)調用HttpServletRequest對象的getAttribute()方法(B)調用ServletContext對象的getAttribute()方法(C)調用HttpServletRequest對象的getParameter()方法
(7)ServletContext對象是由誰創建的? 選項:
(A)由Servlet容器負責創建,對于每個HTTP請求,Servlet容器都會創建一個ServletContext對象(B)由JavaWeb應用本身負責為自己創建一個ServletContext對象
(C)由Servlet容器負責創建,對于每個JavaWeb應用,在啟動時,Servlet容器都會創建一個ServletContext對象
(8)jspForward1.jsp要把請求轉發給jspForward2.jsp,應該在jspForward1.jsp中如何實現?選項:
(A)jspForward2.jsp (B)
(9)當瀏覽器第二次訪問以下JSP網頁時的輸出結果是什么?
<% int b=0;a++;b++;%>
a:<%= a %>
b:<%= b %> 選項:
(A)a=0 b=0(B)a=1 b=1(c)a=2 b=1
(10)下面哪個說法是正確的? 選項:
(A)對于每個要求訪問maillogin.jsp的HTTP請求,Servlet容器都會創建一個HttpSession對象(B)每個HttpSession對象都有惟一的ID。
(C)JavaWeb應用程序必須負責為HttpSession分配惟一的ID
(11)如果不希望JSP網頁支持Session,應該如何辦?(單選)選項:
(A)調用HttpSession的invalidate()方法(B)<%@ page session= “false“>
(12)在標簽處理類中,如何訪問session范圍內的共享數據? 選項:
(A)在TagSupport類中定義了session成員變量,直接調用它的getAttribute()方法即可。
(B)在標簽處理類TagSupport類中定義了pageContext成員變量,先通過它的getSession()方法獲得當前的
HttpSession對象,再調用HttpSession對象的getAttribute()方法。
(C)pageContext.getAttribute(“attributename”,PageContext.SESSION_SCOPE)
(13)在下面的選項中,哪些是TagSupport類的doStartTag()方法的有效返回值? 選項:
(A)Tag.SKIP_BODY(B)Tag.SKIY_PAGE(C)Tag.EVAL_BODY_INCLUDE(D)Tag.EVAL_PAGE
(14)以下代碼能否編譯通過,假如能編譯通過,運行時得到什么打印結果? request.setAttribute(”count“,new Integer(0));Integer count = request.getAttribute(”count");選項:
A)不能編譯通過 B)能編譯通過,并正常運行 C)編譯通過,但運行時拋出ClassCastException
第五篇:JavaWeb實習報告
武漢工程大學計算機科學與工程學院
生產實習報告
JavaWeb實習報告
一、實習目的與任務
為了鍛煉我們的實踐動手能力,提高我們分析問題、解決問題的能力,培養我們的工作意識和團隊合作的意識,了解軟件開發的過程和基本流程,以便于幫助我們能夠在大四畢業時可找到一份客觀的工作,我們在大四剛開學就開始了生產實習。
這次實習的主要任務是Java Web軟件開發,學習Java開發中比較典型且經常用到的幾個知識,其中包括Jsp、Servlet、Html、JDBC等等,另外,Java開發中也必須要用到數據庫,因此實習中還加入了Mysql數據庫的學習。掌握了這些基本知識之后,就開始真正的項目開發,而且此次我們所要開發的項目是有關博客頁面的項目,并完成老師指定的功能。
二、實習地點
重慶足下科技有限公司
三、實習內容和要求
我們這次實習,在校外也就是軟帝公司總共是十天,開始幾天基本上是每天學習一個方面的內容,大概學習了六天其中包括Jsp、Servlet、Html、JDBC、Mysql等等,剩下幾天就是項目時間,做出一個博客開發的項目。大致內容如下:
一、Java語言簡介
Java語言Java是由Sun微系統公司所發展出來的程序語言,它是一種面向地向的語言,Java也號稱是能跨平臺使用的語言,這主要是因為Java本身被編譯之后,并不是直接產生可執行的代碼,而是產生一種中間碼叫作 ByteCode,這種代碼必需在透過 Java 的直譯器來解讀它,才能夠真正的被執行,所以只要平臺上裝有這種Java的直譯器,就能解讀ByteCode也就能執行Java編譯過的程序,故與Java程序是在那種平臺上被編譯的,就完全沒有干系了。
Java寫出來的程序可分為兩類,分別是Java Applet與一般的Application,而Application這一類就與一般的程序如C++的作用是比較類似的,是一個獨立可執行的應用程序,像HotJava是一個瀏覽器,且就是使用Java程序所發展出來的。最常見的Java程序包括應用程序和applets。應用程序是單獨的程序,諸如HotJava瀏覽器軟件就是用Java語言編寫的。
Applets類似于應用程序,但是它們不能單獨運行,Applets可以在支持Java的瀏覽器中運行。Applet主要是內置于HTML網頁中,在瀏覽時發揮作用。
Java的目標是為了滿足在一個充滿各式各樣不同種機器,不同操作系統平臺的網絡環境中開發軟件。利用Java程序語言,可以進行網頁開發,其中包括靜態語言開發與動態網頁開發,可以在網頁中加入各式各樣的動態效果,可以放上一段動畫,加入聲音,也可以建立交互式網頁等。
二、Html語言
Html是超文本標記語言,它是一種非嚴格的標記語言,它是web開發的基礎,也是制作網頁的基礎,純html的頁面是靜態的。
Html它由head和body兩部分組成,所寫的內容一般都是放在body中,其中可以添加Form表單域,其中屬性 Action表示提交的動作,也就是提交到那個頁面,可表示為Action=“http://www.tmdps.cn”;Method屬性表示提交的方法,一般為設為post;在Form表單域中添加table表,table中的屬性只有很多,常用的有width、height、align、colspan
武漢工程大學計算機科學與工程學院
生產實習報告
Mysql是一個關聯數據庫,它將數據保存在不同的表中,而不是將所有數據放在一個大的倉庫內。這樣就增加了速度并提高了靈活性。Mysql的Sql指得是“結構化查詢語言”,Sql是用于訪問數據庫的最常用標準化語言。同時,Mysql軟件也是一種“開放源碼”的軟件,意味著任何人都能使用和改變軟件。任何人都能從Internet下載Mysql軟件,而無需支付任何費用。如果愿意,你可以研究源碼并進行恰當的更改,以滿足你自己的需求。Mysql軟件采用了GPL(GNU通用公共許可證),定義了在不同情況下可以用軟件作的事和不可作的事。數據庫服務器具有快速、可靠和易于使用。
Mysql服務器還有一套實用的特性集合,在基準測試主頁上,給出了Mysql服務器和其他數據庫管理器的比較結果。Mysql支持多種連接,包括TCP/IP、ODBC和JDBC等多種數據庫連接途徑,而我們此次實習用到的是JDBC數據庫連接方法,這一點在下面會講到。
此次實習我們主要學習了如何在Mysql數據庫中建立表格,如何執行Sql語句等等。首先,打開Mysql編寫框,執行語句show databases,即可查看Mysql中有哪些數據庫,運用create+數據庫名語句可建立想要的數據庫,運用use+數據庫名即可進入對應的數據庫。
進入數據庫之后,就可以執行數據庫中的增、刪、查、改等Sql語句了,運用create table +表名(表中所需要的元素),這樣就可以建立一張表了,運用desc+表名就可以查看表,運用Sql語句“select * from +表名”就可以查看表中的所有數據,運用“insert into ??”語句可以向表中添加數據;運用“update +表 set ?? Where??”可以更改表中指定的某項數據;運用“delete +表 where ??”語句可以刪除表中的某項數據??
四、JDBC數據庫連接
Java中的JDBC,JDBC是Java Data Base Connectivity的縮寫,是一種用于執行SQL語句的Java API,可以為多種關系數據庫提供統一訪問,它由一組用Java語言編寫的類和接口組成。JDBC提供了一種基準,據此可以構建更高級的工具和接口,使數據庫開發人員能夠編寫數據庫應用程序。
連接數據庫的方法有一個模板,代碼如下: public class DBManager { private static final String URL=“jdbc:mysql://localhost:3306/test”;private static final String USER=“root”;private static final String PASSWORD=“123”;private static Connection conn=null;
public static Connection getConn(){ try {
if(conn==null){
//注冊驅動
Class.forName(“com.mysql.jdbc.Driver”);
conn=DriverManager.getConnection(URL,USER,PASSWORD);
} } catch(ClassNotFoundException e){
e.printStackTrace();
} catch(SQLException e){
e.printStackTrace();}
return conn;} } 以后運用數據庫連接基本上都是用這個模板,方便又有效,而且在其他地方連接數據
武漢工程大學計算機科學與工程學院
生產實習報告
六、Servlet Servlet是一種服務器端的Java應用程序,具有獨立于平臺和協議的特性,可以生成動態的Web頁面。它擔當客戶請求(Web瀏覽器或其他HTTP客戶程序)與服務器響應(HTTP服務器上的數據庫或應用程序)的中間層。Servlet是位于Web 服務器內部的服務器端的Java應用程序,與傳統的從命令行啟動的Java應用程序不同,Servlet由Web服務器進行加載,該Web服務器必須包含支持Servlet的Java虛擬機。
Servlet生成響應內容并將其傳給Server,響應內容動態生成,通常取決于客戶端的請求。service()方法可能激活其它方法以處理請求,如doGet()或doPost()或程序員自己開發的新的方法,用的比較普遍的是doPost()方法。舉例如下:
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//
1、獲取id
String sid=request.getParameter(“id”);
int id=Integer.parseInt(sid);
//
2、根據id查詢到對應的學生信息
StuDAO sdao=new StuDAO();
StuDTO stu=sdao.queryStu(id);
//
3、將stu傳遞到studentModify.jsp頁面顯示
request.setAttribute(“stu”,stu);request.getRequestDispatcher(“studentModify.jsp”).forward(request,response);我們同樣是以學習建立學生信息管理系統為例來學習Servlet的,Servlet與JSP差不多,最主要的差別是JSP是實現普通靜態HTML和動態HTML混合編碼的技術,Servlet則是web頁面和服務器之間的連接物,而這基本上沒什么區別。
在編寫學生信息管理系統的時候,只不過在昨天編寫的基礎上,將某些JSP文件運用Servlet表示,像那些只做顯示用的JSP頁面不做變化,而中間有調用StuDAO中的方法的JSP頁面,它們不做顯示用,而是要與數據庫聯系起來,像這些JSP頁面就可以轉換成相應的Servlet,其中的代碼與JSP中的幾乎一樣,這樣處理之后,減少了頁面,不過功能沒有變化,更加方便了!
四、實習總結及分析
這次實習主要是學習Java Web開發方面的相關知識,主要的有JSP、Servlet、HTML,另外還有JDBC,Mysql數據庫等等。
首先是JSP,它是Java Web開發的基礎,需要的頁面都是用JSP來建立的,它是一種