80端口已被占,80端口被占用怎么修改改使用8080端口正常使用

javaWeb开发心得感受
经过了这个学期的javaweb的学习我深有感触,经过几个星期的不断努力,课程设计内容基本上完成了。
首先,在这里要感谢我们小组,他们都在身边督促我,我们也互相鼓励,共同进步。
另外,我还要谢谢我的老师, 是他对我们提出了许多富有启发性和建设性的意见和建议。
在做这个项目的时候我们遇见了许多前所未有的困难,我们常常为一句程序从而停止不前,导致整个项目的进度受到很大的影响,我们在之前准备的不是特别的充分,使得我们小组在后续的合作中没有将小组的力量发挥到极致文
件放入了css目录下,而且jar包的导入出现了问题,导致分页显示异常,出现了不必要的麻烦,经过对文件位置的转换以及jar包的重新导入,现在分页的
雏形已经基本显示出来,分页的制作还对我的页面设计功能进行了锻炼,对这个功能的了解更加深了一步现在两个的设计已经完成,和小组其他成员的功能结合在一
起,就基本完成了本次项目的编写,整体的功能已经调试完成,还要对其他不太熟悉的模块多加了解,争取全面掌握整个程序的运行流程和控制效果,通过整个学期的javaweb的学习使得我深刻的理解到,无论多么流的技术一个人终究不能完成如此多的操作,团队合作的重要性是这个项目的成功的关键,撒个臭皮匠顶一个诸葛亮。我也理解到IT的这个行业并不是那么的好搞,光打代码就是一件很头痛的事,而且优秀的代码更是很难想出来,在IT的前进道路上我们还有许多路要走。
&&&&&&&&&&
我在这个项目中主要负责对各个页面的调节和对图片资源的管理,设置数据库的文档,并对源程序进行了更改和写一些项目的开发文档编写。这次项目的编写使得我更加的理解到团队的合作的重要性,一个良好的分工使得我们能够提高项目的开发速率和进度。只有合作才能够共赢。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。java学习之路之web知识总结
1.OSI网络七层协议:
应用层(HTTP,FTP,SMTP,POP3,TELNET 网络服务与最终用户的一个接口)
表示层 (JPEG,ASCII,DECOIC 数据的表示,安全,压缩 )
会话层(建立,管理,终止会话,对应主机进程,指本地与远程主机正在进行的会话)
传输层(TCP,UDP 定义传输数据的协议端口号,流控,差错校验,数据包一旦离开网卡即进入网络传输层)
网络层(IP,ICMP,IGMP 进行逻辑地址寻址,实现不同网络之间的路径选择)
数据链路层(建立逻辑连接,进行硬件地址寻址,差错校验等)
物理层(建立,维护,断开物理链接)
2.Http协议:
规定客户端和服务器如何进行交互的基于TCP/IP的应用层协议,基于请求响应模型,一次请求对应一次响应,请求只能由客户端发出,服务器只能被动的等待请求做出响应
HTTP协议的版本:HTTP/1.0、HTTP/1.1,其中1.0一次请求发起一次连接,响应过后连接自动断开。1.1里每次请求响应后连接将保持一段时间,这段时间内可以再执行请求响应。
3.Http 请求
GET books/java.html HTTP/1.1
请求方式 请求资源名 遵循的协议
七种请求方式:常用 POST,GET
GET 与POST请求区别在于请求参数在传递的过程中方式不同
GET:请求参数附加在请求url后作为请求地址的一部分带到服务器,可以传输的数据大小不超过1k
POST:请求参数在Http请求的实体内容中进行传输
用于HTTP请求中的常用头:
Accept-Charset: ISO-8859-1 客户端接受数据需要使用的字符集编码
Accept-Encoding: gzip,compress 客户端可以接受的数据压缩格式
Accept-Language: en-us,zh-cn 可接受的语言环境
Host: www.it315.org:80 想要访问的虚拟主机名
If-Modified-Since: Tue, 11 Jul :51 GMT 这是和缓存相关的一个头,带着缓存资源的最后获取时间
Referer: http://www.it315.org/index. 这个头表示当前的请求来自哪个链接,这个头和防盗链的功能相关
User-Agent: Mozilla/4.0 ( MSIE 5.5; Windows NT 5.0) 客户端的一些基本信息
Cookie 传递给服务器cookie值
Connection: close/Keep-Alive 指定是否继续保持连接
Date: Tue, 11 Jul :51 GMT 当前时间
4.HTTP响应
格式: HTTP版本号 状态码 原因叙述
举例:HTTP/1.1 200 OK
状态码用于表示服务器对请求的处理结果,它是一个三位的十进制数。响应状态码分为5类,如下所示:
成功接受请求,要求客户端继续提交下一次请求才能完成整个处理过程
表示成功接收请求并已完成整个请求,常用200
未完成请求,需客户端进一步细化需求,常用302,307,304 如使用缓存
客户端请求有误,常用404
服务器出现错误,常见500
用于HTTP请求中的常用头:
Location: http://www.it315.org/index.jsp 配合302实现请求重定向
Server:apache tomcat 服务器的基本信息
Content-Encoding: gzip 服务器发送数据时使用的压缩格式
Content-Length: 80 发送数据的大小
Content-Language: zh-cn 发送的数据使用的语言环境
Content-Type: text/ charset=GB2312 当前所发送的数据的基本信息,(数据的类型,所使用的编码)
Last-Modified: Tue, 11 Jul :51 GMT 缓存相关的头
Refresh: 1;url=http://www.it315.org 通知进行定时刷新,此值可以是一个数字指定多长时间以后刷新当前页面,这个数字之后也可以接一个分号后跟一个URL地址指定多长时间后刷新到哪个URL
Content-Disposition:filename=aaa.zip 与下载相关的头
Transfer-Encoding: chunked 传输类型,如果是此值是一个chunked说明当前的数据是一块一块传输的
**Set-Cookie:**SS=Q0=5Lb_nQ; path=/search 和cookie相关的头,通知浏览器设置cookie
ETag: W/&4400000& 和缓存机制相关的头
Expires: -1 指定资源缓存的时间,如果取值为0或-1浏览就不缓存资源
Cache-Control: no-cache 缓存相关的头,如果为no-cache则通知浏览器不缓存
Pragma: no-cache 缓存相关的头,如果为no-cache则不缓存
以上三个头都是用来控制缓存的,是因为历史原因造成的,不同的浏览器认识不同的头,我们通常三个一起使用保证通用性。
Connection: close/Keep-Alive 是否保持连接
Date: Tue, 11 Jul :51 GMT 当前时间
5.会话技术
从浏览器开始访问服务器,到关闭浏览器,这期间发生了许多次请求和响应,这个过程就叫做一次会话。
Cookie是客户端技术vc3Ryb25nPqOss8zQ8rDRw7+49tPDu6e1xMr9vt3S1GNvb2tpZbXE0M7KvdC0uPjTw7unuPfX1LXE5K/AwMb3oaO1sdPDu6fKudPD5K/AwMb31NnIpbfDzsq3/s7xxvfW0LXEd2Vi18rUtMqxo6y+zbvhtPjXxbj319S1xMr9vt3IpaGj1eLR+aOsd2Vi18rUtLSmwO21xL7NysfTw7unuPfX1LXEyv2+3cHLoaM8L3A+DQo8YmxvY2txdW90ZT4NCgk8cD7Su7j2Q29va2ll1rvE3LHqyrbSu9bW0MXPoqOsy/zWwcnZuqzT0NK7uPax6sq2uMPQxc+itcTD+7PGo6hOQU1Fo6m6zcno1sPWtaOoVkFMVUWjqaGjPC9wPg0KCTxwPtK7uPZXRULVvrXjv8nS1Lj40ru49ldFQuSvwMDG97eiyva2llo6zSu7j2V0VC5K/AwMb30rK/ydLUtOa0orbguPZXRULVvrXjzOG5qbXEQ29va2lloaM8L3A+DQoJPHA+5K/AwMb30ruw49a71MrQ7bTmt8UzMDC49kNvb2tpZaOsw7+49tW+tePX7rbgtOa3xTIwuPZDb29raWWjrMO/uPZDb29raWW1xLTz0KHP3tbGzqo0S0KhozwvcD4NCgk8cD7I57n7tLS9qMHL0ru49mNvb2tpZaOssqK9q8v7t6LLzbW95K/AwMb3o6zErMjPx+m/9s/Cy/zKx9K7uPa74buwvLax8LXEY29va2llo6i8tLTmtKLU2uSvwMDG97XExNq05tbQo6mjrNPDu6fNy7P25K/AwMb31q6687y0sbvJvrP9oaPI9M+jzfvkr8DAxve9q7jDY29va2lltOa0otTatMXFzMnPo6zU8tDo0qrKudPDbWF4QWdlo6yyorj4s/bSu7j20tTD686qtaXOu7XEyrG85KGjvavX7rTzyrHQp8nozqow1PLKx8P8we7kr8DAxvfJvrP9uMNjb29raWWhozwvcD4NCgk8cD7XotLio6zJvrP9Y29va2llyrGjrHBhdGix2NDr0rvWwqOst/HU8rK7u+HJvrP9KOSvwMDG982ouf0mZ3Q7IGNvb2tpZbXEbmFtZStwYXRowLSx6sq20ru49mNvb2tpZSk8L3A+DQoJPHA+cmVzcG9uc2XJ7cnPvt/T0GFkZENvb2tpZbXEt723qKOsv8nS1L2rtLS9qLP2wLS1xNfp1q+zyc/s06bP+8+i1tC1xHNldC1jb29raWXNt6OszajWquSvwMDG97GjtOa4w2Nvb2tpZTwvcD4NCgk8cD5yZXF1ZXN0ye3Jz77f09BnZXRDb29raWVzt723qKOsv8nS1LvxyKHkr8DAxve0+Ln9wLS1xMv509BDb29raWU8L3A+DQoJPHA+Q29va2llt723qKO616LS4izkr8DAxvfKx7j5vt1jb29raWW1xMP7s8a808nPY29va2lltcRwYXRowLTH+LfWyse38crHzazSu7j2Y29va2lltcSjrMjnufvQ6NKquLK4x9aux7C1xGNvb2tpZaOss/3By7Gj1qTD+7PGz+DNrM3iu7nSqrGj1qRwYXRo0rLP4M2soaM8L3A+DQoJPHA+cHVibGljIENvb2tpZShTdHJpbmcgbmFtZSxTdHJpbmcgdmFsdWUpwPvTw7m51Oy3vbeotLS9qNK7uPZDb29raWW21M/zo6zU2rS0vai1xMqxuvK+zdKq1ri2qLjDQ29va2lltcTD+7rN1rU8L3A+DQoJPHA+c2V0VmFsdWXT62dldFZhbHVlt723qCDJ6NbDu/LV37vxyKFDb29raWW1xNa1PC9wPg0KCTxwPnNldE1heEFnZdPrZ2V0TWF4QWdlt723qCDI57n7srvJ6NbDY29va2lltcRNYXhBZ2WjqLvyvavG5Na1yejWw86quLrWtaOpo6zU8sSsyM/H6b/2z8Lkr8DAxve74b2rY29va2llsaO05tTa5K/AwMb3tcTE2rTm1tCjrLvhy+bXxeSvwMDG97nYsdW2+M/7yqeho8jnufvJ6NbDzqrSu7j21f3WtaOs1PK0+rHtuMNDb29raWXSqrGjtOa1xNLUw+vOqrWlzru1xMqxvOTWtaOsyOe0y6OsuMNjb29raWW9q7vhsbvkr8DAxvexo7Tmtb3TssXM1tDIpaGjyOe5+72rTWF4QWdlyejWw86qMKOs1PLKx82o1qrkr8DAxvfIpcm+s/24w0Nvb2tpZaGjPC9wPg0KCTxwPnNldFBhdGjT62dldFBhdGi3vbeoINPDwLTWuLaot8POysTEuPZVTFK8sMbk19NVUkzKsbT4yc+0y2Nvb2tpZaOsyOe5+7K7yejWw7TL1rWjrNTy5K/AwMb3xKzIz7vhvau3osvNuMNjb29raWW1xHNlcnZsZXTL+dTatcTCt7621/fOqnBhdGjKudPDoaM8L3A+DQoJPHA+wP3I56O6PC9wPg0KCTxwPnNldFBhdGgoJmxkcXVvOy9EYXkwNiZyZHF1bzsp1PIvRGF5MDYvJmhlbGxpcDsvJmhlbGxpcDu1xMK3vra2vLvhtPjJz7jDQ29va2llPGJyIC8+DQoJyOe5+7eiy824w0Nvb2tpZbXEU2VydmxldMrHIC9EYXkwNi9zZXJ2bGV0L0RlbW8xU2VydmxldKOssqLH0s60yejWw3NldFBhdCzU8uSvwMDG99Tat8POyi9EYXkwNi9zZXJ2bGV0Ly4uyrG74bT4yc+4w2Nvb2tpZTwvcD4NCgk8cD5zZXREb21haW7T62dldERvbWFpbre9t6ggyejWw2Nvb2tpZbbU06a1xNPyw/ujrLTLt723qNK7tam199PDo6zU8uSvwMDG97vhyM/OqrjDY29va2llysfSu7j2tdrI/be9Y29va2lltvi+3MrVPC9wPg0KCTxwPmdldE5hbWW3vbeoILvxyKG4w2Nvb2tpZbXEw/vX1qOs16LS4sO709BzZXROYW1lt723qKOs0ru49kNvb2tpZdK7tam0tL2os/bAtL7NsrvE3NDeuMTD+9fWwcs8L3A+DQoJPHA+5K/AwMb30ruw49a71MrQ7bTmt8UzMDC49kNvb2tpZaOsw7+49tW+tePX7rbgtOa3xTIwuPZDb29raWWjrMO/uPZDb29raWW1xLTz0KHP3tbGzqo0S0KhozxiciAvPg0KCUNvb2tpZcrHu/nT2nNldC1Db29raWXP7NOmzbe6zUNvb2tpZcfrx/PNt7mk1/e1xCy3/s7xxve/ydLUt6LLzXNldC1Db29raWXH68fzzbfD/MHu5K/AwMb3saO05tK7uPZjb29raWXQxc+iLOSvwMDG97vh1Nq3w87Kt/7O8cb3yrHS1ENvb2tpZcfrx/PNt7XEt73KvbT4u9jWrsewsaO05rXE0MXPojwvcD4NCgk8cD5yZXF1ZXN0LmdldENvb2tpZXMoKTs8L3A+DQoJPHA+cmVzcG9uc2UuYWRkQ29va2llKENvb2tpZSBjKTs8L3A+DQoJPHA+bmV3IENvb2tpZShTdHJpbmcgbmFtZSxTdHJpbmcgdmFsdWUpLy9Db29raWXU2rm51Oy1xMqxuvK+zdDo0qrJ6LaousNjb29raWW1xMP719a6zda1PC9wPg0KCTxwPmdldE5hbWUoKTs8L3A+DQoJPHA+Z2V0VmFsdWUoKTs8L3A+DQoJPHA+c2V0VmFsdWUoKTs8L3A+DQoJPHA+ISFzZXRNYXhBZ2XT62dldE1heEFnZbe9t6g8L3A+DQoJPHA+0ru49kNvb2tpZcjnufvDu9PQyejWw7n9TWF4QWdl1PLV4rj2Q29va2llysfSu7j2u+G7sLy2sfC1xENvb2tpZSzV4rj2Q29va2ll0MXPorTyuPjkr8DAxve68+SvwMDG97vhvavL/LGjtObU2uSvwMDG97XExNq05tbQLNXi0uLOttfF1rvSquSvwMDG99LRudix1cvm18Xkr8DAxvfE2rTmtcTP+rvZQ29va2ll0MXPotKyvs3P+8qnwcsu0ru49kNvb2tpZdKyv8nS1Mno1sNNYXhBZ2Us5K/AwNK70ru1qbeiz9bK1bW9tcRDb29raWWxu8no1sPBy01heEFnZSzU8rvhvavV4rj2Q29va2ll0MXPotLUzsS8/rXE0M7KvbGjtObU2uSvwMDG97XEwdnKsc7EvP680NbQLLGjtOa1vda4tqi1xMqxvOS1vcC0zrvWwy7V4tH50rvAtLy0yrm24LTOv6q52OSvwMDG9yzTydPa1eLQqeSvwMDG97a8xNzU2sHZyrHOxLz+vNDW0L+0tb1jb29raWXOxLz+LMv50tTU2mNvb2tpZcqn0KfWrsewY29va2ll0MXPora8tObU2i48L3A+DQoJPHA+Jm5kYXNoOyDP69Kqw/zB7uSvwMDG98m+s/3Su7j2Q29va2llLLeiy83Su7j2zazD+82scGF0aLXEY29va2llLG1heGFnZcno1sPOqjAs5K/AwMb30tTD+9fWK3BhdGjKtrHwY29va2llLLeiz9bNrMP7zaxwYXRoLGNvb2tpZbiyuMe688GivLSzrMqxsbvJvrP9LLTTtvi+zcm+s/3By2Nvb2tpZS48L3A+DQoJPHA+ISFzZXRQYXRo0+tnZXRQYXRot723qDxiciAvPg0KCSZuZGFzaDsg08PAtM2o1qrkr8DAxvfU2rfDzsq3/s7xxvfW0LXExMS49sK3vra8sMbk19PCt762yrG0+NfFtbHHsGNvb2tpZdDFz6K5/cC0PGJyIC8+DQoJyOe5+7K7w/fIt8no1sMs1PLErMjPtcTCt762yse3osvNQ29va2lltcRTZXJ2bGV0y/nU2rXEwre+tjxiciAvPg0KCXNldERvbWFpbtPrZ2V0RG9tYWlut723qDwvcD4NCgk8cD4uJm5kYXNoOyDTw8C0zajWquSvwMDG99Tat8POysTEuPbT8sP7tcTKsbrytPjXxbWxx7C1xGNvb2tpZdDFz6IutavKx9Kq16LS4izP1rT6tcTkr8DAxvfSu7Wpt6LP1mNvb2tpZcno1sO5/WRvbWFpbtDFz6LU8rvhvty++L3TytzV4rj2Q29va2llLs7Sw8fGvbOjsrvSqsno1sPV4rj2t723qDwvcD4NCjwvYmxvY2txdW90ZT4NCjxwPjxzdHJvbmc+U2Vzc2lvbsrHt/7O8cb3tsu8vMr1PC9zdHJvbmc+o6zA+9PD1eK49ry8yvWjrLf+zvHG99Ta1MvQ0Mqxv8nS1M6qw7/Su7j208O7p7XE5K/AwMb3tLS9qNK7uPbG5LbAz+21xHNlc3Npb2621M/zo6zTydPac2Vzc2lvbs6q08O7p+SvwMDG97bAz+2jrMv50tTTw7un1Nq3w87Kt/7O8cb3tcR3ZWLXytS0yrGjrL/J0tSw0bj319S1xMr9vt23xdTauPfX1LXEc2Vzc2lvbtbQo6y1sdPDu6fU2cilt8POyrf+zvHG99bQtcTG5Mv8d2Vi18rUtMqxo6zG5Mv8d2Vi18rUtNTZtNPTw7unuPfX1LXEc2Vzc2lvbtbQyKGz9sr9vt3OqtPDu6e3/s7xoaM8L3A+DQo8cD48aW1nIGFsdD0="这里写图片描述" src="/uploadfile/Collfiles/00.png" title=""/os/xuniji/" target="_blank" class="keylink">虚拟机的死亡而死亡.
*如果服务器是正常关闭,还未超时的session会被以文件的形式保存在服务器的work目录下,这个过程叫做session的钝化.下次再正常启动服务器时,钝化着的session会被恢复到内存中,这个过程叫做session的活化.
!!作用:在会话范围内共享数据
!!session 的原理:
request.getSession()方法会检查请求中有没有JSESSIONID cookie,如果有拿出他的值找到对应的session为他服务.
如果没有则检查请求的URL后有没有以参数的形式带着JSESSIONID过来,如果有则找到对应的Session为浏览器服务器
如果还找不到则认为这个浏览器没有对应的Session,创建一个Session然后再在响应中添加JSESSIONID cookie,值就是这个Session 的id
默认情况下,JSESSIONID 的path为当前web应用的名称,并且没有设置过MaxAge,是一个会话级别的cookie.
这意味着一旦关闭浏览器再新开浏览器时,由于JSESSIONID丢失,会找不到之前的Session
我们可以手动的发送JSESSIONID cookie,名字和path设置的和自动发送时一样,但是设置一下MaxAge,使浏览器除了在内存中保存JSESSIONID信息以外还在临时文件夹中以文件的形式保存,这样即使重开浏览器仍然可以使用之前的session
如果浏览器禁用了Cookie,浏览器就没有办法JSESSIONID cookie,这样就用不了Session了.
我们可以使用URL重写的机制,在所有的超链接后都以参数的形式拼接JSESSIONID信息,从而在点击超链接时可以使用URL参数的方式待会JSESSIONID,从而使用Session
将URL进行重写拼接上JSESSIONID的过程就叫做URL重写
request.getSession() &在URL重写之前一定要先创建出Session,才有Session id,才能进行重写
response.encodeURL()& 一般的地址都用这个方法重写
response.encodeRedirectURL() & 如果地址是用来进行重定向的则使用这个方法
*url重写的方法一旦发现浏览器带回了任意cookie信息,则认为客户端没有禁用cookie,就不会再进行重写操作
cookie是客户端技术
数据保存在客户端,这个信息可以保存很长时间
数据随时有可能被清空,所以cookie保存的数据是不太靠谱的
数据被保存在了客户端,随时有可能被人看走,如果将一些敏感信息比如用户名密码等信息存在cookie中,可能有安全问题
session是服务器端技术
数据保存在服务区端,相对来说比较稳定和安全
占用服务器内存,所以一般存活的时间不会太长,超过超时时间就会被销毁.我们要根据服务器的压力和session 的使用情况合理设置session的超时时间,既能保证session的存活时间够用,同时不用的session可以及时销毁减少对服务器内存的占用.
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467142',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'【JavaEE学习心得与总结 5200字】- 天天范文
JavaEE学习心得与总结(5200字)
来自:字数:5200
学习Java EE 心得体会
这学期通过对Java EE五部分的学习,掌握了java 的基本开发方法,
学习JavaEE 基础部分分为6大部分, 分别是基础服务,Java Web开发,Web Service,JSF框架,EJB部分和JPA。
其中第一部分是基础服务部分,此部分包括六章:第一章是概述,介绍了java EE 的发展历史,架构,组件,服务,容器等概念,并介绍了平台角色以及开发环境和应用服务的选择与安装。 第二章讲了使用JNDI 访问明明和目录服务,介绍了什么是命名和服务目录,以及如何通过JNDI 访问Weblogic 提供的命名目录服务。
第三章 讲了使用JDBC 访问数据库,介绍了JDBC的基本用法以及连接池的配置和访问。 第四章讲了使用JTA 进行事物处理,介绍了事物处理概念以及如何通过JTA进行事务处理。 第五章 RMI :远程方法调用,介绍了RMI 的结构以及如何使用RMI进行编程。 第六章,使用JMS接发消息,介绍了消息服务的概念,在Weblogic 中消息服务相关的配置以及如何通过JMS开发消息发送和接受程序。
J2EE是一种技术,旨在简化企业应用程序的设计和实施。在本教程中,您将学习J2EE是什么,它的好处,J2EE的主要组成部分,企业应用框架的演变,为什么要使用J2EE,J2EE平台架构,J2EE API和技术和J2EE参考实现。在继续之前,我们的J2EE讨论让定义企业应用程序是什么。企业应用程序是一个应用程序,它可能要继续使用他们,同时添加或迁移到一个新的利用互联网,电子商务等新技术的应用,集传统的现有应用程序和数据库。
Java EE 架构分为四层,客户端层,Web层,EJB层和数据库层,其中,数据库层为系统提供数据存储和数据库管理功能,在整个企业级应用中可能村爱很多个数据库,并且采用不同类型的数据库管理系统进行管理。EJB层也称为业务逻辑层,用于完成系统中复杂的或者共享的业务,这些功能主要是提供客户端层和Web层调用,用户不会直接调用该层。Web层是基于HTTP 的访问方式,客户通过Web层访问系统的业务逻辑和数据等。客户端层包括Applet客户端和Application客户端,客户通过客户端的形式访问系统的业务逻辑和数据等。 逻辑中的四层可能不同时出现在系统中,例如某个系统可能只提供Web形式的客户端,并且不使用EJB技术,此时系统图只留下Web层和数据库层。
Java运行环境定义了五种类型的应用组件,包括客户端组件Application和Applet,Web层组件JSP和Servlet,EJB组件等,这些组件类型是Java EE 产品必须支持的。
其中的JPA是我学习的重点。JPA包括以下3方面的技术:(1). ORM映射元数据,JPA支持XML和JDK 5.0注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中.(2). JPA 的API,用来操作实体对象,执行CRUD操作,框架在后台替我们完成所有的事情,开发者从繁琐的JDBC和SQL代码中解脱出来。(3). 查询语言,这是持久化操作中很重要的一个方面,通过面向对象而非面向数据库的查询语言查询数据,避免程序的SQL语句紧密耦合。JPA的优势包括:1 标准化,JPA 是 JCP 组织发布的 Java EE 标准之一,因此任何声称符合 JPA 标准的框架都遵循同样的架构,提供相同的访问 API,这保证了基于JPA开发的企业应用能够经过少量的修改就能够在不同的JPA框架下运行。2 对容器级特性的支持,JPA 框架中支持大数据集、事务、并发等容器级事务,这使得 JPA 超越了简单持久化框架的局限,在企业应用发挥更大的作用。 3 简单易用,集成方便 ,JPA的主要目标之一就是提供更加简单的编程模型:在JPA框架下创建实体和创建Java 类一样简单,没有任何的约束和限制,只需要使用 javax.persistence.Entity进行注释;JPA的框架和接口也都非常简单,没有太多特别的规则和设计模式的要求,开发者可以很容易的掌握。JPA基于非侵入式原则设计,因此可以很容易的和其它框架或者容器
集成。4 可媲美JDBC的查询能力 ,JPA的查询语言是面向对象而非面向数据库的,它以面向对象的自然语法构造查询语句,可以看成是Hibernate HQL的等价物。JPA定义了独特的JPQL(Java Persistence Query Language),JPQL是EJB QL的一种扩展,它是针对实体的一种查询语言,操作对象是实体,而不是关系数据库的表,而且能够支持批量更新和修改、JOIN、GROUP BY、HAVING 等通常只有 SQL 才能够提供的高级查询特性,甚至还能够支持子查询。5 支持面向对象的高级特性 ,JPA 中能够支持面向对象的高级特性,如类之间的继承、多态和类之间的复杂关系,这样的支持能够让开发者最大限度的使用面向对象的模型设计企业应用,而不需要自行处理这些特性在关系数据库的持久化。
第二部分是Java Web 开发,其中第七章主要讲了Java Web应用概述,介绍Java Web的主要技术,发展历史,文档结构,并通过一个简单的例子介绍了Servlet和JSP的运行原理。第八章主要讲了JSP的基本语法,对JSP的基本语法,指令,动作,内部对象和如何在MyEclipse中开发进行了介绍。第九章主要讲了JavaServlet技术,介绍如何编写Servlet,如何使用Servlet与客户端进行交互以及Servlet过滤器和Servle监听器的使用。第十章主要讲EL,介绍EL的基本用法。其中的JSP是我学习的重点。JSP技术使用Java编成语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。JSP与JavaServlet一样,是在服务器端执行的,通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。利用JSP技术,动态信息由JSP页面来表现,JSP页面由安装在Web服务器或者使用JSP的应用服务器上的JSP引擎执行。JSP引擎接受客户端对JSP页面的请求,并且生成JSP页面作为对客户端的响应。JSP页面通常被编译成为Java Servlets,这是一个标准的Java扩展。页面开发人员能够访问全部的Java应用环境,以利用Java技术的扩展性和可移植性。当JSP页面第一次被调用时,如果它还不存在,就会被编译成为一个Java Servlets类,并且存储在服务器的内存中。这就使得在接下来的对该页面的调用中,服务器会有非常快的响应(这避免了CGI-BIN为每个HTTP请求生成一个新的进程的问题)。JSP页面可以包含在多种不同的应用体系结构或者模型中,可以用于由不同协议、组件和格式所组成的联合体中。基于JSP的动态信息发布技术是一个开放的、可扩展的建立动态Web页面的标准。不论采用什么创建工具,开发人员都可以使用JSP页面来创建可移植的Web应用,在不同的Web应用服务器上运行。
第三部分主要讲Web Service ,本部分内容主要包括三章。第十三章主要讲Web Service概述没介绍了什么是Web Service以及相关概念,包括WSDL,SOAP和UDDI.第十四章主要讲Java EE 对Web Service的支持,包括JAXR,JAXB和SAAJ.第十五章主要是使用JAX-WS开发Web Service,介绍如何使用JAX-WS 编写WebService以及访问WebService的客户端,包括在MyEcilipse中的开发。Webservice 的概念是使用一个标准的输出接口来定义代码提供的功能,以便让外界可以通过这个标准的输出接口来调用,而所谓的标准输出接口就是wsdl,wsdl是一个xml组成的文件,描述了实现程
序对外提供函数的原型,客户端可以通过wsdl来调用实现程序提供的服务代码。
第四部分主要讲了JSF 框架,内容包括五章。第十六章讲了JSF概述,介绍了JSF 的体系结构,JSF的组成和生命周期等。第十七章将了一个简单的JSF应用,介绍了在MyEclipse中如何开发JSF应用。第十八章主要讲了UI组件,介绍了JSF提供的界面控件。第十九章主要讲了在JSP中使用JSF,介绍了本地化,转换器,时间监听器,验证器和导航的使用。第二十章主要是Bean,介绍了辅助Bean的配置,访问和编写。
在这部分中我主要学习了怎样使用JSF编程,其过程主要包括以下几点:第一步,创建web工程J2ee下创建web project,这没什么说的了,不过以前在eclipse中总是不知道怎么创建web应用,够傻的,原来需要插件,在myeclipse提供了全套的插件。不过Myeclipse需要破解。中国程序员似乎很少用正版的。言归正传,Myeclipse中需要在Open Perspective中选择J2ee enterprse视图。然后创建web project。这跟delphi的New一个project不太一样,delphi把所有可以new的都放在一个窗口中,而eclipse有不同的视图来提供管理,这算一种进步吧,插件化的进步。接下来需要 Add JSF Capability,因为这个类库(不知道是否应该称为类库)支撑了JSF开发需要的组件。第二步,创建bean.在New-àother中的Myeclipse-àweb-JSF下有managed bean,创建bean可以连Java类文件一起创建,且可以将需要的属性一起完成,myeclipse可以自动完成属性的get,set方法。是个比较酷的功能。第三步,创建,编辑jsp文件.在工程的webroot--&web-inf下面有一个facesconfig.xml文件,这个文件是Javabean的管理文件,同时它管理了页面之间的切换关系,起到导航页面的作用。有趣的是这个文件居然有个漂亮的design界面,可以在上面创建新的jsp文件,且可以用拖拽方式定义页面之间的关系,让所有页面的关系看起来很直观。感觉这里是个很酷的设计。页面的导航是根据一个字符串来作为判断依据的,所以在配置导航关系时,只要设定From outcome的值为调用bean方法的返回值即可。值得注意的是,JSF对于导航值只允许string类型。Jsp页面的编写其实很方便,即使不太懂,因为myeclipse提供了拖拽式的页面设计,如果熟练直接写代码也很好玩吧。我以前一直很讨厌html的代码,因为觉得太机械了,且不好记忆,这会得硬着头皮学了,不过在这种拖拽式的设计中可以省不少力气。记得jsp中使用Java采用””的方式,这会是:”#{}” 直接以bean来调用。第四步,本地化.如果需要考虑国际化的问题,那么需要创建一个.properties的文件,否则可以跳过这里。.properties文件需要创建到源码文件的目录下,否则在指定位置时便会找不到它。.properties文件的配置非常简单,如同一个ini文件。如:&username=user name&, 如果要显示中文的话,这里需要转化为unicode,jdk带了一个native2ascii的小工具可以轻松转换,不过这个玩意每次复制的时候都要先将编辑设为“标记”。不知道有没有更方便的工具。另外如果要支持中文的.properties文件需要以_zh_CN结尾才行。在jsp文件中使用下面形式定义:然后就如同Java中的类一样使用了.
第五部分主要是EJB部分,内容包括四章,地二十一章介绍了EJB 的目标,发展历史,特点,角色,分类以及变成规约。第二十二章主要对会话Bean的开发以及运行原理进行了介绍。第二十三章介绍了消息驱动Bean以及客户端程序的编写。第二十四章讲解了如何访问数据源,定时服务和事务处理对象。其中EJB为学习的重点,EJB (Enterprise JavaBean)
是J2EE的一部分,定义了一个用于开发基于组件的企业多重应用程序的标准。其特点包括网络服务支持和核心开发工具(SDK)。在J2EE里,Enterprise Java Beans(EJB)称为Java 企业柄,是Java的核心代码,分为整体柄和片段柄和消息柄三个部分,其中的消息柄将在以后再作讨论。EJB是sun的服务器端组件模型,最大的用处是部署。
第二篇:JavaEE学习方法总结 2300字
JavaEE学习方法总结
学习JavaEE已经有一段时间了,自以为对JavaEE也是有一点认识和理解的。如果有菜鸟也想学习JavaEE的话,那么,下面推荐一下我的学习步骤(仅代表我个人):
一、掌握Java的基本语法
如Logic Java、Java OOP等,精通面向对象的思想:封装、继承和多态,以及后面学的接口。其中封装和继承稍微简单一点,多态比较难一点;但能不能理解好多态,又是能不能理解面向对象思想的重要一步;而接口,学习起来并不难,难就难在如何运用好,在这里,教大家一个理解接口的简单方法:接口其实就是一种规范。
二、系统的学习一下数据库
数据库中的内容比较多,像数据库中的五大范式、数据仓库、数据挖掘等这些很专业的知识,我们没必要掌握;而数据库中的SQL语句则是一定要精通的,这对以后的学习很有帮助。对于有些常会出错的,一定要注意,比如Select语句中where后面多个条件的连接用的是and而不是逗号;Insert语句中Values后接的是(),括号中的值用逗号隔开;Update语句后面一定要有关键字Set;Delect删除记录时,一定要记得加where条件;聚合函数Count后面要加(*)或者你取的数据库表的别名。个人建议:最好能熟练运用SQLServer、 DB2、MySQL、Oracle中的一个或几个。
三、灵活运用JSP、Servlet、JavaBean
掌握最基本的JSP代码、JSP指令(page、include、taglib指令)、JSP动作、Servlet和一些XML配置文件方面的知识,JSP比起以后要学的Struts而言,难度要小很多,但是光看书是不够的,一定要多做一些小项目。推荐大家按照书上的例子做一些小的网站,最好采用JSP + Servlet + JavaBean的设计模式,这样可以为以后学习MVC打下基础。
四、透彻的理解MVC编程思想
关于书上经典的案例一定要会做,代码可以记不住,但MVC的编程思想一定要理解好并能够灵活的运用。虽然,MVC并不能算是一种技术,但我个人觉得它太过于重要了,所以依然把它单独列为一
个阶段,可见其重要。如果这个理解不了,JavaEE以后就真的没法学了。
五、精通Struts框架
学习Struts,要认真琢磨它的运行原理和执行流程,特别是ActionForm、Action组件的作用和Struts-config.xml这个核心配置文件每一处用到的配置。学到这一步,才算是真正接触了JavaEE,以前学的东西都不过是为SSH这三大框架的学习做好铺垫。当然,这个时候就要用到J2EE的开发工具了,个人推荐eclipse或者
MyEclipse,其实MyEclipse也就是饿clipse的豪华版,一个收费,一个不收费。此外,还要熟悉Struts标签,掌握自定义标签是如何使用的。但这个时候千万不要追求大而全,只学习几种常用的标签就可以了,重点放在bean和logic标签上,Struts的html标签和普通的html标签没什么区别,所以……你懂的。还有,要准确的理解:Action、ActionForm、biz、dao这几个层之间的关系。其实本质还是MVC的设计模式。Action作为控制器的作用:响应用户请求,调用后台逻辑,跳转其他页面。多思考一下,多问自己几个为什么。譬如Struts框架既然是一个半成品,那我们使用它的好处是什么,它是如何响应客户端请求的,我们又是如何扩展和配置的等等。最后,在学习一下Struts2,Struts2虽然和Struts1在名称上很相像,但二者有本质上的区别:Struts2是在另一个著名框架WebWork基础上发展而来。
六、了解Hibernate和Spring框架
现在Hibernate和Spring也是相当流行的。Hibernate使用时只需要操纵对象,使开发更对象化,抛弃了数据库中的思想,完全的面向对象思想。但它在只针对某一对象(单个对象)简单的查改删增比较实用,批量修改、删除则不是它的强项。Spring是一个非侵入性的轻量级框架,允许在应用系统中自由地选择和组装Spring的各功能模块,并且不强制要求应用中的类必须从Spring 的系统API中的某个类来继承或者实现某个接口。同时也提供和其它框架集成的接口,如与Hibernate、Struts 的集成等,便于应用开发。
七、推荐学习使用的软件(都是我用过的,没用的暂时忽略)
1.Web容器:TomCat 7.0、TomCat 6.0。个人感觉没什么区别,还有,改端口号是在tomcat的conf文件下server.xml配置文件中。
2.开发工具:MyEclipse 9.0、Eclipse 3.2。注意3.2版本是装不上Tomcat 7 的。
3.网页设计工具:Dreamweaver CS5、CS3。个人推荐用CS5,因为用CS3时,JavaScript代码不注意写错了,找都找不到,很头疼的;CS5带了纠错的功能,虽然还不能像Eclipse那样,不过已经很不错了。
4.数据库:SQL Server 20xx/ 20xx、Oracle 11g。Oracle 不怎么会用,学习中……
上面是我粗略地勾勒了一下学习JavaEE的曲线。归纳一下:学习Java是需要循序渐进、实例驱动、思考总结的。至于其他的,估计大家到工作以后在慢慢琢磨,不过学这东西,还要看大家的天赋和造化了,反正我是看的云里雾里的,头都大了。这里面涉及的知识点都很多,需要我们耐心细致地学习。大家在做项目的时候会发现各种各样的异常和问题。不要害怕,因为这些错误都是我们的好朋友,我们要把它们通通都记录下来,并坚韧地排除掉它们。这里要记住:尽量避免重复犯错,不要在同一个地方跌倒两次。总之,这个一个相对比较枯燥、耗时间和耗精力的阶段。我们要做的就是不断地参考,不断地思考,不断地总结,最好还能和志同道合的人不断地争论。记得我最疯狂的一次是一天都没出门,从早上7点起来开始敲代码,一直到凌晨1点,连吃饭都在寝室解决。其实当你真正进入代码的世界,你会将周围的一切都忘了。
最后,祝大家学的实用,学的开心!!!
20xx年x月x日
+ 更多类似范文┣&┣&┣&┣&┣&更多┗&
更多相关推荐:
JAVA实训心得在本学期的最后一周,我们在学校机房进行了为期一周的JAVA实训。现在即将结束了,回首本学期的java学习,重点还是在学习概念等一些常识性的东西,Application应用程序和Applet小程序…
娄底职业技术学院JavaWeb课程设计报告娄底职业技术学院LOUDIVOCATIONALANDTECHNICALCOLLEGEJAVAWEB课程设计报告书课题电子离校系统系部电子信息工程系班级12软件1班东宝订...
专业技能培训心得大学三年就快要过去了,真真切切感觉到自己没有学到多少东西。现在忙上就是大三第二学期了,大三第一学期基本上已经过去。在这一学期里,本人认真的学习了一下java。虽说现在对java不是算很精通吧,但…
大家在关注}

我要回帖

更多关于 8080端口跳转到80端口 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信