昨天写完hibernate的小demo后,想写一个简单structs2,但是发现好像自己连servlet都忘了怎么写了,所以一切从头开始,先写一个简单servlet把
第一步
肯定是建立项目了,打开自己eclipse(myeclipse,sts,idea)。然后file->new->java project。这里肯定会有疑问,为啥不建立一个web project呢。呃,原因很简单,因为要从头来,一切都从头来呗,web project里 web方面的属性都给配置好了,就起不到学习的作用了。
名字自己起,其他的也没什么可以叙说的,然后项目就建立好了。
然后建立完项目,肯定是把相关的jar包都导入进来了,这里就一个jar包。servlet-api.jar包。然后下载路径http://pan.baidu.com/s/1kVl6Ld9 密码 jwzj ,如果链接取消,也可以去http://how2j.cn/k/servlet/servlet-eclipse/558.html里右上角下载
下载好jar包,很简单,配置进项目。右键项目properties->java build path->libraries 然后右边的add external jars 然后导入进来就好了
第二步
在src目录下,建立一个class文件用来写我们servlet,名字就叫helloServlet把 然后注意,建立的时候,底下会根据你的项目名,自己动起一个包名,这时候把这个包名删除掉,默认没有包名
然后其他的就没什么要赘述的了。然后写一个servlet,那么你的类肯定要继承HttpServlet了。这个是常识。然后代码如下啦:
这里简单的叙说一下doGet和doPost两种请求方式把。我觉得个人的觉得就是一个需要把所传的参数打印在url后(doGet),另一个则不用。稍微查了查其他大佬对这两种方法的看法,大概就是
1.通过get方式提交的数据有大小的限制,通常在1024字节左右。也就是说如果提交的数据很大,用get方法就可需要小心;而post方式没有数据大小的限制,理论上传送多少数据都可以。
2.通过get传递数据,实际上是将传递的数据按照”key,value”的方式跟在URL的后面来达到传送的目的的;而post传递数据是通过http请求的附件进行的,在URL中并没有明文显示。
,顺带说一句,Date()..toLocaleString() 这个函数主要的目的是把得到的日期格式化成字符串类型,我使用的时候显示了一条横线,就是意思这个方法以及被废弃了,但是并不影响使用,但是我看别人的代码。并没有被废弃。仔细看了看好像自从jdk1.7之后这个方法开始被废弃,不过无伤大雅。
第三步
servlet文件写好,剩下的就是配置web.xml了 因为用的java项目所以一切都得自己来嘛,首先在src的同级建立一个web文件夹,然后在web文件夹下建立一个WEB-INF文件夹,至于为啥大写,我是不知道,要想知道就只能去编这个语言的大佬了╮(╯▽╰)╭。
然后在WEB-INF下建立web.xml文件。具体路径如下图:
第四步
建立文件后,干啥,写呗。下面就是写web.xml的信息,不过写之前首先要知道web.xml是干嘛的。用我的话来说就是web项目所需要配置的东西写在里面,方便去服务器去读取,比如什么访问路径一类的。
然后代码如下图:
简单易懂,不过有几个点需要注意一下,第一个<servlet>标签里的name和class可以不相同,但是大家为了观看美观,方便 一般都是写成一样的。代码规范还是挺重要的,但是<servlet>和<servlet-mapping>两个标签下的name必须是一样,这个可是硬性规定。
然后url-pattern 就是你访问这个servlet所需要的路径了。
对了 最后的最后,记得在WEB-INF下创建classes目录
把项目的class文件输出由原来的 j2ee/bin 设置到 j2ee/web/WEB-INF/classes下
项目右键->properties->Java Build Path->Source->右下角的 Brower-> 指定位置是 j2ee/web/WEB-INF/classes。
为什么要有这一步? 在ecilpse中默认输出的class是在bin目录下,但是tomcat启动之后,在默认情况下,不会去bin目录找这些class文件,而是到WEB-INF/classes这个目录下去寻找。 所以通过这一步的配置,使得eclipse的class文件输出到WEB-INF/classes目录下,那么这样就和tomcat兼容了。
第五步
项目都写完,最后就是把项目放到服务器启动就好了呗。然后。。。发现好像不是这样,是通过tomcat项目访问到这个servlet就行,毕竟这个项目也没啥需要启动。剩下的就是配置tomcat,然后启动了。
可千万别直接找到tomcat所在位置,然后点击startup.bat,启动tomcat后,在网址栏输入个127.0.0.1:8080/hello 这样肯定找不到。tomcat哪知道你这个servlet在哪
首先先找到service.xml 然后打开 在在 <Host name="localhost" 。。。 下面加一句: <
Context
path
=
"/"
docBase
=
"e:\\project\\j2ee\\web"
debug
=
"0"
reloadable
=
"false"
/>
注意点就是 docBase里的路径是你项目web所在的位置,可不是固定的。然后剩下的就没什么了。启动tomcat 然后在网址栏输入127.0.0.1:8080/hello ,然后
就是这样了。不过说的简单,这一步还是有问题的,我实现的时候搞崩了自己一个tomcat。(心疼ing。)然后要注意的就是千万别改,就是在该写的位置写上那句代码,如果发现tomcat启动不了,就把那句话删了,再试试能不能正常启动。
然后如果一直尝试不成功的话,就用个纯净版的tomcat 下载链接:http://pan.baidu.com/s/1qYPYfe8 密码:g9vd。然后还是按照上面的配置,应该就成功了。至于为啥有的tomcat不成功。。。 我也不清楚。反正版本兼容性问题什么的最麻烦了。
最后,既然搞崩了tomcat,那就重新看看tomcat的知识把,然后关于tomcat的一些错误大全:http://how2j.cn/k/tomcat/tomcat-faq/1132.html tomcat 都在这个网址上了。
最后安利一下http://how2j.cn/这个网站,很实用,我大多数也都是按照上面的步骤来的,然后最后加一些自己的理解写的博客。里面的许多的知识很基础,讲的算比较详细的了。