在学习Servler的过程中,出现了很多问题,通过教授指导,明白了很多
预备知识:
Web.xml是web开发里面最重要的一个文件,只要涉及对web资源配置和管理的话,统统可以通过web。Xml文件来实现。
如果有java程序,一定要在web应用里面建一个WEB-INF,在classes中放
一个java程序;jar放在lib里面,放个jar包;每个web应用最好有一个
web.xml(最重要的),放在WEB-INF里面
要把某一个文件设为首页,在web。Xml文件中设置,对着web。Xml文件抄头抄尾。
http请求行和请求方式详解
请求行中的GET称之为请求方式,请求方式有:
POST GET(常用) HEAD,OPPTIONS,DELETE,TRACE,PUT
GET方式的特点:在URL地址后附带的参数是有限制的,其数据容量通常不超过1k
POST:传送的数据量无限制。
提交用户名密码form表单时,不要用GET请求
12请求头:
Accept:告诉服务器,客户机支持的数据类型
Accept-Chraset:告诉服务器,客户机采用的编码
Accept-Encoding:告诉,客户机支持的数据压缩格式。
Accept-Language:客户机的语言环境。
Host:客户机通过这个头告诉服务器,客户机的软件环境。
Cookie:客户机通过这个头可以向服务器带数据。
响应头:
Location:配合302状态码使用,用于告诉客户找谁
Server:服务器通过这个头,告诉浏览器的类型
Content-Encoding:服务器通过这个头,数据的压缩格式。
首先没有弄明白tomcat的结构,到后面运行servlet访问页面出现很多问题:
安装tomcat,一路下一步
首先MyEclipse配置的时候,刚开始不明白怎么配置,后来查了资料知道先Window->preferences->Tomcat6.x进行配置
单机tomcat6.x对jdk进行配置,找到虚拟机的位置
新建web工程,再新建一个servlet,包名servlet,删除多余代码,保留doGet和doPost,且为空,在Get方法中添加代码,有两种方式将自带的WebRoot下的网页文件自建的html发布到服务器上第一种在DoGet中添加代码
第一种:
System.out.println("aaa");//为了验证servlet运行
response.setStatus(302);//回送一个302的状态码
response.setHeader("location","/Web/3.html");//回送location这个头,发布到服务器上
(这种是我看视频看的,感觉看视频的效果不是很好,并且学的进度很慢,但是我也找不到很好的方法,他们说看书会很快,不知道为啥对我不适合,我看书很慢,吸收效率也很低)
第二种:
RequestDispatcher dispatcher = request.getRequestDispatcher("3.html");
dispatcher.forward(request, response);
(这种是我培训的同学给我写的,他们是这么讲的)
再次强调: 每次修改servlet中的代码都一定要重新启动服务器,否则一点效果也起不到,学servlet多启动服务器(原创怎么样,应该很实用)。
在WebRoot下新建一个3.html文件我犯了一个很重要的错误就是点击jsp和html时自动弹出窗口error····一些烦人的东西,打不开jsp和html,后来经过上网查资料,网上有很多错误信息,删除过MyEclipse中content下的一些内容,但是导致我Myeclipse关闭不了了,只能重启电脑,后来接着找别的资料,让我也犯了很多错,后来终于发现,原来是我曾经装过Myeclipse10.0版本,(由于该最新版本没有注册号,用了15天不能用了,按别人步骤注册导致不能用了,只能无奈卸了)不能再把装的新的版本放在曾经的文件夹下,最后解决,好恶心,等jsp打开后,心里有点成就感,太高兴了,忠于解决,皇天不负有心人。
还有一个错误;我的jdk6.0,而装的却是tomcat7.0,导致在MyEclipse上运行tomcat出现异常,各种打击啊,这样会导致运行servlet出现错误(我是这么认为的,因为我的程序运行出现了很多错误,也让我认为他们版本不统一,可能不兼容)我就把tomcat改成了tomcat6.0,把7。0卸了。
错误接着错误,我从上面的”run/Stop/reStart MyEclipse server “关闭服务再重新启动的时候,还会导致异常,无奈的只能等着培训的同学回来给我帮忙解决了
后来才发现最后是从下边关闭服务器,从上面打开,这样就可以了。
一定要注意每改一次后台代码,服务器都要重新启动一次,不然缓存中保留之前的代码,没有起到运行后来修改的代码的效果。
好了,昨天没写完,今天接着写,感觉整这玩意累并快乐着。
下面部署工程和tomcat建立连接,一路顺着做,点击finish
启动tomcat,如果出现下面的异常,一定要检查c盘下的tomcat是否关闭了,因为如果c盘下打开了tomcat,在MyEclipse下就不能打开了
运行结果下面出现这种内容,说明启动成功
部署启动完服务器后,接着就是要快运行了
(一定要记得每个工程都要重新部署,以免因失去部署而导致程序错误)
http://localhost:8080/Web/在浏览器上运行,出现此图说明servlet运行成功
此时我已兴奋屎了。
接着输入网址:http://localhost:8080/Web/servlet/ServletDemo1
我擦,这次奇了怪了,竟然奇迹般的运行成功了,
当时我是运行不成功的,让我同学看了好久。为何运行失败,你有没有想过还有一个web。Xml没提到呢,这个家伙也重要,你要想通过输入不同的网址来访问它,就要对它进行配置,到此我建议你看下web应用组织结构和web.xml文件的作用,对于此处理解的会更透彻,当时我是没看,或是看的印象不是太深刻,就给忘了。
我同学给我写了几行代码:
现在想想它不就是修改此servlet运行的地址吗?(刚学没多久我是这么认为的)<url-patter> 翻译地址模式,我擦现在感觉英语没学好,搞这就是伤,所以建议你们在大学期间好好学学英语,拼了命的学,谁说大学及格万岁,你要没家底,就拼了命的学,不然快毕业时你会后悔!
就这样输入网址运行也成功http://localhost:8080/Web/ServletDemo1
综上tomcat部署启动关闭注意问题,两种方运行servlet,发布网页的方式讲的差不多了,感觉写这篇博客很有纪念意义,因为我花了好久的时间才弄明白的,并且非常明白了。又给你们写了一遍,算是我又重新学了一遍吧,有点成就感,也感觉这东西有时很奇怪,得需要耐心。好了送给大家如果感觉真的有用,请记得你也写一篇,让所有在迷途中的老少爷们别走那么多弯路,你知道不知道怎么弄多坑吗?又该吃饭了,昨天下馆子吃撑了,现在都不怎么饿。O(∩_∩)O~
我去,上面有些需要修补的,用360截屏工具整的,现在重新使用怎么不行了,无奈只能去重新设置截图快捷键,你说360坑不坑啊。