一.简介
Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向浏览器输出数据),需要完成以下2个步骤:1、编写一个Java类,实现servlet接口。
2、把开发好的Java类部署到web服务器中。
按照一种约定俗成的称呼习惯,通常我们也把实现了servlet接口的java程序,称之为Servlet。
二.Servlet的优点
1.Servlet是持久的,它只需要Web服务器加载一次,而且可以在不同请求之间保持服务。与之相反,CGI脚本是短暂的,瞬态的。
2.Servlet是快速的。与CGI相比,由于Servlet只需要被加载一次,自然提供了更好的性能。
3.Servlet是与平台无关的。
4.Servlet是可扩展的。由于Servlet是用java编写的,它自然具备了java所能带来的所有优点(健壮的,面向对象的)。
5.Servlet是安全的。从外界调用一个Servlet的唯一方法就是通过Web服务器,这提供了高水平的安全保障,尤其是在Web服务器有防火墙的时候。
三. Servlet的生命周期
3.请求处理,当servlet容器接到访问特定的servlet请求时,servlet容器会创建针对与这个请求的servletRequest和servletResponse对象,然后调用servlet()方法对请求进行处理。
4.服务终止,调用destroy()方法
下面是servlet的调用过程
四.创建和配置Servlet
首先,servlet使用java.servlet和javax.servlet.http两个包中的类和接口。(注:包名以javax开头而不是java,表示Servlet API是一个标准扩展)
配置servlet需要用到web.xml。web.xml文件总是放在web应用的WEB-INF目录中。这是各个服务器之间唯一通用的位置;其他位置都是非标准的服务器拓展。
下面是我做的一个实例:
1.打开myeclipse,我在这里创建了一个CSDN的web项目名称,现在我们在com.servlet.study创建一个servlet
下面我们打开刚创建的indexservlet,在doGet()方法里写上一段话(默认运行doGet()方法),this is my first servlet
我们保存,运行tomcat,记得把这个项目添加进服务器
我们打开浏览器在地址栏输入
回车
浏览器输出一句话
2.servlet传值方法
(1)可以用普通的问号传值,用request.getParmarter("")接收;对于网页中的表单,有两个提交方式,用method来控制,如果method="get",就会提交到servlet的doGet()方法;如果method="post",就会提交到servlet的doPost()方法
(2)修改xml文件,servlet/*传值
例子:
然后打开indexServlet
这里我写了/123
页面输出/123,截断字符串后输出123
你们发现我这里出现了乱码,
如果是在doPost()里写的,我们加上编码格式即可,
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
如果是在doGet()里写的,我们加上这句话
response.setHeader("Content-type", "text/html; charset=UTF-8");
或者
response.setContentType("text/html; charset=UTF-8");
还有一种方法:
修改tomcat编码格式
Apache提供的tomcat服务器中对接收的数据以及返回的数据有一定的编码格式,这个编码是tomcat安装包“apache-tomcat-7.0.63”中的conf文件夹下的server.xml配置文件。我们可以通过更改该配置文件的,在其最后加入URIEncoding="UTF-8"
一句,将其编码格式更改为UTF-8或其他指定的编码格式。
我们重置项目,重新运行