1.什么是servlet
Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。Servelt解决了html不能进行交互的问题,它能根据不同的用户,调用数据库的数据,生成动态的网页,刚接触Sevlet感觉它是一个比较有用的知识。
2.配置servlet运行环境
Servlet虽然很好用,但是对于刚入门的人来说,配置它的运行环境时候可是相当的纠结的,可以这么说,各种各样的问题都会有,这个我是深有体会,不同的eclipse,不同的电脑,出现的问题都会不太一样,不知道为什么。首先要下载tomcat服务器,servelte的本质就是一个在tomcat服务器上运行的java类。
创建一个简单的servlet流程图:
下载tomcat后直接解压就行
变量名:Java_home 路径:JDK的安装目录,如C:\Program Files\Java\jdk1.6.0_20
变量名:tomcat_home 路径:tomcat所在目录,如D:\tomcat\apache-tomcat-7.0.0
如果是eclipse的话就创建动态web工程,如果是myeclipe就直接创建web
如果不导入的话,servlet类就会报错
创建servlet时,默认的是会有doPost(),doGet()两个方法,
有两种方法:打包为war的包,将其放到tomcat的Webapps目录下,启动tomcat
输入url,则可以请求到servlet网页
3.web.xml文件的配置
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>FirstServlet</servlet-name>
<servlet-class>cn.netjava.Servlet.FirstServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>FirstServlet</servlet-name>
<url-pattern>/servlet/FirstServlet</url-pattern>
</servlet-mapping>
这是主要的配置,其中<description>和<display-name>这项可有可无,<servlet-name>这项为自己编写的servlet名,<servlet-class>为编写的servlet所在的包及servlet类名,<servlet-name>为给servlet取一个别名,<url-pattern>为浏览器请求servlet时的路径,在浏览器输入的url为:http://localhost:8080/工程名字/加上<url-pattern>/servlet/FirstServlet</url-pattern>中的路径,当<url-pattern>/*</url-pattern>时url直接就是http://localhost:8080/工程名字/加上任何的字符,当<url-pattern>/.do</url-pattern>时,url为http://localhost:8080/工程名字/加上以.do结尾的字符
4.接收html传来的参数
比如:
在一个html网页
<html>
<head><title>servlet参数传递事例</title></head>
<body>
<from method=”post” action=”myServlet”
<p> 帐号:<input type=’text’ name=’userName’/></p>
<p> 密码:<input type=’password’ name=’pwd’/></p>
<p> <input type=’submit’ name=’提交’></p>
</form>
</body>
</html>
当点击提交按钮时,则向myservlet发送请求,只要在myserlet中的doPost()方法中通过调用String name=request. Parameter(“UserName”)来得到用户输入的信息,如果想接受额外的数据,则修改<from method=”post” action=”myServlet?id=’’要传输的数据””如果要传输多个数据,action=”myServlet?id=“数据1”?pwd=”数据2”’’,以此类推,最后在servlet中调用Parameter(“id”)来取得数据1,以此类推。
5.servlet中的几个常用对象
5. session机制相关知识
对象 |
说明 |
ServletRequest |
保存的键值仅在下一个request对象中可以得到,常用做在转发请求时共享数据; |
Session |
做用域是一个用户会话范围,从session第一次创建直到Session因超时或客户端关闭之前,数据会一直存在;Session常用做存入某个用户相关的数据对象。 |
servletContext |
代表了servlet环境的上下文,只要某个web应用在启动中,这个对象就一直有效,所以它是数据存活范围(时间)最大的一个;常用存放Web应用程序全局性的数据,例如登记服务器在线人数的数据,可以保存到这个对象中
|
从图可以看出,这三个对象都是用来存存数据的,其中session是比较常用的,比如他可以用来存储登录的用户名,这样就可以实现在线的人数统计。
6.servlet转发请求
Servlet转发有三种方法:
Include 表将将url中的内容包含到当前的servlet输出当中,在服务器端完成,一般称做包含。
Forward 将当前request和response交给指定的url处理,一般称做转发请求,在服务器端完成,客户端地址栏看到的路径还是当前servlet的路径。
sendRedirect 指示客户端重新发起一次请求,第二个请求指向其参数url。一般称做重定向,客户端的地址栏将改变为url值,是由客户端发起的第二次请求。
比如要转发一个login.html网页。
则应该是request.getRequestDispatcher("login.html").include(request, respon)
或者request.getRequestDispatcher("index.html").foward(request, response);再者response.sendRedirect("login.html");
其中:include和forward方法浏览器上中的url都不改变,sendRedirect则是从新发送请求,url已经改变。